diff --git a/agkyra/syncer/localfs_client.py b/agkyra/syncer/localfs_client.py index 0bf2dd1964d6f0c0a6cf8e9cd3258c09df7e9209..ea28969eb23b5518e04701f30957b4d988b99aca 100644 --- a/agkyra/syncer/localfs_client.py +++ b/agkyra/syncer/localfs_client.py @@ -450,8 +450,10 @@ class LocalfsSourceHandle(object): live_info = local_path_changes( self.staged_path, self.source_state) if live_info is not None: - logger.warning("Actual info differs in %s for object: '%s'; " - "updating..." % (self.SIGNATURE, self.objname)) + msg = messaging.LiveInfoUpdateMessage( + archive=self.SIGNATURE, objname=self.objname, + info=live_info, logger=logger) + self.settings.messager.put(msg) new_state = self.source_state.set(info=live_info) self.update_state(new_state) self.source_state = new_state diff --git a/agkyra/syncer/messaging.py b/agkyra/syncer/messaging.py index 72bfe2108d7b885923e5a0b5b2f30716dd645365..bf07b88e923bd27a9622231edac0bff7aadcb1fe 100644 --- a/agkyra/syncer/messaging.py +++ b/agkyra/syncer/messaging.py @@ -49,6 +49,16 @@ class UpdateMessage(Message): (self.archive, self.objname, self.serial)) +class LiveInfoUpdateMessage(Message): + def __init__(self, *args, **kwargs): + Message.__init__(self, *args, **kwargs) + self.archive = kwargs["archive"] + self.objname = kwargs["objname"] + self.info = kwargs["info"] + self.logger.warning("Actual info differs in %s for object: '%s'; " + "updating..." % (self.archive, self.objname)) + + class SyncMessage(Message): def __init__(self, *args, **kwargs): Message.__init__(self, *args, **kwargs) diff --git a/agkyra/syncer/pithos_client.py b/agkyra/syncer/pithos_client.py index 4764d50e594014af1b1d0346d5c824dc41b866af..f3b7c37f31940a61b4a27912e30d65a2a9628025 100644 --- a/agkyra/syncer/pithos_client.py +++ b/agkyra/syncer/pithos_client.py @@ -149,8 +149,10 @@ class PithosSourceHandle(object): def check_update_source_state(self, actual_info): if actual_info != self.source_state.info: - logger.warning("Actual info differs in %s for object: '%s'; " - "updating..." % (self.SIGNATURE, self.objname)) + msg = messaging.LiveInfoUpdateMessage( + archive=self.SIGNATURE, objname=self.objname, + info=actual_info, logger=logger) + self.settings.messager.put(msg) new_state = self.source_state.set(info=actual_info) self.update_state(new_state) self.source_state = new_state diff --git a/test.py b/test.py index ea9ab1d6685d4e8f13bdc52baf878babdc363447..62bc4eaa48e5ef9613bdb106e5123555be862804 100644 --- a/test.py +++ b/test.py @@ -389,6 +389,7 @@ with open(fchanged_path, "w") as f: s.decide_file_sync(fchanged) assert_message(messaging.SyncMessage) +assert_message(messaging.LiveInfoUpdateMessage) assert_message(messaging.AckSyncMessage) state = db.get_state(s.SLAVE, fchanged) @@ -414,6 +415,7 @@ new_fupch_etag = r1['etag'] s.decide_file_sync(fupch) assert_message(messaging.SyncMessage) +assert_message(messaging.LiveInfoUpdateMessage) assert_message(messaging.AckSyncMessage) state = db.get_state(s.MASTER, fupch) new_fupch_info = state.info