diff --git a/cylc/flow/data_messages.proto b/cylc/flow/data_messages.proto index 783deb243e9..3568c9ea86b 100644 --- a/cylc/flow/data_messages.proto +++ b/cylc/flow/data_messages.proto @@ -123,7 +123,6 @@ message PbJob { optional string script = 21; optional string shell = 22; optional string work_sub_dir = 23; - optional string batch_sys_conf = 24; optional string environment = 25; optional string directives = 26; optional string param_var = 28; diff --git a/cylc/flow/data_messages_pb2.py b/cylc/flow/data_messages_pb2.py index 8f99c465c4d..23f61f6d976 100644 --- a/cylc/flow/data_messages_pb2.py +++ b/cylc/flow/data_messages_pb2.py @@ -19,7 +19,7 @@ syntax='proto3', serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x13\x64\x61ta_messages.proto\"\x96\x01\n\x06PbMeta\x12\x12\n\x05title\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03URL\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cuser_defined\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x08\n\x06_titleB\x0e\n\x0c_descriptionB\x06\n\x04_URLB\x0f\n\r_user_defined\"\xaa\x01\n\nPbTimeZone\x12\x12\n\x05hours\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x07minutes\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\x0cstring_basic\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0fstring_extended\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x08\n\x06_hoursB\n\n\x08_minutesB\x0f\n\r_string_basicB\x12\n\x10_string_extended\"\x8e\n\n\nPbWorkflow\x12\x12\n\x05stamp\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06status\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x11\n\x04host\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x11\n\x04port\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12\x12\n\x05owner\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\r\n\x05tasks\x18\x08 \x03(\t\x12\x10\n\x08\x66\x61milies\x18\t \x03(\t\x12\x1c\n\x05\x65\x64ges\x18\n \x01(\x0b\x32\x08.PbEdgesH\x07\x88\x01\x01\x12\x18\n\x0b\x61pi_version\x18\x0b \x01(\x05H\x08\x88\x01\x01\x12\x19\n\x0c\x63ylc_version\x18\x0c \x01(\tH\t\x88\x01\x01\x12\x19\n\x0clast_updated\x18\r \x01(\x01H\n\x88\x01\x01\x12\x1a\n\x04meta\x18\x0e \x01(\x0b\x32\x07.PbMetaH\x0b\x88\x01\x01\x12(\n\x1bnewest_runahead_cycle_point\x18\x0f \x01(\tH\x0c\x88\x01\x01\x12\x1f\n\x12newest_cycle_point\x18\x10 \x01(\tH\r\x88\x01\x01\x12\x1f\n\x12oldest_cycle_point\x18\x11 \x01(\tH\x0e\x88\x01\x01\x12\x15\n\x08reloaded\x18\x12 \x01(\x08H\x0f\x88\x01\x01\x12\x15\n\x08run_mode\x18\x13 \x01(\tH\x10\x88\x01\x01\x12\x19\n\x0c\x63ycling_mode\x18\x14 \x01(\tH\x11\x88\x01\x01\x12\x32\n\x0cstate_totals\x18\x15 \x03(\x0b\x32\x1c.PbWorkflow.StateTotalsEntry\x12\x1d\n\x10workflow_log_dir\x18\x16 \x01(\tH\x12\x88\x01\x01\x12(\n\x0etime_zone_info\x18\x17 \x01(\x0b\x32\x0b.PbTimeZoneH\x13\x88\x01\x01\x12\x17\n\ntree_depth\x18\x18 \x01(\x05H\x14\x88\x01\x01\x12\x15\n\rjob_log_names\x18\x19 \x03(\t\x12\x14\n\x0cns_def_order\x18\x1a \x03(\t\x12\x0e\n\x06states\x18\x1b \x03(\t\x12\x14\n\x0ctask_proxies\x18\x1c \x03(\t\x12\x16\n\x0e\x66\x61mily_proxies\x18\x1d \x03(\t\x12\x17\n\nstatus_msg\x18\x1e \x01(\tH\x15\x88\x01\x01\x12\x1a\n\ris_held_total\x18\x1f \x01(\x05H\x16\x88\x01\x01\x12\x0c\n\x04jobs\x18 \x03(\t\x12\x15\n\x08pub_port\x18! \x01(\x05H\x17\x88\x01\x01\x12\x17\n\nbroadcasts\x18\" \x01(\tH\x18\x88\x01\x01\x1a\x32\n\x10StateTotalsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x42\x08\n\x06_stampB\x05\n\x03_idB\x07\n\x05_nameB\t\n\x07_statusB\x07\n\x05_hostB\x07\n\x05_portB\x08\n\x06_ownerB\x08\n\x06_edgesB\x0e\n\x0c_api_versionB\x0f\n\r_cylc_versionB\x0f\n\r_last_updatedB\x07\n\x05_metaB\x1e\n\x1c_newest_runahead_cycle_pointB\x15\n\x13_newest_cycle_pointB\x15\n\x13_oldest_cycle_pointB\x0b\n\t_reloadedB\x0b\n\t_run_modeB\x0f\n\r_cycling_modeB\x13\n\x11_workflow_log_dirB\x11\n\x0f_time_zone_infoB\r\n\x0b_tree_depthB\r\n\x0b_status_msgB\x10\n\x0e_is_held_totalB\x0b\n\t_pub_portB\r\n\x0b_broadcasts\"\xad\t\n\x05PbJob\x12\x12\n\x05stamp\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\nsubmit_num\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x12\n\x05state\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x17\n\ntask_proxy\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1b\n\x0esubmitted_time\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x19\n\x0cstarted_time\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\x1a\n\rfinished_time\x18\x08 \x01(\tH\x07\x88\x01\x01\x12\x1d\n\x10\x62\x61tch_sys_job_id\x18\t \x01(\tH\x08\x88\x01\x01\x12\x1b\n\x0e\x62\x61tch_sys_name\x18\n \x01(\tH\t\x88\x01\x01\x12\x17\n\nenv_script\x18\x0b \x01(\tH\n\x88\x01\x01\x12\x17\n\nerr_script\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x18\n\x0b\x65xit_script\x18\r \x01(\tH\x0c\x88\x01\x01\x12!\n\x14\x65xecution_time_limit\x18\x0e \x01(\x02H\r\x88\x01\x01\x12\x11\n\x04host\x18\x0f \x01(\tH\x0e\x88\x01\x01\x12\x18\n\x0binit_script\x18\x10 \x01(\tH\x0f\x88\x01\x01\x12\x18\n\x0bjob_log_dir\x18\x11 \x01(\tH\x10\x88\x01\x01\x12\x12\n\x05owner\x18\x12 \x01(\tH\x11\x88\x01\x01\x12\x18\n\x0bpost_script\x18\x13 \x01(\tH\x12\x88\x01\x01\x12\x17\n\npre_script\x18\x14 \x01(\tH\x13\x88\x01\x01\x12\x13\n\x06script\x18\x15 \x01(\tH\x14\x88\x01\x01\x12\x12\n\x05shell\x18\x16 \x01(\tH\x15\x88\x01\x01\x12\x19\n\x0cwork_sub_dir\x18\x17 \x01(\tH\x16\x88\x01\x01\x12\x1b\n\x0e\x62\x61tch_sys_conf\x18\x18 \x01(\tH\x17\x88\x01\x01\x12\x18\n\x0b\x65nvironment\x18\x19 \x01(\tH\x18\x88\x01\x01\x12\x17\n\ndirectives\x18\x1a \x01(\tH\x19\x88\x01\x01\x12\x16\n\tparam_var\x18\x1c \x01(\tH\x1a\x88\x01\x01\x12\x12\n\nextra_logs\x18\x1d \x03(\t\x12\x11\n\x04name\x18\x1e \x01(\tH\x1b\x88\x01\x01\x12\x18\n\x0b\x63ycle_point\x18\x1f \x01(\tH\x1c\x88\x01\x01\x12\x10\n\x08messages\x18 \x03(\tB\x08\n\x06_stampB\x05\n\x03_idB\r\n\x0b_submit_numB\x08\n\x06_stateB\r\n\x0b_task_proxyB\x11\n\x0f_submitted_timeB\x0f\n\r_started_timeB\x10\n\x0e_finished_timeB\x13\n\x11_batch_sys_job_idB\x11\n\x0f_batch_sys_nameB\r\n\x0b_env_scriptB\r\n\x0b_err_scriptB\x0e\n\x0c_exit_scriptB\x17\n\x15_execution_time_limitB\x07\n\x05_hostB\x0e\n\x0c_init_scriptB\x0e\n\x0c_job_log_dirB\x08\n\x06_ownerB\x0e\n\x0c_post_scriptB\r\n\x0b_pre_scriptB\t\n\x07_scriptB\x08\n\x06_shellB\x0f\n\r_work_sub_dirB\x11\n\x0f_batch_sys_confB\x0e\n\x0c_environmentB\r\n\x0b_directivesB\x0c\n\n_param_varB\x07\n\x05_nameB\x0e\n\x0c_cycle_point\"\xb4\x02\n\x06PbTask\x12\x12\n\x05stamp\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\x04meta\x18\x04 \x01(\x0b\x32\x07.PbMetaH\x03\x88\x01\x01\x12\x1e\n\x11mean_elapsed_time\x18\x05 \x01(\x02H\x04\x88\x01\x01\x12\x12\n\x05\x64\x65pth\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12\x0f\n\x07proxies\x18\x07 \x03(\t\x12\x11\n\tnamespace\x18\x08 \x03(\t\x12\x0f\n\x07parents\x18\t \x03(\t\x12\x19\n\x0c\x66irst_parent\x18\n \x01(\tH\x06\x88\x01\x01\x42\x08\n\x06_stampB\x05\n\x03_idB\x07\n\x05_nameB\x07\n\x05_metaB\x14\n\x12_mean_elapsed_timeB\x08\n\x06_depthB\x0f\n\r_first_parent\"\xd8\x01\n\nPbPollTask\x12\x18\n\x0blocal_proxy\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08workflow\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0cremote_proxy\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x16\n\treq_state\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0cgraph_string\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\x0e\n\x0c_local_proxyB\x0b\n\t_workflowB\x0f\n\r_remote_proxyB\x0c\n\n_req_stateB\x0f\n\r_graph_string\"\xcb\x01\n\x0bPbCondition\x12\x17\n\ntask_proxy\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nexpr_alias\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\treq_state\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x16\n\tsatisfied\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x14\n\x07message\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\r\n\x0b_task_proxyB\r\n\x0b_expr_aliasB\x0c\n\n_req_stateB\x0c\n\n_satisfiedB\n\n\x08_message\"\x96\x01\n\x0ePbPrerequisite\x12\x17\n\nexpression\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\nconditions\x18\x02 \x03(\x0b\x32\x0c.PbCondition\x12\x14\n\x0c\x63ycle_points\x18\x03 \x03(\t\x12\x16\n\tsatisfied\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\r\n\x0b_expressionB\x0c\n\n_satisfied\"\xde\x04\n\x0bPbTaskProxy\x12\x12\n\x05stamp\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04task\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x12\n\x05state\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x18\n\x0b\x63ycle_point\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x12\n\x05\x64\x65pth\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12\x18\n\x0bjob_submits\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12\x1b\n\x0elatest_message\x18\x08 \x01(\tH\x07\x88\x01\x01\x12\x14\n\x07outputs\x18\t \x01(\tH\x08\x88\x01\x01\x12\x11\n\tnamespace\x18\x0b \x03(\t\x12&\n\rprerequisites\x18\x0c \x03(\x0b\x32\x0f.PbPrerequisite\x12\x0c\n\x04jobs\x18\r \x03(\t\x12\x19\n\x0c\x66irst_parent\x18\x0f \x01(\tH\t\x88\x01\x01\x12\x11\n\x04name\x18\x10 \x01(\tH\n\x88\x01\x01\x12\x14\n\x07is_held\x18\x11 \x01(\x08H\x0b\x88\x01\x01\x12\r\n\x05\x65\x64ges\x18\x12 \x03(\t\x12\x11\n\tancestors\x18\x13 \x03(\t\x12\x17\n\nflow_label\x18\x14 \x01(\tH\x0c\x88\x01\x01\x12\x13\n\x06\x65xtras\x18\x15 \x01(\tH\r\x88\x01\x01\x42\x08\n\x06_stampB\x05\n\x03_idB\x07\n\x05_taskB\x08\n\x06_stateB\x0e\n\x0c_cycle_pointB\x08\n\x06_depthB\x0e\n\x0c_job_submitsB\x11\n\x0f_latest_messageB\n\n\x08_outputsB\x0f\n\r_first_parentB\x07\n\x05_nameB\n\n\x08_is_heldB\r\n\x0b_flow_labelB\t\n\x07_extras\"\x9a\x02\n\x08PbFamily\x12\x12\n\x05stamp\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\x04meta\x18\x04 \x01(\x0b\x32\x07.PbMetaH\x03\x88\x01\x01\x12\x12\n\x05\x64\x65pth\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12\x0f\n\x07proxies\x18\x06 \x03(\t\x12\x0f\n\x07parents\x18\x07 \x03(\t\x12\x13\n\x0b\x63hild_tasks\x18\x08 \x03(\t\x12\x16\n\x0e\x63hild_families\x18\t \x03(\t\x12\x19\n\x0c\x66irst_parent\x18\n \x01(\tH\x05\x88\x01\x01\x42\x08\n\x06_stampB\x05\n\x03_idB\x07\n\x05_nameB\x07\n\x05_metaB\x08\n\x06_depthB\x0f\n\r_first_parent\"\x9e\x04\n\rPbFamilyProxy\x12\x12\n\x05stamp\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x63ycle_point\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06\x66\x61mily\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x12\n\x05state\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x12\n\x05\x64\x65pth\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12\x19\n\x0c\x66irst_parent\x18\x08 \x01(\tH\x07\x88\x01\x01\x12\x13\n\x0b\x63hild_tasks\x18\n \x03(\t\x12\x16\n\x0e\x63hild_families\x18\x0b \x03(\t\x12\x14\n\x07is_held\x18\x0c \x01(\x08H\x08\x88\x01\x01\x12\x11\n\tancestors\x18\r \x03(\t\x12\x0e\n\x06states\x18\x0e \x03(\t\x12\x35\n\x0cstate_totals\x18\x0f \x03(\x0b\x32\x1f.PbFamilyProxy.StateTotalsEntry\x12\x1a\n\ris_held_total\x18\x10 \x01(\x05H\t\x88\x01\x01\x1a\x32\n\x10StateTotalsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x42\x08\n\x06_stampB\x05\n\x03_idB\x0e\n\x0c_cycle_pointB\x07\n\x05_nameB\t\n\x07_familyB\x08\n\x06_stateB\x08\n\x06_depthB\x0f\n\r_first_parentB\n\n\x08_is_heldB\x10\n\x0e_is_held_total\"\xbc\x01\n\x06PbEdge\x12\x12\n\x05stamp\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06source\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06target\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07suicide\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x11\n\x04\x63ond\x18\x06 \x01(\x08H\x05\x88\x01\x01\x42\x08\n\x06_stampB\x05\n\x03_idB\t\n\x07_sourceB\t\n\x07_targetB\n\n\x08_suicideB\x07\n\x05_cond\"{\n\x07PbEdges\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05\x65\x64ges\x18\x02 \x03(\t\x12+\n\x16workflow_polling_tasks\x18\x03 \x03(\x0b\x32\x0b.PbPollTask\x12\x0e\n\x06leaves\x18\x04 \x03(\t\x12\x0c\n\x04\x66\x65\x65t\x18\x05 \x03(\tB\x05\n\x03_id\"\xf2\x01\n\x10PbEntireWorkflow\x12\"\n\x08workflow\x18\x01 \x01(\x0b\x32\x0b.PbWorkflowH\x00\x88\x01\x01\x12\x16\n\x05tasks\x18\x02 \x03(\x0b\x32\x07.PbTask\x12\"\n\x0ctask_proxies\x18\x03 \x03(\x0b\x32\x0c.PbTaskProxy\x12\x14\n\x04jobs\x18\x04 \x03(\x0b\x32\x06.PbJob\x12\x1b\n\x08\x66\x61milies\x18\x05 \x03(\x0b\x32\t.PbFamily\x12&\n\x0e\x66\x61mily_proxies\x18\x06 \x03(\x0b\x32\x0e.PbFamilyProxy\x12\x16\n\x05\x65\x64ges\x18\x07 \x03(\x0b\x32\x07.PbEdgeB\x0b\n\t_workflow\"\xaf\x01\n\x07\x45\x44\x65ltas\x12\x11\n\x04time\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x63hecksum\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x16\n\x05\x61\x64\x64\x65\x64\x18\x03 \x03(\x0b\x32\x07.PbEdge\x12\x18\n\x07updated\x18\x04 \x03(\x0b\x32\x07.PbEdge\x12\x0e\n\x06pruned\x18\x05 \x03(\t\x12\x15\n\x08reloaded\x18\x06 \x01(\x08H\x02\x88\x01\x01\x42\x07\n\x05_timeB\x0b\n\t_checksumB\x0b\n\t_reloaded\"\xb3\x01\n\x07\x46\x44\x65ltas\x12\x11\n\x04time\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x63hecksum\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x18\n\x05\x61\x64\x64\x65\x64\x18\x03 \x03(\x0b\x32\t.PbFamily\x12\x1a\n\x07updated\x18\x04 \x03(\x0b\x32\t.PbFamily\x12\x0e\n\x06pruned\x18\x05 \x03(\t\x12\x15\n\x08reloaded\x18\x06 \x01(\x08H\x02\x88\x01\x01\x42\x07\n\x05_timeB\x0b\n\t_checksumB\x0b\n\t_reloaded\"\xbe\x01\n\x08\x46PDeltas\x12\x11\n\x04time\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x63hecksum\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x1d\n\x05\x61\x64\x64\x65\x64\x18\x03 \x03(\x0b\x32\x0e.PbFamilyProxy\x12\x1f\n\x07updated\x18\x04 \x03(\x0b\x32\x0e.PbFamilyProxy\x12\x0e\n\x06pruned\x18\x05 \x03(\t\x12\x15\n\x08reloaded\x18\x06 \x01(\x08H\x02\x88\x01\x01\x42\x07\n\x05_timeB\x0b\n\t_checksumB\x0b\n\t_reloaded\"\xad\x01\n\x07JDeltas\x12\x11\n\x04time\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x63hecksum\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x15\n\x05\x61\x64\x64\x65\x64\x18\x03 \x03(\x0b\x32\x06.PbJob\x12\x17\n\x07updated\x18\x04 \x03(\x0b\x32\x06.PbJob\x12\x0e\n\x06pruned\x18\x05 \x03(\t\x12\x15\n\x08reloaded\x18\x06 \x01(\x08H\x02\x88\x01\x01\x42\x07\n\x05_timeB\x0b\n\t_checksumB\x0b\n\t_reloaded\"\xaf\x01\n\x07TDeltas\x12\x11\n\x04time\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x63hecksum\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x16\n\x05\x61\x64\x64\x65\x64\x18\x03 \x03(\x0b\x32\x07.PbTask\x12\x18\n\x07updated\x18\x04 \x03(\x0b\x32\x07.PbTask\x12\x0e\n\x06pruned\x18\x05 \x03(\t\x12\x15\n\x08reloaded\x18\x06 \x01(\x08H\x02\x88\x01\x01\x42\x07\n\x05_timeB\x0b\n\t_checksumB\x0b\n\t_reloaded\"\xba\x01\n\x08TPDeltas\x12\x11\n\x04time\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x63hecksum\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x1b\n\x05\x61\x64\x64\x65\x64\x18\x03 \x03(\x0b\x32\x0c.PbTaskProxy\x12\x1d\n\x07updated\x18\x04 \x03(\x0b\x32\x0c.PbTaskProxy\x12\x0e\n\x06pruned\x18\x05 \x03(\t\x12\x15\n\x08reloaded\x18\x06 \x01(\x08H\x02\x88\x01\x01\x42\x07\n\x05_timeB\x0b\n\t_checksumB\x0b\n\t_reloaded\"\xa3\x01\n\x07WDeltas\x12\x11\n\x04time\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x1f\n\x05\x61\x64\x64\x65\x64\x18\x02 \x01(\x0b\x32\x0b.PbWorkflowH\x01\x88\x01\x01\x12!\n\x07updated\x18\x03 \x01(\x0b\x32\x0b.PbWorkflowH\x02\x88\x01\x01\x12\x15\n\x08reloaded\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x07\n\x05_timeB\x08\n\x06_addedB\n\n\x08_updatedB\x0b\n\t_reloaded\"\xd1\x01\n\tAllDeltas\x12\x1a\n\x08\x66\x61milies\x18\x01 \x01(\x0b\x32\x08.FDeltas\x12!\n\x0e\x66\x61mily_proxies\x18\x02 \x01(\x0b\x32\t.FPDeltas\x12\x16\n\x04jobs\x18\x03 \x01(\x0b\x32\x08.JDeltas\x12\x17\n\x05tasks\x18\x04 \x01(\x0b\x32\x08.TDeltas\x12\x1f\n\x0ctask_proxies\x18\x05 \x01(\x0b\x32\t.TPDeltas\x12\x17\n\x05\x65\x64ges\x18\x06 \x01(\x0b\x32\x08.EDeltas\x12\x1a\n\x08workflow\x18\x07 \x01(\x0b\x32\x08.WDeltasb\x06proto3' + serialized_pb=b'\n\x13\x64\x61ta_messages.proto\"\x96\x01\n\x06PbMeta\x12\x12\n\x05title\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03URL\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cuser_defined\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x08\n\x06_titleB\x0e\n\x0c_descriptionB\x06\n\x04_URLB\x0f\n\r_user_defined\"\xaa\x01\n\nPbTimeZone\x12\x12\n\x05hours\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x07minutes\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\x0cstring_basic\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1c\n\x0fstring_extended\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x08\n\x06_hoursB\n\n\x08_minutesB\x0f\n\r_string_basicB\x12\n\x10_string_extended\"\x8e\n\n\nPbWorkflow\x12\x12\n\x05stamp\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06status\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x11\n\x04host\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x11\n\x04port\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12\x12\n\x05owner\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\r\n\x05tasks\x18\x08 \x03(\t\x12\x10\n\x08\x66\x61milies\x18\t \x03(\t\x12\x1c\n\x05\x65\x64ges\x18\n \x01(\x0b\x32\x08.PbEdgesH\x07\x88\x01\x01\x12\x18\n\x0b\x61pi_version\x18\x0b \x01(\x05H\x08\x88\x01\x01\x12\x19\n\x0c\x63ylc_version\x18\x0c \x01(\tH\t\x88\x01\x01\x12\x19\n\x0clast_updated\x18\r \x01(\x01H\n\x88\x01\x01\x12\x1a\n\x04meta\x18\x0e \x01(\x0b\x32\x07.PbMetaH\x0b\x88\x01\x01\x12(\n\x1bnewest_runahead_cycle_point\x18\x0f \x01(\tH\x0c\x88\x01\x01\x12\x1f\n\x12newest_cycle_point\x18\x10 \x01(\tH\r\x88\x01\x01\x12\x1f\n\x12oldest_cycle_point\x18\x11 \x01(\tH\x0e\x88\x01\x01\x12\x15\n\x08reloaded\x18\x12 \x01(\x08H\x0f\x88\x01\x01\x12\x15\n\x08run_mode\x18\x13 \x01(\tH\x10\x88\x01\x01\x12\x19\n\x0c\x63ycling_mode\x18\x14 \x01(\tH\x11\x88\x01\x01\x12\x32\n\x0cstate_totals\x18\x15 \x03(\x0b\x32\x1c.PbWorkflow.StateTotalsEntry\x12\x1d\n\x10workflow_log_dir\x18\x16 \x01(\tH\x12\x88\x01\x01\x12(\n\x0etime_zone_info\x18\x17 \x01(\x0b\x32\x0b.PbTimeZoneH\x13\x88\x01\x01\x12\x17\n\ntree_depth\x18\x18 \x01(\x05H\x14\x88\x01\x01\x12\x15\n\rjob_log_names\x18\x19 \x03(\t\x12\x14\n\x0cns_def_order\x18\x1a \x03(\t\x12\x0e\n\x06states\x18\x1b \x03(\t\x12\x14\n\x0ctask_proxies\x18\x1c \x03(\t\x12\x16\n\x0e\x66\x61mily_proxies\x18\x1d \x03(\t\x12\x17\n\nstatus_msg\x18\x1e \x01(\tH\x15\x88\x01\x01\x12\x1a\n\ris_held_total\x18\x1f \x01(\x05H\x16\x88\x01\x01\x12\x0c\n\x04jobs\x18 \x03(\t\x12\x15\n\x08pub_port\x18! \x01(\x05H\x17\x88\x01\x01\x12\x17\n\nbroadcasts\x18\" \x01(\tH\x18\x88\x01\x01\x1a\x32\n\x10StateTotalsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x42\x08\n\x06_stampB\x05\n\x03_idB\x07\n\x05_nameB\t\n\x07_statusB\x07\n\x05_hostB\x07\n\x05_portB\x08\n\x06_ownerB\x08\n\x06_edgesB\x0e\n\x0c_api_versionB\x0f\n\r_cylc_versionB\x0f\n\r_last_updatedB\x07\n\x05_metaB\x1e\n\x1c_newest_runahead_cycle_pointB\x15\n\x13_newest_cycle_pointB\x15\n\x13_oldest_cycle_pointB\x0b\n\t_reloadedB\x0b\n\t_run_modeB\x0f\n\r_cycling_modeB\x13\n\x11_workflow_log_dirB\x11\n\x0f_time_zone_infoB\r\n\x0b_tree_depthB\r\n\x0b_status_msgB\x10\n\x0e_is_held_totalB\x0b\n\t_pub_portB\r\n\x0b_broadcasts\"\xfd\x08\n\x05PbJob\x12\x12\n\x05stamp\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\nsubmit_num\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x12\n\x05state\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x17\n\ntask_proxy\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1b\n\x0esubmitted_time\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x19\n\x0cstarted_time\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\x1a\n\rfinished_time\x18\x08 \x01(\tH\x07\x88\x01\x01\x12\x1d\n\x10\x62\x61tch_sys_job_id\x18\t \x01(\tH\x08\x88\x01\x01\x12\x1b\n\x0e\x62\x61tch_sys_name\x18\n \x01(\tH\t\x88\x01\x01\x12\x17\n\nenv_script\x18\x0b \x01(\tH\n\x88\x01\x01\x12\x17\n\nerr_script\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x18\n\x0b\x65xit_script\x18\r \x01(\tH\x0c\x88\x01\x01\x12!\n\x14\x65xecution_time_limit\x18\x0e \x01(\x02H\r\x88\x01\x01\x12\x11\n\x04host\x18\x0f \x01(\tH\x0e\x88\x01\x01\x12\x18\n\x0binit_script\x18\x10 \x01(\tH\x0f\x88\x01\x01\x12\x18\n\x0bjob_log_dir\x18\x11 \x01(\tH\x10\x88\x01\x01\x12\x12\n\x05owner\x18\x12 \x01(\tH\x11\x88\x01\x01\x12\x18\n\x0bpost_script\x18\x13 \x01(\tH\x12\x88\x01\x01\x12\x17\n\npre_script\x18\x14 \x01(\tH\x13\x88\x01\x01\x12\x13\n\x06script\x18\x15 \x01(\tH\x14\x88\x01\x01\x12\x12\n\x05shell\x18\x16 \x01(\tH\x15\x88\x01\x01\x12\x19\n\x0cwork_sub_dir\x18\x17 \x01(\tH\x16\x88\x01\x01\x12\x18\n\x0b\x65nvironment\x18\x19 \x01(\tH\x17\x88\x01\x01\x12\x17\n\ndirectives\x18\x1a \x01(\tH\x18\x88\x01\x01\x12\x16\n\tparam_var\x18\x1c \x01(\tH\x19\x88\x01\x01\x12\x12\n\nextra_logs\x18\x1d \x03(\t\x12\x11\n\x04name\x18\x1e \x01(\tH\x1a\x88\x01\x01\x12\x18\n\x0b\x63ycle_point\x18\x1f \x01(\tH\x1b\x88\x01\x01\x12\x10\n\x08messages\x18 \x03(\tB\x08\n\x06_stampB\x05\n\x03_idB\r\n\x0b_submit_numB\x08\n\x06_stateB\r\n\x0b_task_proxyB\x11\n\x0f_submitted_timeB\x0f\n\r_started_timeB\x10\n\x0e_finished_timeB\x13\n\x11_batch_sys_job_idB\x11\n\x0f_batch_sys_nameB\r\n\x0b_env_scriptB\r\n\x0b_err_scriptB\x0e\n\x0c_exit_scriptB\x17\n\x15_execution_time_limitB\x07\n\x05_hostB\x0e\n\x0c_init_scriptB\x0e\n\x0c_job_log_dirB\x08\n\x06_ownerB\x0e\n\x0c_post_scriptB\r\n\x0b_pre_scriptB\t\n\x07_scriptB\x08\n\x06_shellB\x0f\n\r_work_sub_dirB\x0e\n\x0c_environmentB\r\n\x0b_directivesB\x0c\n\n_param_varB\x07\n\x05_nameB\x0e\n\x0c_cycle_point\"\xb4\x02\n\x06PbTask\x12\x12\n\x05stamp\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\x04meta\x18\x04 \x01(\x0b\x32\x07.PbMetaH\x03\x88\x01\x01\x12\x1e\n\x11mean_elapsed_time\x18\x05 \x01(\x02H\x04\x88\x01\x01\x12\x12\n\x05\x64\x65pth\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12\x0f\n\x07proxies\x18\x07 \x03(\t\x12\x11\n\tnamespace\x18\x08 \x03(\t\x12\x0f\n\x07parents\x18\t \x03(\t\x12\x19\n\x0c\x66irst_parent\x18\n \x01(\tH\x06\x88\x01\x01\x42\x08\n\x06_stampB\x05\n\x03_idB\x07\n\x05_nameB\x07\n\x05_metaB\x14\n\x12_mean_elapsed_timeB\x08\n\x06_depthB\x0f\n\r_first_parent\"\xd8\x01\n\nPbPollTask\x12\x18\n\x0blocal_proxy\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08workflow\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0cremote_proxy\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x16\n\treq_state\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x19\n\x0cgraph_string\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\x0e\n\x0c_local_proxyB\x0b\n\t_workflowB\x0f\n\r_remote_proxyB\x0c\n\n_req_stateB\x0f\n\r_graph_string\"\xcb\x01\n\x0bPbCondition\x12\x17\n\ntask_proxy\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nexpr_alias\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\treq_state\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x16\n\tsatisfied\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x14\n\x07message\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\r\n\x0b_task_proxyB\r\n\x0b_expr_aliasB\x0c\n\n_req_stateB\x0c\n\n_satisfiedB\n\n\x08_message\"\x96\x01\n\x0ePbPrerequisite\x12\x17\n\nexpression\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\nconditions\x18\x02 \x03(\x0b\x32\x0c.PbCondition\x12\x14\n\x0c\x63ycle_points\x18\x03 \x03(\t\x12\x16\n\tsatisfied\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\r\n\x0b_expressionB\x0c\n\n_satisfied\"\xde\x04\n\x0bPbTaskProxy\x12\x12\n\x05stamp\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04task\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x12\n\x05state\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x18\n\x0b\x63ycle_point\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x12\n\x05\x64\x65pth\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12\x18\n\x0bjob_submits\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12\x1b\n\x0elatest_message\x18\x08 \x01(\tH\x07\x88\x01\x01\x12\x14\n\x07outputs\x18\t \x01(\tH\x08\x88\x01\x01\x12\x11\n\tnamespace\x18\x0b \x03(\t\x12&\n\rprerequisites\x18\x0c \x03(\x0b\x32\x0f.PbPrerequisite\x12\x0c\n\x04jobs\x18\r \x03(\t\x12\x19\n\x0c\x66irst_parent\x18\x0f \x01(\tH\t\x88\x01\x01\x12\x11\n\x04name\x18\x10 \x01(\tH\n\x88\x01\x01\x12\x14\n\x07is_held\x18\x11 \x01(\x08H\x0b\x88\x01\x01\x12\r\n\x05\x65\x64ges\x18\x12 \x03(\t\x12\x11\n\tancestors\x18\x13 \x03(\t\x12\x17\n\nflow_label\x18\x14 \x01(\tH\x0c\x88\x01\x01\x12\x13\n\x06\x65xtras\x18\x15 \x01(\tH\r\x88\x01\x01\x42\x08\n\x06_stampB\x05\n\x03_idB\x07\n\x05_taskB\x08\n\x06_stateB\x0e\n\x0c_cycle_pointB\x08\n\x06_depthB\x0e\n\x0c_job_submitsB\x11\n\x0f_latest_messageB\n\n\x08_outputsB\x0f\n\r_first_parentB\x07\n\x05_nameB\n\n\x08_is_heldB\r\n\x0b_flow_labelB\t\n\x07_extras\"\x9a\x02\n\x08PbFamily\x12\x12\n\x05stamp\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\x04meta\x18\x04 \x01(\x0b\x32\x07.PbMetaH\x03\x88\x01\x01\x12\x12\n\x05\x64\x65pth\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12\x0f\n\x07proxies\x18\x06 \x03(\t\x12\x0f\n\x07parents\x18\x07 \x03(\t\x12\x13\n\x0b\x63hild_tasks\x18\x08 \x03(\t\x12\x16\n\x0e\x63hild_families\x18\t \x03(\t\x12\x19\n\x0c\x66irst_parent\x18\n \x01(\tH\x05\x88\x01\x01\x42\x08\n\x06_stampB\x05\n\x03_idB\x07\n\x05_nameB\x07\n\x05_metaB\x08\n\x06_depthB\x0f\n\r_first_parent\"\x9e\x04\n\rPbFamilyProxy\x12\x12\n\x05stamp\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x63ycle_point\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06\x66\x61mily\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x12\n\x05state\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x12\n\x05\x64\x65pth\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12\x19\n\x0c\x66irst_parent\x18\x08 \x01(\tH\x07\x88\x01\x01\x12\x13\n\x0b\x63hild_tasks\x18\n \x03(\t\x12\x16\n\x0e\x63hild_families\x18\x0b \x03(\t\x12\x14\n\x07is_held\x18\x0c \x01(\x08H\x08\x88\x01\x01\x12\x11\n\tancestors\x18\r \x03(\t\x12\x0e\n\x06states\x18\x0e \x03(\t\x12\x35\n\x0cstate_totals\x18\x0f \x03(\x0b\x32\x1f.PbFamilyProxy.StateTotalsEntry\x12\x1a\n\ris_held_total\x18\x10 \x01(\x05H\t\x88\x01\x01\x1a\x32\n\x10StateTotalsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x42\x08\n\x06_stampB\x05\n\x03_idB\x0e\n\x0c_cycle_pointB\x07\n\x05_nameB\t\n\x07_familyB\x08\n\x06_stateB\x08\n\x06_depthB\x0f\n\r_first_parentB\n\n\x08_is_heldB\x10\n\x0e_is_held_total\"\xbc\x01\n\x06PbEdge\x12\x12\n\x05stamp\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06source\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06target\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x14\n\x07suicide\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x11\n\x04\x63ond\x18\x06 \x01(\x08H\x05\x88\x01\x01\x42\x08\n\x06_stampB\x05\n\x03_idB\t\n\x07_sourceB\t\n\x07_targetB\n\n\x08_suicideB\x07\n\x05_cond\"{\n\x07PbEdges\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05\x65\x64ges\x18\x02 \x03(\t\x12+\n\x16workflow_polling_tasks\x18\x03 \x03(\x0b\x32\x0b.PbPollTask\x12\x0e\n\x06leaves\x18\x04 \x03(\t\x12\x0c\n\x04\x66\x65\x65t\x18\x05 \x03(\tB\x05\n\x03_id\"\xf2\x01\n\x10PbEntireWorkflow\x12\"\n\x08workflow\x18\x01 \x01(\x0b\x32\x0b.PbWorkflowH\x00\x88\x01\x01\x12\x16\n\x05tasks\x18\x02 \x03(\x0b\x32\x07.PbTask\x12\"\n\x0ctask_proxies\x18\x03 \x03(\x0b\x32\x0c.PbTaskProxy\x12\x14\n\x04jobs\x18\x04 \x03(\x0b\x32\x06.PbJob\x12\x1b\n\x08\x66\x61milies\x18\x05 \x03(\x0b\x32\t.PbFamily\x12&\n\x0e\x66\x61mily_proxies\x18\x06 \x03(\x0b\x32\x0e.PbFamilyProxy\x12\x16\n\x05\x65\x64ges\x18\x07 \x03(\x0b\x32\x07.PbEdgeB\x0b\n\t_workflow\"\xaf\x01\n\x07\x45\x44\x65ltas\x12\x11\n\x04time\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x63hecksum\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x16\n\x05\x61\x64\x64\x65\x64\x18\x03 \x03(\x0b\x32\x07.PbEdge\x12\x18\n\x07updated\x18\x04 \x03(\x0b\x32\x07.PbEdge\x12\x0e\n\x06pruned\x18\x05 \x03(\t\x12\x15\n\x08reloaded\x18\x06 \x01(\x08H\x02\x88\x01\x01\x42\x07\n\x05_timeB\x0b\n\t_checksumB\x0b\n\t_reloaded\"\xb3\x01\n\x07\x46\x44\x65ltas\x12\x11\n\x04time\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x63hecksum\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x18\n\x05\x61\x64\x64\x65\x64\x18\x03 \x03(\x0b\x32\t.PbFamily\x12\x1a\n\x07updated\x18\x04 \x03(\x0b\x32\t.PbFamily\x12\x0e\n\x06pruned\x18\x05 \x03(\t\x12\x15\n\x08reloaded\x18\x06 \x01(\x08H\x02\x88\x01\x01\x42\x07\n\x05_timeB\x0b\n\t_checksumB\x0b\n\t_reloaded\"\xbe\x01\n\x08\x46PDeltas\x12\x11\n\x04time\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x63hecksum\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x1d\n\x05\x61\x64\x64\x65\x64\x18\x03 \x03(\x0b\x32\x0e.PbFamilyProxy\x12\x1f\n\x07updated\x18\x04 \x03(\x0b\x32\x0e.PbFamilyProxy\x12\x0e\n\x06pruned\x18\x05 \x03(\t\x12\x15\n\x08reloaded\x18\x06 \x01(\x08H\x02\x88\x01\x01\x42\x07\n\x05_timeB\x0b\n\t_checksumB\x0b\n\t_reloaded\"\xad\x01\n\x07JDeltas\x12\x11\n\x04time\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x63hecksum\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x15\n\x05\x61\x64\x64\x65\x64\x18\x03 \x03(\x0b\x32\x06.PbJob\x12\x17\n\x07updated\x18\x04 \x03(\x0b\x32\x06.PbJob\x12\x0e\n\x06pruned\x18\x05 \x03(\t\x12\x15\n\x08reloaded\x18\x06 \x01(\x08H\x02\x88\x01\x01\x42\x07\n\x05_timeB\x0b\n\t_checksumB\x0b\n\t_reloaded\"\xaf\x01\n\x07TDeltas\x12\x11\n\x04time\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x63hecksum\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x16\n\x05\x61\x64\x64\x65\x64\x18\x03 \x03(\x0b\x32\x07.PbTask\x12\x18\n\x07updated\x18\x04 \x03(\x0b\x32\x07.PbTask\x12\x0e\n\x06pruned\x18\x05 \x03(\t\x12\x15\n\x08reloaded\x18\x06 \x01(\x08H\x02\x88\x01\x01\x42\x07\n\x05_timeB\x0b\n\t_checksumB\x0b\n\t_reloaded\"\xba\x01\n\x08TPDeltas\x12\x11\n\x04time\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x63hecksum\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x1b\n\x05\x61\x64\x64\x65\x64\x18\x03 \x03(\x0b\x32\x0c.PbTaskProxy\x12\x1d\n\x07updated\x18\x04 \x03(\x0b\x32\x0c.PbTaskProxy\x12\x0e\n\x06pruned\x18\x05 \x03(\t\x12\x15\n\x08reloaded\x18\x06 \x01(\x08H\x02\x88\x01\x01\x42\x07\n\x05_timeB\x0b\n\t_checksumB\x0b\n\t_reloaded\"\xa3\x01\n\x07WDeltas\x12\x11\n\x04time\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x1f\n\x05\x61\x64\x64\x65\x64\x18\x02 \x01(\x0b\x32\x0b.PbWorkflowH\x01\x88\x01\x01\x12!\n\x07updated\x18\x03 \x01(\x0b\x32\x0b.PbWorkflowH\x02\x88\x01\x01\x12\x15\n\x08reloaded\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x07\n\x05_timeB\x08\n\x06_addedB\n\n\x08_updatedB\x0b\n\t_reloaded\"\xd1\x01\n\tAllDeltas\x12\x1a\n\x08\x66\x61milies\x18\x01 \x01(\x0b\x32\x08.FDeltas\x12!\n\x0e\x66\x61mily_proxies\x18\x02 \x01(\x0b\x32\t.FPDeltas\x12\x16\n\x04jobs\x18\x03 \x01(\x0b\x32\x08.JDeltas\x12\x17\n\x05tasks\x18\x04 \x01(\x0b\x32\x08.TDeltas\x12\x1f\n\x0ctask_proxies\x18\x05 \x01(\x0b\x32\t.TPDeltas\x12\x17\n\x05\x65\x64ges\x18\x06 \x01(\x0b\x32\x08.EDeltas\x12\x1a\n\x08workflow\x18\x07 \x01(\x0b\x32\x08.WDeltasb\x06proto3' ) @@ -767,56 +767,49 @@ is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='batch_sys_conf', full_name='PbJob.batch_sys_conf', index=23, - number=24, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='environment', full_name='PbJob.environment', index=24, + name='environment', full_name='PbJob.environment', index=23, number=25, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='directives', full_name='PbJob.directives', index=25, + name='directives', full_name='PbJob.directives', index=24, number=26, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='param_var', full_name='PbJob.param_var', index=26, + name='param_var', full_name='PbJob.param_var', index=25, number=28, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='extra_logs', full_name='PbJob.extra_logs', index=27, + name='extra_logs', full_name='PbJob.extra_logs', index=26, number=29, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='name', full_name='PbJob.name', index=28, + name='name', full_name='PbJob.name', index=27, number=30, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='cycle_point', full_name='PbJob.cycle_point', index=29, + name='cycle_point', full_name='PbJob.cycle_point', index=28, number=31, type=9, cpp_type=9, label=1, has_default_value=False, default_value=b"".decode('utf-8'), message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='messages', full_name='PbJob.messages', index=30, + name='messages', full_name='PbJob.messages', index=29, number=32, type=9, cpp_type=9, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, @@ -948,39 +941,34 @@ index=22, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), - _descriptor.OneofDescriptor( - name='_batch_sys_conf', full_name='PbJob._batch_sys_conf', - index=23, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), _descriptor.OneofDescriptor( name='_environment', full_name='PbJob._environment', - index=24, containing_type=None, + index=23, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), _descriptor.OneofDescriptor( name='_directives', full_name='PbJob._directives', - index=25, containing_type=None, + index=24, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), _descriptor.OneofDescriptor( name='_param_var', full_name='PbJob._param_var', - index=26, containing_type=None, + index=25, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), _descriptor.OneofDescriptor( name='_name', full_name='PbJob._name', - index=27, containing_type=None, + index=26, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), _descriptor.OneofDescriptor( name='_cycle_point', full_name='PbJob._cycle_point', - index=28, containing_type=None, + index=27, containing_type=None, create_key=_descriptor._internal_create_key, fields=[]), ], serialized_start=1647, - serialized_end=2844, + serialized_end=2796, ) @@ -1109,8 +1097,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=2847, - serialized_end=3155, + serialized_start=2799, + serialized_end=3107, ) @@ -1194,8 +1182,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=3158, - serialized_end=3374, + serialized_start=3110, + serialized_end=3326, ) @@ -1279,8 +1267,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=3377, - serialized_end=3580, + serialized_start=3329, + serialized_end=3532, ) @@ -1342,8 +1330,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=3583, - serialized_end=3733, + serialized_start=3535, + serialized_end=3685, ) @@ -1570,8 +1558,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=3736, - serialized_end=4342, + serialized_start=3688, + serialized_end=4294, ) @@ -1695,8 +1683,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=4345, - serialized_end=4627, + serialized_start=4297, + serialized_end=4579, ) @@ -1913,8 +1901,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=4630, - serialized_end=5172, + serialized_start=4582, + serialized_end=5124, ) @@ -2010,8 +1998,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=5175, - serialized_end=5363, + serialized_start=5127, + serialized_end=5315, ) @@ -2075,8 +2063,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=5365, - serialized_end=5488, + serialized_start=5317, + serialized_end=5440, ) @@ -2154,8 +2142,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=5491, - serialized_end=5733, + serialized_start=5443, + serialized_end=5685, ) @@ -2236,8 +2224,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=5736, - serialized_end=5911, + serialized_start=5688, + serialized_end=5863, ) @@ -2318,8 +2306,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=5914, - serialized_end=6093, + serialized_start=5866, + serialized_end=6045, ) @@ -2400,8 +2388,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=6096, - serialized_end=6286, + serialized_start=6048, + serialized_end=6238, ) @@ -2482,8 +2470,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=6289, - serialized_end=6462, + serialized_start=6241, + serialized_end=6414, ) @@ -2564,8 +2552,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=6465, - serialized_end=6640, + serialized_start=6417, + serialized_end=6592, ) @@ -2646,8 +2634,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=6643, - serialized_end=6829, + serialized_start=6595, + serialized_end=6781, ) @@ -2719,8 +2707,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=6832, - serialized_end=6995, + serialized_start=6784, + serialized_end=6947, ) @@ -2793,8 +2781,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6998, - serialized_end=7207, + serialized_start=6950, + serialized_end=7159, ) _PBMETA.oneofs_by_name['_title'].fields.append( @@ -2970,9 +2958,6 @@ _PBJOB.oneofs_by_name['_work_sub_dir'].fields.append( _PBJOB.fields_by_name['work_sub_dir']) _PBJOB.fields_by_name['work_sub_dir'].containing_oneof = _PBJOB.oneofs_by_name['_work_sub_dir'] -_PBJOB.oneofs_by_name['_batch_sys_conf'].fields.append( - _PBJOB.fields_by_name['batch_sys_conf']) -_PBJOB.fields_by_name['batch_sys_conf'].containing_oneof = _PBJOB.oneofs_by_name['_batch_sys_conf'] _PBJOB.oneofs_by_name['_environment'].fields.append( _PBJOB.fields_by_name['environment']) _PBJOB.fields_by_name['environment'].containing_oneof = _PBJOB.oneofs_by_name['_environment'] diff --git a/cylc/flow/job_pool.py b/cylc/flow/job_pool.py index ee4736f1f55..c9269e53532 100644 --- a/cylc/flow/job_pool.py +++ b/cylc/flow/job_pool.py @@ -98,7 +98,6 @@ def insert_job(self, job_conf): work_sub_dir=job_conf['work_d'], name=name, cycle_point=point_string, - batch_sys_conf=json.dumps(job_conf['batch_system_conf']), directives=json.dumps(job_conf['directives']), environment=json.dumps(job_conf['environment']), param_var=json.dumps(job_conf['param_var']) diff --git a/cylc/flow/network/schema.py b/cylc/flow/network/schema.py index c70da5e2a69..e7e830efb1f 100644 --- a/cylc/flow/network/schema.py +++ b/cylc/flow/network/schema.py @@ -712,7 +712,6 @@ class Meta: pre_script = String() script = String() work_sub_dir = String() - batch_sys_conf = GenericScalar(resolver=resolve_json_dump) environment = GenericScalar(resolver=resolve_json_dump) directives = GenericScalar(resolver=resolve_json_dump) param_var = GenericScalar(resolver=resolve_json_dump) diff --git a/cylc/flow/task_events_mgr.py b/cylc/flow/task_events_mgr.py index b1389e02501..582f7799492 100644 --- a/cylc/flow/task_events_mgr.py +++ b/cylc/flow/task_events_mgr.py @@ -252,19 +252,27 @@ def check_job_time(self, itask, now): else: return can_poll - def get_host_conf(self, itask, key, default=None, skey="remote"): - """Return a host setting from suite then global configuration.""" + def _get_remote_conf(self, itask, key): + """Get deprecated "[remote]" items that default to platforms.""" overrides = self.broadcast_mgr.get_broadcast(itask.identity) - if skey in overrides and overrides[skey].get(key) is not None: - ret = overrides[skey][key] - elif itask.tdef.rtconfig[skey].get(key) not in (None, []): - ret = itask.tdef.rtconfig[skey][key] - else: - try: - ret = itask.platform[key] - except (KeyError, ItemNotFoundError): - ret = default - return ret + SKEY = 'remote' + if SKEY not in overrides: + overrides[SKEY] = {} + return ( + overrides[SKEY].get(key) or + itask.tdef.rtconfig[SKEY][key] or + itask.platform[key] + ) + + def _get_suite_platforms_conf(self, itask, key, default): + """Return top level [runtime] items that default to platforms.""" + overrides = self.broadcast_mgr.get_broadcast(itask.identity) + return ( + overrides.get(key) or + itask.tdef.rtconfig[key] or + itask.platform[key] or + default + ) def process_events(self, schd_ctx): """Process task events that were created by "setup_event_handlers". @@ -1001,10 +1009,10 @@ def _setup_job_logs_retrieval(self, itask, event): host = get_host_from_platform(itask.platform) if (event not in events or not is_remote_host(host) or - not self.get_host_conf(itask, "retrieve job logs") or + not self._get_remote_conf(itask, "retrieve job logs") or id_key in self._event_timers): return - retry_delays = self.get_host_conf( + retry_delays = self._get_remote_conf( itask, "retrieve job logs retry delays") if not retry_delays: retry_delays = [0] @@ -1015,7 +1023,7 @@ def _setup_job_logs_retrieval(self, itask, event): self.HANDLER_JOB_LOGS_RETRIEVE, # key self.HANDLER_JOB_LOGS_RETRIEVE, # ctx_type itask.platform['name'], - self.get_host_conf(itask, "retrieve job logs max size"), + self._get_remote_conf(itask, "retrieve job logs max size"), ), retry_delays ) @@ -1163,9 +1171,9 @@ def _reset_job_timers(self, itask): timeref = itask.summary['started_time'] timeout_key = 'execution timeout' timeout = self._get_events_conf(itask, timeout_key) - delays = list(self.get_host_conf( - itask, 'execution polling intervals', skey='job', - default=[900])) # Default 15 minute intervals + delays = list(self._get_suite_platforms_conf( + itask, 'execution polling intervals', + default=[900])) # default 15 minute intervals if itask.summary[self.KEY_EXECUTE_TIME_LIMIT]: time_limit = itask.summary[self.KEY_EXECUTE_TIME_LIMIT] time_limit_delays = itask.platform.get( @@ -1186,9 +1194,9 @@ def _reset_job_timers(self, itask): timeref = itask.summary['submitted_time'] timeout_key = 'submission timeout' timeout = self._get_events_conf(itask, timeout_key) - delays = list(self.get_host_conf( - itask, 'submission polling intervals', skey='job', - default=[900])) # Default 15 minute intervals + delays = list(self._get_suite_platforms_conf( + itask, 'submission polling intervals', + default=[900])) try: itask.timeout = timeref + float(timeout) timeout_str = intvl_as_str(timeout) diff --git a/cylc/flow/task_job_mgr.py b/cylc/flow/task_job_mgr.py index 17e60bde490..0d708c04ac2 100644 --- a/cylc/flow/task_job_mgr.py +++ b/cylc/flow/task_job_mgr.py @@ -1002,11 +1002,6 @@ def _prep_submit_task_job_impl(self, suite, itask, rtconfig): itask.submit_num] = itask.platform['name'] itask.summary['batch_sys_name'] = itask.platform['batch system'] - try: - batch_sys_conf = self.task_events_mgr.get_host_conf( - itask, 'batch systems')[itask.summary['batch_sys_name']] - except (TypeError, KeyError): - batch_sys_conf = {} try: itask.summary[self.KEY_EXECUTE_TIME_LIMIT] = float( rtconfig['execution time limit']) @@ -1026,7 +1021,6 @@ def _prep_submit_task_job_impl(self, suite, itask, rtconfig): 'batch_submit_command_template': ( itask.platform['batch submit command template'] ), - 'batch_system_conf': batch_sys_conf, 'dependencies': itask.state.get_resolved_dependencies(), 'directives': rtconfig['directives'], 'environment': rtconfig['environment'], diff --git a/tests/integration/test_job_pool.py b/tests/integration/test_job_pool.py index b7084562e19..7093534431f 100644 --- a/tests/integration/test_job_pool.py +++ b/tests/integration/test_job_pool.py @@ -38,7 +38,6 @@ def job_config(schd): 'pre-script': None, 'script': 'sleep 5; echo "I come in peace"', 'work_d': None, - 'batch_system_conf': {}, 'directives': {}, 'environment': {}, 'param_var': {}, diff --git a/tests/unit/batch_sys_handlers/test_loadleveler.py b/tests/unit/batch_sys_handlers/test_loadleveler.py index 1f33e21450e..2afe9e5d197 100644 --- a/tests/unit/batch_sys_handlers/test_loadleveler.py +++ b/tests/unit/batch_sys_handlers/test_loadleveler.py @@ -25,7 +25,6 @@ [ ( # basic { - 'batch_system_conf': {}, 'directives': {}, 'execution_time_limit': 180, 'job_file_path': '$HOME/cylc-run/chop/log/job/1/axe/01/job', @@ -43,7 +42,6 @@ ( # some useful directives { - 'batch_system_conf': {}, 'directives': { '-q': 'forever', '-V': '', diff --git a/tests/unit/batch_sys_handlers/test_lsf.py b/tests/unit/batch_sys_handlers/test_lsf.py index e199460bc4a..8827affa735 100644 --- a/tests/unit/batch_sys_handlers/test_lsf.py +++ b/tests/unit/batch_sys_handlers/test_lsf.py @@ -24,7 +24,6 @@ [ ( # basic { - 'batch_system_conf': {}, 'directives': {}, 'execution_time_limit': 180, 'job_file_path': '$HOME/cylc-run/chop/log/job/1/axe/01/job', @@ -40,7 +39,6 @@ ), ( # some useful directives { - 'batch_system_conf': {}, 'directives': { '-q': 'forever', '-B': '', diff --git a/tests/unit/batch_sys_handlers/test_moab.py b/tests/unit/batch_sys_handlers/test_moab.py index ec4cf0ace8d..cc338a72e94 100644 --- a/tests/unit/batch_sys_handlers/test_moab.py +++ b/tests/unit/batch_sys_handlers/test_moab.py @@ -24,7 +24,6 @@ [ ( # basic { - 'batch_system_conf': {}, 'directives': {}, 'execution_time_limit': 180, 'job_file_path': '$HOME/cylc-run/chop/log/job/1/axe/01/job', @@ -40,7 +39,6 @@ ), ( # some useful directives { - 'batch_system_conf': {}, 'directives': { '-q': 'forever', '-V': '', diff --git a/tests/unit/batch_sys_handlers/test_pbs.py b/tests/unit/batch_sys_handlers/test_pbs.py index 49aea3a30a0..9f6b3caa542 100644 --- a/tests/unit/batch_sys_handlers/test_pbs.py +++ b/tests/unit/batch_sys_handlers/test_pbs.py @@ -24,7 +24,6 @@ [ ( # basic { - 'batch_system_conf': {}, 'directives': {}, 'execution_time_limit': 180, 'job_file_path': '$HOME/cylc-run/chop/log/job/1/axe/01/job', @@ -44,7 +43,6 @@ ), ( # super short job name length maximum { - 'batch_system_conf': {'job name length maximum': 6}, 'directives': {}, 'execution_time_limit': 180, 'job_file_path': '$HOME/cylc-run/chop/log/job/1/axe/01/job', @@ -64,7 +62,6 @@ ), ( # some useful directives { - 'batch_system_conf': {}, 'directives': { '-q': 'forever', '-V': '', diff --git a/tests/unit/batch_sys_handlers/test_slurm.py b/tests/unit/batch_sys_handlers/test_slurm.py index 204037c7af4..3f9df9f7a98 100644 --- a/tests/unit/batch_sys_handlers/test_slurm.py +++ b/tests/unit/batch_sys_handlers/test_slurm.py @@ -27,7 +27,6 @@ [ ( # basic { - 'batch_system_conf': {}, 'directives': {}, 'execution_time_limit': 180, 'job_file_path': '$HOME/cylc-run/chop/log/job/1/axe/01/job', @@ -49,7 +48,6 @@ ), ( # task name with % character { - 'batch_system_conf': {}, 'directives': {}, 'execution_time_limit': 180, 'job_file_path': ( @@ -73,7 +71,6 @@ ), ( # some useful directives { - 'batch_system_conf': {}, 'directives': { '-p': 'middle', '--no-requeue': '', diff --git a/tests/unit/test_task_events_mgr_2.py b/tests/unit/test_task_events_mgr_2.py new file mode 100644 index 00000000000..5ab8e1e68c0 --- /dev/null +++ b/tests/unit/test_task_events_mgr_2.py @@ -0,0 +1,105 @@ +# THIS FILE IS PART OF THE CYLC SUITE ENGINE. +# Copyright (C) NIWA & British Crown (Met Office) & Contributors. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from unittest.mock import Mock +import pytest + + +from cylc.flow.task_events_mgr import TaskEventsManager + + +@pytest.mark.parametrize( + "broadcast, remote, platforms, expected", + [ + ("hpc1", "a", "b", "hpc1"), + (None, "hpc1", "b", "hpc1"), + (None, None, "hpc1", "hpc1"), + (None, None, None, None), + ] +) +def test_get_remote_conf(broadcast, remote, platforms, expected): + """Test TaskEventsManager._get_remote_conf().""" + + task_events_mgr = TaskEventsManager( + None, None, None, None, None, None, None) + + task_events_mgr.broadcast_mgr = Mock( + get_broadcast=lambda x: { + "remote": { + "host": broadcast + } + } + ) + + itask = Mock( + identity='foo.1', + tdef=Mock( + rtconfig={ + 'remote': { + 'host': remote + } + } + ), + platform={ + 'host': platforms + } + ) + + assert task_events_mgr._get_remote_conf(itask, 'host') == expected + + +DEFAULT = [900] + + +@pytest.mark.parametrize( + "broadcast, suite, platforms, expected", + [ + ([800], [700], [600], [800]), + (None, [700], [600], [700]), + (None, None, [600], [600]), + (None, None, None, DEFAULT), + ] +) +def test_get_suite_platforms_conf(broadcast, suite, platforms, expected): + """Test TaskEventsManager._get_polling_interval_conf().""" + + task_events_mgr = TaskEventsManager( + None, None, None, None, None, None, None) + + KEY = "execution polling intervals" + + task_events_mgr.broadcast_mgr = Mock( + get_broadcast=lambda x: { + KEY: broadcast + } + ) + + itask = Mock( + identity='foo.1', + tdef=Mock( + rtconfig={ + KEY: suite + } + ), + platform={ + KEY: platforms + } + ) + + assert ( + task_events_mgr._get_suite_platforms_conf(itask, KEY, DEFAULT) == + expected + )