From 3583a569c7ea6748297219bd542db97405c3b1c4 Mon Sep 17 00:00:00 2001
From: Stavros Sachtouris <saxtouri@admin.grnet.gr>
Date: Thu, 30 Apr 2015 12:26:10 +0300
Subject: [PATCH] Update status in GUI even when paused

---
 agkyra/agkyra/cli.py      | 2 +-
 agkyra/agkyra/protocol.py | 8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/agkyra/agkyra/cli.py b/agkyra/agkyra/cli.py
index 89cca54..d8c0412 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 a362d49..2f6889d 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})
-- 
GitLab