'Process a container, and update the information in the account.
:param dbfile: container DB to process'

def process_container(self, dbfile):

    start_time = time.time()
    broker = ContainerBroker(dbfile, logger=self.logger)
    info = broker.get_info()
    if (Timestamp(info['put_timestamp']) <= 0):
        return
    if (self.account_suppressions.get(info['account'], 0) > time.time()):
        return
    if ((info['put_timestamp'] > info['reported_put_timestamp']) or (info['delete_timestamp'] > info['reported_delete_timestamp']) or (info['object_count'] != info['reported_object_count']) or (info['bytes_used'] != info['reported_bytes_used'])):
        container = ('/%s/%s' % (info['account'], info['container']))
        (part, nodes) = self.get_account_ring().get_nodes(info['account'])
        events = [spawn(self.container_report, node, part, container, info['put_timestamp'], info['delete_timestamp'], info['object_count'], info['bytes_used'], info['storage_policy_index']) for node in nodes]
        successes = 0
        for event in events:
            if is_success(event.wait()):
                successes += 1
        if (successes >= majority_size(len(events))):
            self.logger.increment('successes')
            self.successes += 1
            self.logger.debug(_('Update    report    sent    for    %(container)s    %(dbfile)s'), {'container': container, 'dbfile': dbfile})
            broker.reported(info['put_timestamp'], info['delete_timestamp'], info['object_count'], info['bytes_used'])
        else:
            self.logger.increment('failures')
            self.failures += 1
            self.logger.debug(_('Update    report    failed    for    %(container)s    %(dbfile)s'), {'container': container, 'dbfile': dbfile})
            self.account_suppressions[info['account']] = until = (time.time() + self.account_suppression_time)
            if self.new_account_suppressions:
                print(info['account'], until, file=self.new_account_suppressions)
        self.logger.timing_since('timing', start_time)
    else:
        self.logger.increment('no_changes')
        self.no_changes += 1
