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