'Sends the update the row indicates to the sync_to container.
Update can be either delete or put.
:param row: The updated row in the local database triggering the sync
update.
:param sync_to: The URL to the remote container.
:param user_key: The X-Container-Sync-Key to use when sending requests
to the other container.
:param broker: The local container database broker.
:param info: The get_info result from the local container database
broker.
:param realm: The realm from self.realms_conf, if there is one.
If None, fallback to using the older allowed_sync_hosts
way of syncing.
:param realm_key: The realm key from self.realms_conf, if there
is one. If None, fallback to using the older
allowed_sync_hosts way of syncing.
:returns: True on success'

def container_sync_row(self, row, sync_to, user_key, broker, info, realm, realm_key):

    try:
        start_time = time()
        (ts_data, ts_ctype, ts_meta) = decode_timestamps(row['created_at'])
        if row['deleted']:
            try:
                headers = {'x-timestamp': ts_data.internal}
                self._update_sync_to_headers(row['name'], sync_to, user_key, realm, realm_key, 'DELETE', headers)
                delete_object(sync_to, name=row['name'], headers=headers, proxy=self.select_http_proxy(), logger=self.logger, timeout=self.conn_timeout)
            except ClientException as err:
                if (err.http_status != HTTP_NOT_FOUND):
                    raise
            self.container_deletes += 1
            self.container_stats['deletes'] += 1
            self.logger.increment('deletes')
            self.logger.timing_since('deletes.timing', start_time)
        else:
            if self._object_in_remote_container(row['name'], sync_to, user_key, realm, realm_key, ts_meta):
                return True
            exc = None
            headers_out = {'X-Newest': True, 'X-Backend-Storage-Policy-Index': str(info['storage_policy_index'])}
            try:
                (source_obj_status, headers, body) = self.swift.get_object(info['account'], info['container'], row['name'], headers=headers_out, acceptable_statuses=(2, 4))
            except (Exception, UnexpectedResponse, Timeout) as err:
                headers = {}
                body = None
                exc = err
            timestamp = Timestamp(headers.get('x-timestamp', 0))
            if (timestamp < ts_meta):
                if exc:
                    raise exc
                raise Exception(_('Unknown    exception    trying    to    GET:    %(account)r    %(container)r    %(object)r'), {'account': info['account'], 'container': info['container'], 'object': row['name']})
            for key in ('date', 'last-modified'):
                if (key in headers):
                    del headers[key]
            if ('etag' in headers):
                headers['etag'] = headers['etag'].strip('"')
            if ('content-type' in headers):
                headers['content-type'] = clean_content_type(headers['content-type'])
            self._update_sync_to_headers(row['name'], sync_to, user_key, realm, realm_key, 'PUT', headers)
            put_object(sync_to, name=row['name'], headers=headers, contents=FileLikeIter(body), proxy=self.select_http_proxy(), logger=self.logger, timeout=self.conn_timeout)
            self.container_puts += 1
            self.container_stats['puts'] += 1
            self.container_stats['bytes'] += row['size']
            self.logger.increment('puts')
            self.logger.timing_since('puts.timing', start_time)
    except ClientException as err:
        if (err.http_status == HTTP_UNAUTHORIZED):
            self.logger.info(_('Unauth    %(sync_from)r    =>    %(sync_to)r'), {'sync_from': ('%s/%s' % (quote(info['account']), quote(info['container']))), 'sync_to': sync_to})
        elif (err.http_status == HTTP_NOT_FOUND):
            self.logger.info(_('Not    found    %(sync_from)r    =>    %(sync_to)r                                                                                            -    object    %(obj_name)r'), {'sync_from': ('%s/%s' % (quote(info['account']), quote(info['container']))), 'sync_to': sync_to, 'obj_name': row['name']})
        else:
            self.logger.exception(_('ERROR    Syncing    %(db_file)s    %(row)s'), {'db_file': str(broker), 'row': row})
        self.container_failures += 1
        self.logger.increment('failures')
        return False
    except (Exception, Timeout) as err:
        self.logger.exception(_('ERROR    Syncing    %(db_file)s    %(row)s'), {'db_file': str(broker), 'row': row})
        self.container_failures += 1
        self.logger.increment('failures')
        return False
    return True
