diff --git a/agkyra/agkyra/cli.py b/agkyra/agkyra/cli.py index 89cca54775d6d11f8d532233979d2c527775bd8e..d8c04129fde28c48e89aa31469b260e22d330ff1 100644 --- a/agkyra/agkyra/cli.py +++ b/agkyra/agkyra/cli.py @@ -142,7 +142,7 @@ class AgkyraCLI(cmd.Cmd): def do_pause(self, line): """Pause syncing""" if not self.syncer.paused: - self.syncer.stop_decide() + self.syncer.pause_decide() def do_status(self, line): """Get current status (running/paused, progress)""" diff --git a/agkyra/agkyra/protocol.py b/agkyra/agkyra/protocol.py index a362d490f97b6582e5aa9b82bb86e4cbc2e21335..2f6889d3dbfd7c47fdd24a44ce0590c2c50a23b2 100644 --- a/agkyra/agkyra/protocol.py +++ b/agkyra/agkyra/protocol.py @@ -231,6 +231,8 @@ class WebSocketProtocol(WebSocket): def pause_sync(self): self.syncer.stop_decide() + LOG.debug('Wait open syncs to complete') + self.syncer.wait_sync_threads() def start_sync(self): self.syncer.start_decide() @@ -254,6 +256,8 @@ class WebSocketProtocol(WebSocket): if action == 'shutdown': if self.can_sync(): self.syncer.stop_all_daemons() + LOG.debug('Wait open syncs to complete') + self.syncer.wait_sync_threads() self.close() return { @@ -263,11 +267,11 @@ class WebSocketProtocol(WebSocket): self.send_json({'OK': 200, 'action': 'post %s' % action}) elif r['gui_id'] == self.gui_id: self._load_settings() + self.accepted = True + self.send_json({'ACCEPTED': 202, 'action': 'post gui_id'}) if self.can_sync(): self.init_sync() self.pause_sync() - self.accepted = True - self.send_json({'ACCEPTED': 202, 'action': 'post gui_id'}) else: action = r.get('path', 'gui_id') self.send_json({'REJECTED': 401, 'action': 'post %s' % action})