'Perform object reconciliation.
:param account: the account name of the misplaced object
:param container: the container name of the misplaced object
:param obj: the object name
:param q_policy_index: the policy index of the source indicated by the
queue entry.
:param q_ts: the timestamp of the misplaced object
:param q_op: the operation of the misplaced request
:param path: the full path of the misplaced object for logging
:returns: True to indicate the request is fully processed
successfully, otherwise False.'

def _reconcile_object(self, account, container, obj, q_policy_index, q_ts, q_op, path, **kwargs):

    container_policy_index = direct_get_container_policy_index(self.swift.container_ring, account, container)
    if (container_policy_index is None):
        self.stats_log('unavailable_container', '%r    (%f)    unable    to    determine    the    destination    policy_index', path, q_ts)
        return False
    if (container_policy_index == q_policy_index):
        self.stats_log('noop_object', '%r    (%f)    container    policy_index    %s    matches    queue    policy    index    %s', path, q_ts, container_policy_index, q_policy_index)
        return True
    self.logger.debug('checking    for    %r    (%f)    in    destination    policy_index    %s', path, q_ts, container_policy_index)
    headers = {'X-Backend-Storage-Policy-Index': container_policy_index}
    dest_obj = self.swift.get_object_metadata(account, container, obj, headers=headers, acceptable_statuses=(2, 4))
    dest_ts = Timestamp(dest_obj.get('x-backend-timestamp', 0))
    if (dest_ts >= q_ts):
        self.stats_log('found_object', '%r    (%f)    in    policy_index    %s    is    newer    than    queue    (%f)', path, dest_ts, container_policy_index, q_ts)
        return self.throw_tombstones(account, container, obj, q_ts, q_policy_index, path)
    self.stats_log('misplaced_object', '%r    (%f)    in    policy_index    %s    should    be    in    policy_index    %s', path, q_ts, q_policy_index, container_policy_index)
    self.logger.debug('fetching    %r    (%f)    from    storage    policy    %s', path, q_ts, q_policy_index)
    headers = {'X-Backend-Storage-Policy-Index': q_policy_index}
    try:
        (source_obj_status, source_obj_info, source_obj_iter) = self.swift.get_object(account, container, obj, headers=headers, acceptable_statuses=(2, 4))
    except UnexpectedResponse as err:
        source_obj_status = err.resp.status_int
        source_obj_info = {}
        source_obj_iter = None
    source_ts = Timestamp(source_obj_info.get('x-backend-timestamp', 0))
    if ((source_obj_status == 404) and (q_op == 'DELETE')):
        return self.ensure_tombstone_in_right_location(q_policy_index, account, container, obj, q_ts, path, container_policy_index, source_ts)
    else:
        return self.ensure_object_in_right_location(q_policy_index, account, container, obj, q_ts, path, container_policy_index, source_ts, source_obj_status, source_obj_info, source_obj_iter)
