Alex Lourie has uploaded a new change for review.

Change subject: packaging: Added a spinner for long operations
......................................................................

packaging: Added a spinner for long operations

Change-Id: I4381004b8137f8d24b429b1a0a92de32f8f78ee8
Signed-off-by: Alex Lourie <alou...@redhat.com>
---
M packaging/fedora/setup/common_utils.py
M packaging/fedora/setup/engine-upgrade.py
2 files changed, 36 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/09/10809/1

diff --git a/packaging/fedora/setup/common_utils.py 
b/packaging/fedora/setup/common_utils.py
index 41413ca..22b89ed 100755
--- a/packaging/fedora/setup/common_utils.py
+++ b/packaging/fedora/setup/common_utils.py
@@ -19,8 +19,43 @@
 import time
 import tempfile
 import csv
+import threading
 from miniyum import MiniYum
 
+
+# Decorator for printing a spinner while waiting for action
+def print_spinner(func):
+    class ThreadedSpinner(threading.Thread):
+        def __init__(self):
+            threading.Thread.__init__(self)
+
+        def stop(self):
+            self.finished.set()
+            self._Thread__stop()
+
+        def run(self):
+            def spinning_cursor():
+                cursor = '/-\|'
+                i = 0
+                while 1:
+                    yield cursor[i]
+                    i = (i + 1) % len(cursor)
+
+            for c in spinning_cursor():
+                sys.stdout.write(c)
+                sys.stdout.flush()
+                time.sleep(0.1)
+                sys.stdout.write('\b')
+
+    def wrapped(*args):
+        spinner = ThreadedSpinner()
+        spinner.start()
+        func(*args)
+        spinner.stop()
+
+    return wrapped
+
+
 """
 ENUM implementation for python (from the vdsm team)
 usage:
diff --git a/packaging/fedora/setup/engine-upgrade.py 
b/packaging/fedora/setup/engine-upgrade.py
index de0c203..8c52cae 100755
--- a/packaging/fedora/setup/engine-upgrade.py
+++ b/packaging/fedora/setup/engine-upgrade.py
@@ -582,6 +582,7 @@
     post.run()
     logging.debug("Post script completed successfully")
 
+@utils.print_spinner
 def runFunc(funcList, dispString):
     print "%s..."%(dispString),
     sys.stdout.flush()


--
To view, visit http://gerrit.ovirt.org/10809
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4381004b8137f8d24b429b1a0a92de32f8f78ee8
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alex Lourie <alou...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to