code: def find_os_instance(osi_id=None, osi_name=None):
          
          LOGGER.debug("OSInstanceService.find_os_instance")
          if (osi_id is None or not osi_id) and (osi_name is None or not osi_name):
              raise exceptions.ArianeCallParametersError('id and name')
  
          if (osi_id is not None and osi_id) and (osi_name is not None and osi_name):
              LOGGER.warn('OSInstanceService.find_os_instance - Both id and name are defined. '
                          'Will give you search on id.')
              osi_name = None
  
          params = None
          if osi_id is not None and osi_id:
              params = {'id': osi_id}
          elif osi_name is not None and osi_name:
              params = {'name': osi_name}
  
          ret = None
          if params is not None:
              args = {'http_operation': 'GET', 'operation_path': 'get', 'parameters': params}
              response = OSInstanceService.requester.call(args)
              if response.rc == 0:
                  ret = OSInstance.json_2_os_instance(response.response_content)
              elif response.rc != 404:
                  err_msg = 'OSInstanceService.find_os_instance - Problem while finding OS Instance (id:' + \
                            str(osi_id) + ', name:' + str(osi_name) + '). ' + \
                            '. Reason: ' + str(response.response_content) + '-' + str(response.error_message) + \
                            " (" + str(response.rc) + ")"
                  LOGGER.warning(
                      err_msg
                  )
  
          return ret
docs: find the OS instance (osi) according osi id (prioritary) or osi name
          :param osi_id: the OS instance id
          :param osi_name: the OS instance name
          :return: found OS instance or None if not found