'Called once per pass for each device on the server. This will scan the
accounts directory for the device, looking for partitions this device
is the primary for, then looking for account databases that are marked
status=DELETED and still have containers and calling
:func:`reap_account`. Account databases marked status=DELETED that no
longer have containers will eventually be permanently removed by the
reclaim process within the account replicator (see
:mod:`swift.db_replicator`).
:param device: The device to look for accounts to be deleted.'

def reap_device(self, device):

    datadir = os.path.join(self.devices, device, DATADIR)
    if (not os.path.exists(datadir)):
        return
    for partition in os.listdir(datadir):
        partition_path = os.path.join(datadir, partition)
        if (not partition.isdigit()):
            continue
        nodes = self.get_account_ring().get_part_nodes(int(partition))
        if (not os.path.isdir(partition_path)):
            continue
        container_shard = None
        for (container_shard, node) in enumerate(nodes):
            if (is_local_device(self.myips, None, node['ip'], None) and ((not self.bind_port) or (self.bind_port == node['port'])) and (device == node['device'])):
                break
        else:
            continue
        for suffix in os.listdir(partition_path):
            suffix_path = os.path.join(partition_path, suffix)
            if (not os.path.isdir(suffix_path)):
                continue
            for hsh in os.listdir(suffix_path):
                hsh_path = os.path.join(suffix_path, hsh)
                if (not os.path.isdir(hsh_path)):
                    continue
                for fname in sorted(os.listdir(hsh_path), reverse=True):
                    if fname.endswith('.ts'):
                        break
                    elif fname.endswith('.db'):
                        self.start_time = time()
                        broker = AccountBroker(os.path.join(hsh_path, fname))
                        if (broker.is_status_deleted() and (not broker.empty())):
                            self.reap_account(broker, partition, nodes, container_shard=container_shard)
