diff --git a/agkyra/syncer/pithos_client.py b/agkyra/syncer/pithos_client.py index 5e23caeb13cf8ff42a33b72ee63e555e49cd1a0c..19a8379a3953b4bb00c78c5d5c656d8c83798064 100644 --- a/agkyra/syncer/pithos_client.py +++ b/agkyra/syncer/pithos_client.py @@ -34,12 +34,13 @@ def heartbeat_event(settings, heartbeat, objname): def set_log(): with heartbeat.lock() as hb: - beat = hb.get(objname) + registered_name = utils.reg_name(objname) + beat = hb.get(registered_name) assert beat is not None new_beat = {"ident": beat["ident"], "tstamp": utils.time_stamp()} - hb[objname] = new_beat - logger.debug("HEARTBEAT '%s' %s" % (objname, new_beat)) + hb[registered_name] = new_beat + logger.debug("HEARTBEAT '%s' %s" % (registered_name, new_beat)) def go(): interval = 0.2 diff --git a/agkyra/syncer/syncer.py b/agkyra/syncer/syncer.py index 8f80880d2ee3ed6574f8d80cc18048c833c0ac9d..11fec78d783f8e7834b7a4617e5bd9486641f5f3 100644 --- a/agkyra/syncer/syncer.py +++ b/agkyra/syncer/syncer.py @@ -117,7 +117,7 @@ class FileSyncer(object): db_state = db.get_state(archive, objname) ref_state = db.get_state(self.SYNC, objname) with self.heartbeat.lock() as hb: - beat = hb.get(objname) + beat = hb.get(utils.reg_name(objname)) if beat is not None: if utils.younger_than( beat["tstamp"], self.settings.action_max_wait): @@ -206,7 +206,7 @@ class FileSyncer(object): if states is not None: with self.heartbeat.lock() as hb: beat = {"ident": ident, "tstamp": utils.time_stamp()} - hb[objname] = beat + hb[utils.reg_name(objname)] = beat return states def _do_decide_file_sync(self, objname, master, slave, ident, @@ -223,7 +223,7 @@ class FileSyncer(object): decision_serial = decision_state.serial with self.heartbeat.lock() as hb: - beat = hb.get(objname) + beat = hb.get(utils.reg_name(objname)) logger.debug("object: %s heartbeat: %s" % (objname, beat)) if beat is not None: if beat["ident"] == ident: @@ -325,7 +325,7 @@ class FileSyncer(object): serial = state.serial objname = state.objname with self.heartbeat.lock() as hb: - hb.pop(objname) + hb.pop(utils.reg_name(objname)) if hard: logger.warning( "Marking failed serial %s for archive: %s, object: '%s'" % @@ -348,7 +348,7 @@ class FileSyncer(object): objname = synced_source_state.objname target = synced_target_state.archive with self.heartbeat.lock() as hb: - hb.pop(objname) + hb.pop(utils.reg_name(objname)) msg = messaging.AckSyncMessage( archive=target, objname=objname, serial=serial, logger=logger) diff --git a/agkyra/syncer/utils.py b/agkyra/syncer/utils.py index 462d1232d405ec59c8a4fd38c02fe14adbc87aa1..7a7c7f1276237713d01f6c89ecae57dd3d169434 100644 --- a/agkyra/syncer/utils.py +++ b/agkyra/syncer/utils.py @@ -99,6 +99,12 @@ def younger_than(tstamp, seconds): return delta < datetime.timedelta(seconds=seconds) +def reg_name(objname): + if iswin(): + return objname.lower() + return objname + + BaseStoppableThread = watchdog.utils.BaseThread