[ Testing ] Enable certain wrappers without manual input. (Ex. Monarch-DA)
Hello @mcastril , @gmontane , @wuruchi , @fmacchia .
During #602 (closed) (testing suite) @fmacchia mentioned that there was no way to run these kinds of vertical-horizontal wrappers without manual input.
I'm making this issue to present a workaround to this issue(since it would be a bit offtopic for the testing suite issue itself).
Now we will be able to launch Monarch-da vertical wrappers with the use of the new feature that I just implemented ( although I'm still testing it and fixing some last details ) and thus be able to launch the AS testing suite without requiring manual input while also it will help to future cases and the people involved on monarch model.
I've coded a new variable called TWO_STEP_START
( please, if you have a better name let me know because I think it is kinda meh)
It will be added to the expdef configuration:
[experiment]
DATELIST = 20120101 20120201
MEMBERS = 00[0-3]
CHUNKSIZEUNIT = day
CHUNKSIZE = 1
NUMCHUNKS = 10
CHUNKINI =
TWO_STEP_START = LOCAL_SETUP;LOCAL_SEND;REMOTE_COMPILE;SIM,20120101;20120201,C;1
CALENDAR = standard
The syntax is pretty easy although it doesn't look like it, it only has 3 fields being two of them optional, and they're separated by the ,
char. The ; char can be another special character if you wish ( except: , = [] ) and it allows to select multiple jobs at once.
Basically, it can be set up as follows:
- First camp: Section name or job_name
- Second camp: Date # If job is running once, if it running = once it will work regardless of this camp
- Third camp: Member or chunk to run # Must include the 'C' char or the 'M' before the chunk or member name , again if it running = once it will work regardless of this camp
And what it does:
Pretty simple, since I must do this in a generic way, what I tried to archive is just to emulate the "suspend" setstatus within the same execution. So, the jobs listed in there ( if you use the DEBUG FLAG or look into autosubmit run logs, you will obtain the list of jobs filtered) will run first and when ALL of them finishes it will continue the execution with the normal autosubmit behaviour.
There is one exception tho, if there are not active jobs withing this filter list, it will erase this filter and continue the normal autosubmit behaviour ( in order to avoid hard-locks if there is a job annotated that can't be run)
Example in the monarch-da test:
TWO_STEP_START = LOCAL_SETUP;LOCAL_SEND;REMOTE_COMPILE;SIM,20120101;20120201,C;1
Debug:
Jobs to run first: ['a02n_20120101_003_1_SIM', 'a02n_20120201_002_1_SIM', 'a02n_20120201_000_1_SIM', 'a02n_20120101_002_1_SIM', 'a02n_20120201_001_1_SIM', 'a02n_LOCAL_SETUP', 'a02n_20120201_003_1_SIM', 'a02n_20120101_000_1_SIM', 'a02n_REMOTE_COMPILE', 'a02n_20120101_001_1_SIM']
I will try to make this available for tomorrow( in the VDEVEL module), so I can use the testing suite on Vdevel version and update autosubmit 3.13.0b on Monday.