Skip to content

Commit 79438d0

Browse files
Merge pull request #6953 from cylc/8.5.x-sync
🤖 Merge 8.5.x-sync into master
2 parents 700eb02 + 765e36d commit 79438d0

File tree

3 files changed

+21
-9
lines changed

3 files changed

+21
-9
lines changed

changes.d/6952.fix.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fixed `cylc broadcast` failing when cancelling `[events]` settings.

cylc/flow/cfgspec/workflow.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2043,14 +2043,21 @@ def get_script_common_text(this: str, example: Optional[str] = None):
20432043
''')
20442044

20452045

2046-
def upg(cfg, descr):
2046+
def upg(cfg, descr, for_cancel_broadcast=False):
20472047
"""Upgrade old workflow configuration.
20482048
20492049
NOTE: We are silencing deprecation (and only deprecation) warnings
20502050
when in Cylc 7 compat mode to help support Cylc 7/8 compatible workflows
20512051
(which would loose Cylc 7 compatibility if users were to follow the
20522052
warnings and upgrade the syntax).
20532053
2054+
Args:
2055+
for_cancel_broadcast:
2056+
If True, extra validation steps which inspect configuration values
2057+
will be skipped. This is used for "cylc broadcast --cancel" where
2058+
the values are not known.
2059+
See https://github.com/cylc/cylc-flow/issues/6950.
2060+
20542061
"""
20552062
u = upgrader(cfg, descr)
20562063

@@ -2255,11 +2262,11 @@ def upg(cfg, descr):
22552262
)
22562263
u.upgrade()
22572264

2258-
upgrade_graph_section(cfg, descr)
2259-
upgrade_param_env_templates(cfg, descr)
2260-
2261-
warn_about_depr_platform(cfg)
2262-
warn_about_depr_event_handler_tmpl(cfg)
2265+
if not for_cancel_broadcast:
2266+
upgrade_graph_section(cfg, descr)
2267+
upgrade_param_env_templates(cfg, descr)
2268+
warn_about_depr_platform(cfg)
2269+
warn_about_depr_event_handler_tmpl(cfg)
22632270

22642271
return u
22652272

cylc/flow/scripts/broadcast.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ def get_padding(settings, level=0, padding=0):
167167
return padding
168168

169169

170-
def get_rdict(left, right=None):
170+
def get_rdict(left, right=None, for_cancel_broadcast=False):
171171
"""Check+transform left=right into a nested dict.
172172
173173
left can be key, [key], [key1]key2, [key1][key2], [key1][key2]key3, etc.
@@ -193,7 +193,11 @@ def get_rdict(left, right=None):
193193
# item = right
194194
cur_dict[tail.strip()] = right
195195
tail = None
196-
upg({'runtime': {'__MANY__': rdict}}, 'test')
196+
upg(
197+
{'runtime': {'__MANY__': rdict}},
198+
'test',
199+
for_cancel_broadcast=for_cancel_broadcast,
200+
)
197201
# Perform validation, but don't coerce the original (deepcopy).
198202
cylc_config_validate(deepcopy(rdict), SPEC['runtime']['__MANY__'])
199203
return rdict
@@ -433,7 +437,7 @@ async def run(options: 'Values', workflow_id):
433437
raise InputError(
434438
"--cancel=[SEC]ITEM does not take a value")
435439
option_item = option_item.strip()
436-
setting = get_rdict(option_item)
440+
setting = get_rdict(option_item, for_cancel_broadcast=True)
437441
settings.append(setting)
438442
files_to_settings(settings, options.cancel_files, options.cancel)
439443
mutation_kwargs['variables'].update(

0 commit comments

Comments
 (0)