From 182c8a0748b2b2584464bf72b714915736737fc2 Mon Sep 17 00:00:00 2001 From: Wilmer Uruchi Ticona Date: Wed, 4 Sep 2019 15:14:00 +0200 Subject: [PATCH] Fixed #430: Added configuration option in autosubmit_expid.conf to set the default output in CREATE, SET STATUS, MONITOR, RECOVERY. Added -d option in the operation previously mentioned that shows a list view of the jobs. Replaced the txt generation algorithm. --- autosubmit/autosubmit.py | 90 +++++++++++++++++++------ autosubmit/config/config_common.py | 9 +++ autosubmit/config/files/autosubmit.conf | 3 + autosubmit/job/job_common.py | 13 ++++ autosubmit/job/job_list.py | 43 ++++++++---- autosubmit/monitor/monitor.py | 56 ++++++++++----- docs/source/tutorial.rst | 4 ++ docs/source/usage/create_exp.rst | 2 + docs/source/usage/monitor.rst | 2 + docs/source/usage/recovery.rst | 2 + 10 files changed, 173 insertions(+), 51 deletions(-) diff --git a/autosubmit/autosubmit.py b/autosubmit/autosubmit.py index 24439f359..3fed4cee2 100644 --- a/autosubmit/autosubmit.py +++ b/autosubmit/autosubmit.py @@ -179,9 +179,9 @@ class Autosubmit: # Monitor subparser = subparsers.add_parser('monitor', description="plots specified experiment") - subparser.add_argument('expid', help='experiment identifier') - subparser.add_argument('-o', '--output', choices=('pdf', 'png', 'ps', 'svg'), default='pdf', - help='chooses type of output for generated plot') + subparser.add_argument('expid', help='experiment identifier') + subparser.add_argument('-o', '--output', choices=('pdf', 'png', 'ps', 'svg'), + help='chooses type of output for generated plot') ## Default -o value comes from .conf subparser.add_argument('-group_by', choices=('date', 'member', 'chunk', 'split', 'automatic'), default=None, help='Groups the jobs automatically or by date, member, chunk or split') subparser.add_argument('-expand', type=str, @@ -218,6 +218,7 @@ class Autosubmit: help='Generates only txt status file(AS < 3.12b behaviour)') subparser.add_argument('-nt', '--notransitive', action='store_true', default=False, help='Disable transitive reduction') + subparser.add_argument('-d', '--detail', action='store_true', default=False, help='Shows Job List view in terminal') # Stats subparser = subparsers.add_parser('stats', description="plots statistics for specified experiment") @@ -260,6 +261,8 @@ class Autosubmit: subparser.add_argument('-nt', '--notransitive', action='store_true', default=False, help='Disable transitive reduction') subparser.add_argument('-nl', '--no_recover_logs', action='store_true', default=False, help='Disable logs recovery') + subparser.add_argument('-d', '--detail', action='store_true', default=False, help='Show Job List view in terminal') + # Migrate subparser = subparsers.add_parser('migrate', description="Migrate experiments from current user to another") subparser.add_argument('expid', help='experiment identifier') @@ -305,8 +308,9 @@ class Autosubmit: subparser.add_argument('-np', '--noplot', action='store_true', default=False, help='omit plot') subparser.add_argument('--hide', action='store_true', default=False, help='hides plot window') - subparser.add_argument('-o', '--output', choices=('pdf', 'png', 'ps', 'svg'), default='pdf', - help='chooses type of output for generated plot') + subparser.add_argument('-d', '--detail', action='store_true', default=False, help='Show Job List view in terminal') + subparser.add_argument('-o', '--output', choices=('pdf', 'png', 'ps', 'svg'), + help='chooses type of output for generated plot') ## Default -o value comes from .conf subparser.add_argument('-group_by', choices=('date', 'member', 'chunk', 'split', 'automatic'), default=None, help='Groups the jobs automatically or by date, member, chunk or split') subparser.add_argument('-expand', type=str, @@ -346,7 +350,6 @@ class Autosubmit: subparser.add_argument('expid', help='experiment identifier') subparser.add_argument('-np', '--noplot', action='store_true', default=False, help='omit plot') subparser.add_argument('-s', '--save', action="store_true", default=False, help='Save changes to disk') - subparser.add_argument('-t', '--status_final', choices=('READY', 'COMPLETED', 'WAITING', 'SUSPENDED', 'FAILED', 'UNKNOWN', 'QUEUING', 'RUNNING'), @@ -439,7 +442,7 @@ class Autosubmit: elif args.command == 'monitor': return Autosubmit.monitor(args.expid, args.output, args.list, args.filter_chunks, args.filter_status, args.filter_type, args.hide, args.txt, args.group_by, args.expand, - args.expand_status, args.hide_groups, args.notransitive,args.check_wrapper,args.txt_logfiles) + args.expand_status, args.hide_groups, args.notransitive,args.check_wrapper,args.txt_logfiles, args.detail) elif args.command == 'stats': return Autosubmit.statistics(args.expid, args.filter_type, args.filter_period, args.output, args.hide, args.notransitive) @@ -447,7 +450,7 @@ class Autosubmit: return Autosubmit.clean(args.expid, args.project, args.plot, args.stats) elif args.command == 'recovery': return Autosubmit.recovery(args.expid, args.noplot, args.save, args.all, args.hide, args.group_by, - args.expand, args.expand_status, args.notransitive,args.no_recover_logs) + args.expand, args.expand_status, args.notransitive,args.no_recover_logs, args.detail) elif args.command == 'check': return Autosubmit.check(args.expid, args.notransitive) elif args.command == 'inspect': @@ -459,7 +462,7 @@ class Autosubmit: return Autosubmit.migrate(args.expid, args.offer, args.pickup) elif args.command == 'create': return Autosubmit.create(args.expid, args.noplot, args.hide, args.output, args.group_by, args.expand, - args.expand_status, args.notransitive,args.check_wrapper) + args.expand_status, args.notransitive,args.check_wrapper, args.detail) elif args.command == 'configure': if not args.advanced or (args.advanced and dialog is None): return Autosubmit.configure(args.advanced, args.databasepath, args.databasefilename, @@ -1243,7 +1246,7 @@ class Autosubmit: @staticmethod def monitor(expid, file_format, lst, filter_chunks, filter_status, filter_section, hide, txt_only=False, - group_by=None, expand=list(), expand_status=list(), hide_groups=False, notransitive=False, check_wrapper=False, txt_logfiles=False): + group_by=None, expand=list(), expand_status=list(), hide_groups=False, notransitive=False, check_wrapper=False, txt_logfiles=False, detail=False): """ Plots workflow graph for a given experiment with status of each job coded by node color. Plot is created in experiment's plot folder with name __