Skip to content

Commit

Permalink
cli: refactor workflow status
Browse files Browse the repository at this point in the history
Signed-off-by: Dinos Kousidis <dinos.kousidis@cern.ch>
  • Loading branch information
dinosk committed Aug 2, 2018
1 parent 1f75d25 commit e7bd1ab
Showing 1 changed file with 19 additions and 22 deletions.
41 changes: 19 additions & 22 deletions reana_client/cli/workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -308,25 +308,25 @@ def workflow_start(ctx, workflow, access_token):
def workflow_status(ctx, workflow, _filter, output_format,
access_token, verbose):
"""Get status of previously created workflow."""
def show_progress(succeeded_jobs, total_jobs):
def render_progress(finished_jobs, total_jobs):
if total_jobs:
return '{0}/{1}'.format(succeeded_jobs, total_jobs)
return '{0}/{1}'.format(finished_jobs, total_jobs)
else:
return '-/-'

def get_data_from_row(row, data, headers):
def add_data_from_reponse(row, data, headers):
name, run_number = get_workflow_name_and_run_number(
row['name'])
total_jobs = row['progress'].get('total')
if total_jobs:
total_jobs = total_jobs.get('total')
else:
total_jobs = 0
succeeded_jobs = row['progress'].get('finished')
if succeeded_jobs:
succeeded_jobs = succeeded_jobs.get('total')
finished_jobs = row['progress'].get('finished')
if finished_jobs:
finished_jobs = finished_jobs.get('total')
else:
succeeded_jobs = 0
finished_jobs = 0
if row['progress']['total'].get('total') or 0 > 0:
if 'progress' not in headers:
headers += ['progress']
Expand All @@ -337,9 +337,11 @@ def get_data_from_row(row, data, headers):
run_number,
row['created'],
row['status'],
show_progress(succeeded_jobs, total_jobs)])))
render_progress(finished_jobs, total_jobs)])))
return data

def add_verbose_columns(response, verbose_headers, headers, data):
def add_verbose_data_from_response(response, verbose_headers,
headers, data):
for k in verbose_headers:
if k == 'command':
current_command = response['progress']['current_command']
Expand Down Expand Up @@ -377,21 +379,16 @@ def add_verbose_columns(response, verbose_headers, headers, data):
access_token)
headers = ['name', 'run_number', 'created', 'status', 'progress']
verbose_headers = ['id', 'user', 'command']
if verbose:
headers += verbose_headers
data = []
if isinstance(response, list):
for workflow in response:
get_data_from_row(workflow, data, headers)
if verbose:
data = add_verbose_columns(workflow, verbose_headers,
headers, data)

else:
get_data_from_row(response, data, headers)
if not isinstance(response, list):
response = [response]
for workflow in response:
add_data_from_reponse(workflow, data, headers)
if verbose:
data = add_verbose_columns(response, verbose_headers,
headers, data)
headers += verbose_headers
add_verbose_data_from_response(
workflow, verbose_headers,
headers, data)

if output_format:
tablib_data = tablib.Dataset()
Expand Down

0 comments on commit e7bd1ab

Please sign in to comment.