def _dry_run_decision(self, db, objname, master=None, slave=None): if master is None: master = self.MASTER if slave is None: slave = self.SLAVE ident = utils.time_stamp() return self._do_decide_file_sync(db, objname, master, slave, ident, True)
def probe_file(self, archive, objname): ident = utils.time_stamp() try: self._probe_files(archive, [objname], ident) client = self.clients[archive] client.remove_candidates([objname], ident) except common.DatabaseError: pass
def probe_archive(self, archive, forced=False): ident = utils.time_stamp() client = self.clients[archive] try: candidates = client.list_candidate_files(forced=forced) self._probe_files(archive, candidates, ident) client.remove_candidates(candidates, ident) except common.DatabaseError: pass
def decide_file_syncs(self, objnames, master=None, slave=None): if master is None: master = self.MASTER if slave is None: slave = self.SLAVE ident = utils.time_stamp() syncs = [] try: with TransactedConnection(self.syncer_dbtuple) as db: for objname in objnames: states = self._decide_file_sync(db, objname, master, slave, ident) if states is not None: syncs.append(states) except common.DatabaseError: self.clean_heartbeat(objnames, ident) return self.enqueue_syncs(syncs)
def decide_file_syncs(self, objnames, master=None, slave=None): if master is None: master = self.MASTER if slave is None: slave = self.SLAVE ident = utils.time_stamp() syncs = [] try: with TransactedConnection(self.syncer_dbtuple) as db: for objname in objnames: states = self._decide_file_sync( db, objname, master, slave, ident) if states is not None: syncs.append(states) except common.DatabaseError: self.clean_heartbeat(objnames, ident) return self.enqueue_syncs(syncs)
def __init__(self, *args, **kwargs): self.tstamp = utils.time_stamp() self.logger = kwargs["logger"] self.name = self.__class__.__name__