From 36e99ecab71eeef0cf5fe6539f2856af58b7bed7 Mon Sep 17 00:00:00 2001 From: Giorgos Korfiatis <gkorf@grnet.gr> Date: Tue, 21 Jul 2015 13:37:42 +0300 Subject: [PATCH] Make heartbeat case-insensitive in windows --- agkyra/syncer/pithos_client.py | 7 ++++--- agkyra/syncer/syncer.py | 10 +++++----- agkyra/syncer/utils.py | 6 ++++++ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/agkyra/syncer/pithos_client.py b/agkyra/syncer/pithos_client.py index 5e23cae..19a8379 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 8f80880..11fec78 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 462d123..7a7c7f1 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 -- GitLab