`suite_state` trigger in Cylc8 compatibility mode


I have a cylc7 suite that I am trying to run using Cylc8 in backward compatibility mode.
However, it fails to validate my inter-suite XTrigger:

        upstream_amm15 = suite_state( ... ):PT10M

with the following error:

WARNING - Backward compatibility mode ON
XtriggerConfigError: [upstream_amm15] xtrigger module 'suite_state' not found

I can see that this is because in Cylc8 the trigger is renamed workflow_state, but I was sort of expecting the difference in trigger name would be handled automatically in Cylc7 compatibility mode. Should this be the case, or is it wishful thinking on my part?! :slight_smile:

Edit: I think that being forced to rename suite_state => workflow_state is an acceptable situation, but the error message doesn’t provide any hint that this is what is required.

Somewhat wishful thinking I’m afraid, but I expect it should be possible for us to auto-upgrade this in the config to make migration easier.

In the mean time, Jinja2…


{% from "sys" import version %}    
{% if version[0] == '3' %}    
        upstream_amm15 = workflow_state(...)
{% else %}    
        upstream_amm15 = suite_state(...)
{% endif %}
1 Like

@ukmo-ccbunney - also, if your workflow-state xtrigger is querying a Cylc 7 suite (i.e., that is running under Cylc 7), make sure you are running at least 8.2.2. - that release contains a patch to handle the old Cylc 7 run databases.

1 Like

All sorted now thanks - turns out that I had a “suite” keyword in the “workflow_state” call…

I thought I had caught all the “suite” → “workflow” nomenclature changes, but missed that one! Thanks.

(opened an issue to see if we could auto-upgrade this in compat mode config: auto upgrade "suite_state" to "workflow_state" in compat mode · Issue #5835 · cylc/cylc-flow · GitHub)

1 Like