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

def find_os_instance(osi_id=None, osi_name=None):
        """
        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
        """
        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