diff options
author | Lars Wirzenius <liw@liw.fi> | 2017-05-21 15:02:22 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2017-05-21 15:02:22 +0300 |
commit | 6de82e32e068cd14fac4c960c107c466f201f440 (patch) | |
tree | 83eb6e09095706c5519075373d4213a2df07ddd5 | |
parent | e1603a745086902b1c5163da6513c216bb859879 (diff) | |
download | vmdb2-6de82e32e068cd14fac4c960c107c466f201f440.tar.gz |
Fix: make --verbose output to stdout
Drop ttystatus for progress reporting.
-rw-r--r-- | vmdb/__init__.py | 2 | ||||
-rw-r--r-- | vmdb/app.py | 19 | ||||
-rw-r--r-- | vmdb/plugins/error_plugin.py | 8 | ||||
-rw-r--r-- | vmdb/runcmd.py | 14 |
4 files changed, 14 insertions, 29 deletions
diff --git a/vmdb/__init__.py b/vmdb/__init__.py index 758a900..b9dbef4 100644 --- a/vmdb/__init__.py +++ b/vmdb/__init__.py @@ -24,5 +24,5 @@ from .step_list import ( NoMatchingRunner, StepError, ) -from .runcmd import runcmd, set_runcmd_progress, progress, error +from .runcmd import runcmd, set_verbose_progress, progress, error from .app import Vmdb2 diff --git a/vmdb/app.py b/vmdb/app.py index 6ef5df2..0b62364 100644 --- a/vmdb/app.py +++ b/vmdb/app.py @@ -21,7 +21,6 @@ import sys import cliapp import jinja2 -import ttystatus import yaml import vmdb @@ -43,7 +42,7 @@ class Vmdb2(cliapp.Application): self.step_runners = vmdb.StepRunnerList() def process_args(self, args): - self.progress = self.create_progress() + vmdb.set_verbose_progress(self.settings['verbose']) spec = self.load_spec_file(args[0]) @@ -54,27 +53,16 @@ class Vmdb2(cliapp.Application): state = vmdb.State() steps_taken, core_meltdown = self.run_steps(steps, state) - self.progress.clear() - self.progress = self.create_progress() if core_meltdown: vmdb.progress('Something went wrong, cleaning up!') else: vmdb.progress('All went fine, cleaning up.') self.run_teardowns(steps_taken, state) - self.progress.finish() - if core_meltdown: logging.error('An error occurred, exiting with non-zero exit code') sys.exit(1) - def create_progress(self): - progress = ttystatus.TerminalStatus(period=0) - progress.format( - '%ElapsedTime() Step %Index(step,steps): %String(current)') - vmdb.set_runcmd_progress(progress, self.settings['verbose']) - return progress - def load_spec_file(self, filename): vmdb.progress('Load spec file {}'.format(filename)) with open(filename) as f: @@ -92,7 +80,6 @@ class Vmdb2(cliapp.Application): core_meltdown = False steps_taken = [] - self.progress['steps'] = steps for step in steps: try: logging.info(msg, step) @@ -100,11 +87,9 @@ class Vmdb2(cliapp.Application): expanded_step = self.expand_step_spec(step, state) runner = self.step_runners.find(step) method = getattr(runner, method_name) - self.progress['step'] = step - self.progress['curstep'] = self.format_step(runner, step) method(expanded_step, self.settings, state) except Exception as e: - self.error(str(e)) + vmdb.error(str(e)) core_meltdown = True if not keep_going: break diff --git a/vmdb/plugins/error_plugin.py b/vmdb/plugins/error_plugin.py index d085748..73db1bc 100644 --- a/vmdb/plugins/error_plugin.py +++ b/vmdb/plugins/error_plugin.py @@ -37,8 +37,12 @@ class ErrorStepRunner(vmdb.StepRunnerInterface): return ['error', 'teardown'] def run(self, step, settings, state): - vmdb.error('{}'.format(step['error'])) + # We use vmdb.progress here to get output to go to stdout, + # instead of stderr. We want that for tests. + vmdb.progress('{}'.format(step['error'])) raise vmdb.StepError('an error occurred') def teardown(self, step, settings, state): - vmdb.error('{}'.format(step['teardown'])) + # We use vmdb.progress here to get output to go to stdout, + # instead of stderr. We want that for tests. + vmdb.progress('{}'.format(step['teardown'])) diff --git a/vmdb/runcmd.py b/vmdb/runcmd.py index 9cae459..81dc74c 100644 --- a/vmdb/runcmd.py +++ b/vmdb/runcmd.py @@ -23,28 +23,24 @@ import sys import cliapp -_progress = None _verbose = False -def set_runcmd_progress(progress, verbose): - global _progress, _verbose - _progress = progress +def set_verbose_progress(verbose): + global _verbose _verbose = verbose def error(msg): logging.error(msg, exc_info=True) - _progress['current'] = msg if _verbose: - _progress.error(msg) - + sys.stderr.write('ERROR: {}\n'.format(msg)) + def progress(msg): logging.info(msg) - _progress['current'] = msg if _verbose: - _progress.notify(msg) + sys.stdout.write('{}\n'.format(msg)) def runcmd(argv, *argvs, **kwargs): |