4848)
4949from graphene .types .generic import GenericScalar
5050from graphene .utils .str_converters import to_snake_case
51+ from graphene .types .schema import identity_resolve
52+
5153from graphql .type .definition import get_named_type
5254
5355from cylc .flow import LOG_LEVELS
7072 FLOW_NONE ,
7173)
7274from cylc .flow .id import Tokens
73- from cylc .flow .run_modes import (
74- TASK_CONFIG_RUN_MODES , WORKFLOW_RUN_MODES , RunMode )
75+ from cylc .flow .run_modes import RunMode
7576from cylc .flow .task_outputs import SORT_ORDERS
7677from cylc .flow .task_state import (
7778 TASK_STATUS_DESC ,
@@ -309,8 +310,8 @@ def process_resolver_info(
309310 """Set and gather info for resolver."""
310311 # Add the subscription id to the resolver context
311312 # to know which delta-store to use."""
312- if 'backend_sub_id ' in info .variable_values :
313- args ['sub_id' ] = info .variable_values [ 'backend_sub_id ' ]
313+ if 'sub_id ' in info .context :
314+ args ['sub_id' ] = info .context [ 'sub_id ' ]
314315
315316 field_name : str = to_snake_case (info .field_name )
316317 # root is the parent data object.
@@ -620,19 +621,18 @@ class Meta:
620621 string_extended = String ()
621622
622623
623- # The run mode for the workflow.
624- WorkflowRunMode = graphene .Enum (
625- 'WorkflowRunMode' ,
626- [(m .capitalize (), m ) for m in WORKFLOW_RUN_MODES ],
627- description = lambda x : RunMode (x .value ).describe () if x else None ,
628- )
624+ class TaskRunMode (graphene .Enum ):
625+ """The mode used to run a task."""
629626
630- # The run mode for the task.
631- TaskRunMode = graphene .Enum (
632- 'TaskRunMode' ,
633- [(m .capitalize (), m ) for m in TASK_CONFIG_RUN_MODES ],
634- description = lambda x : RunMode (x .value ).describe () if x else None ,
635- )
627+ # NOTE: using a different enum because:
628+ # * We only want to offer a subset of run modes (REQUEST_* only).
629+
630+ Live = cast ('Enum' , RunMode .LIVE ) # type: graphene.Enum
631+ Skip = cast ('Enum' , RunMode .SKIP ) # type: graphene.Enum
632+
633+ @property
634+ def description (self ):
635+ return RunMode (self .value ).describe ()
636636
637637
638638class Workflow (ObjectType ):
@@ -862,7 +862,7 @@ class Meta:
862862 directives = graphene .List (RuntimeSetting , resolver = resolve_json_dump )
863863 environment = graphene .List (RuntimeSetting , resolver = resolve_json_dump )
864864 outputs = graphene .List (RuntimeSetting , resolver = resolve_json_dump )
865- run_mode = TaskRunMode (default_value = TaskRunMode .Live . name )
865+ run_mode = TaskRunMode (default_value = TaskRunMode .Live )
866866
867867
868868RUNTIME_FIELD_TO_CFG_MAP = {
@@ -1694,6 +1694,21 @@ class TimePoint(String):
16941694)
16951695
16961696
1697+ class WorkflowRunMode (graphene .Enum ):
1698+ """The mode used to run a workflow."""
1699+
1700+ # NOTE: using a different enum because:
1701+ # * We only want to offer a subset of run modes (REQUEST_* only).
1702+
1703+ Live = cast ('Enum' , RunMode .LIVE ) # type: graphene.Enum
1704+ Dummy = cast ('Enum' , RunMode .DUMMY ) # type: graphene.Enum
1705+ Simulation = cast ('Enum' , RunMode .SIMULATION ) # type: graphene.Enum
1706+
1707+ @property
1708+ def description (self ):
1709+ return RunMode (self .value ).describe ()
1710+
1711+
16971712class WorkflowStopMode (graphene .Enum ):
16981713 """The mode used to stop a running workflow."""
16991714
@@ -1984,7 +1999,7 @@ class Meta:
19841999 submitted immediately if the workflow is restarted.
19852000 Remaining task event handlers, job poll and kill commands, will
19862001 be executed prior to shutdown, unless
1987- the stop mode is `{ WorkflowStopMode .Now . name } `.
2002+ the stop mode is `{ WorkflowStopMode .Now } `.
19882003
19892004 Valid for: paused, running, stopping workflows.
19902005 ''' )
@@ -2509,6 +2524,27 @@ class Meta:
25092524 )
25102525
25112526
2527+ # TODO: Change to use subscribe arg/default graphql-core has a subscribe field
2528+ # for both Meta and Field, graphene at v3.4.3 does not.. As a workaround
2529+ # the subscribe function is looked up via the following mapping:
2530+ SUB_RESOLVER_MAPPING = {
2531+ 'deltas' : delta_subs ,
2532+ 'workflows' : delta_subs ,
2533+ 'job' : delta_subs ,
2534+ 'jobs' : delta_subs ,
2535+ 'task' : delta_subs ,
2536+ 'tasks' : delta_subs ,
2537+ 'taskProxy' : delta_subs ,
2538+ 'taskProxies' : delta_subs ,
2539+ 'family' : delta_subs ,
2540+ 'families' : delta_subs ,
2541+ 'familyProxy' : delta_subs ,
2542+ 'familyProxies' : delta_subs ,
2543+ 'edges' : delta_subs ,
2544+ 'nodesEdges' : delta_subs ,
2545+ }
2546+
2547+
25122548class Subscriptions (ObjectType ):
25132549 """Defines the subscriptions available in the schema."""
25142550 class Meta :
@@ -2523,7 +2559,7 @@ class Meta:
25232559 strip_null = Boolean (default_value = False ),
25242560 initial_burst = Boolean (default_value = True ),
25252561 ignore_interval = Float (default_value = 0.0 ),
2526- resolver = delta_subs
2562+ resolver = identity_resolve
25272563 )
25282564 workflows = graphene .List (
25292565 Workflow ,
@@ -2536,7 +2572,7 @@ class Meta:
25362572 delta_type = String (default_value = DELTA_ADDED ),
25372573 initial_burst = Boolean (default_value = True ),
25382574 ignore_interval = Float (default_value = 2.5 ),
2539- resolver = delta_subs
2575+ resolver = identity_resolve
25402576 )
25412577 job = Field (
25422578 Job ,
@@ -2547,7 +2583,7 @@ class Meta:
25472583 delta_type = String (default_value = DELTA_ADDED ),
25482584 initial_burst = Boolean (default_value = True ),
25492585 ignore_interval = Float (default_value = 0.0 ),
2550- resolver = delta_subs
2586+ resolver = identity_resolve
25512587 )
25522588 jobs = graphene .List (
25532589 Job ,
@@ -2558,7 +2594,7 @@ class Meta:
25582594 delta_type = String (default_value = DELTA_ADDED ),
25592595 initial_burst = Boolean (default_value = True ),
25602596 ignore_interval = Float (default_value = 0.0 ),
2561- resolver = delta_subs
2597+ resolver = identity_resolve
25622598 )
25632599 task = Field (
25642600 Task ,
@@ -2569,7 +2605,7 @@ class Meta:
25692605 delta_type = String (default_value = DELTA_ADDED ),
25702606 initial_burst = Boolean (default_value = True ),
25712607 ignore_interval = Float (default_value = 0.0 ),
2572- resolver = delta_subs
2608+ resolver = identity_resolve
25732609 )
25742610 tasks = graphene .List (
25752611 Task ,
@@ -2580,7 +2616,7 @@ class Meta:
25802616 delta_type = String (default_value = DELTA_ADDED ),
25812617 initial_burst = Boolean (default_value = True ),
25822618 ignore_interval = Float (default_value = 0.0 ),
2583- resolver = delta_subs
2619+ resolver = identity_resolve
25842620 )
25852621 task_proxy = Field (
25862622 TaskProxy ,
@@ -2591,7 +2627,7 @@ class Meta:
25912627 delta_type = String (default_value = DELTA_ADDED ),
25922628 initial_burst = Boolean (default_value = True ),
25932629 ignore_interval = Float (default_value = 0.0 ),
2594- resolver = delta_subs
2630+ resolver = identity_resolve
25952631 )
25962632 task_proxies = graphene .List (
25972633 TaskProxy ,
@@ -2602,7 +2638,7 @@ class Meta:
26022638 delta_type = String (default_value = DELTA_ADDED ),
26032639 initial_burst = Boolean (default_value = True ),
26042640 ignore_interval = Float (default_value = 0.0 ),
2605- resolver = delta_subs
2641+ resolver = identity_resolve
26062642 )
26072643 family = Field (
26082644 Family ,
@@ -2613,7 +2649,7 @@ class Meta:
26132649 delta_type = String (default_value = DELTA_ADDED ),
26142650 initial_burst = Boolean (default_value = True ),
26152651 ignore_interval = Float (default_value = 0.0 ),
2616- resolver = delta_subs
2652+ resolver = identity_resolve
26172653 )
26182654 families = graphene .List (
26192655 Family ,
@@ -2624,7 +2660,7 @@ class Meta:
26242660 delta_type = String (default_value = DELTA_ADDED ),
26252661 initial_burst = Boolean (default_value = True ),
26262662 ignore_interval = Float (default_value = 0.0 ),
2627- resolver = delta_subs
2663+ resolver = identity_resolve
26282664 )
26292665 family_proxy = Field (
26302666 FamilyProxy ,
@@ -2635,7 +2671,7 @@ class Meta:
26352671 delta_type = String (default_value = DELTA_ADDED ),
26362672 initial_burst = Boolean (default_value = True ),
26372673 ignore_interval = Float (default_value = 0.0 ),
2638- resolver = delta_subs
2674+ resolver = identity_resolve
26392675 )
26402676 family_proxies = graphene .List (
26412677 FamilyProxy ,
@@ -2646,7 +2682,7 @@ class Meta:
26462682 delta_type = String (default_value = DELTA_ADDED ),
26472683 initial_burst = Boolean (default_value = True ),
26482684 ignore_interval = Float (default_value = 0.0 ),
2649- resolver = delta_subs
2685+ resolver = identity_resolve
26502686 )
26512687 edges = graphene .List (
26522688 Edge ,
@@ -2657,7 +2693,7 @@ class Meta:
26572693 delta_type = String (default_value = DELTA_ADDED ),
26582694 initial_burst = Boolean (default_value = True ),
26592695 ignore_interval = Float (default_value = 0.0 ),
2660- resolver = delta_subs
2696+ resolver = identity_resolve
26612697 )
26622698 nodes_edges = Field (
26632699 NodesEdges ,
@@ -2668,7 +2704,7 @@ class Meta:
26682704 delta_type = String (default_value = DELTA_ADDED ),
26692705 initial_burst = Boolean (default_value = True ),
26702706 ignore_interval = Float (default_value = 0.0 ),
2671- resolver = delta_subs
2707+ resolver = identity_resolve
26722708 )
26732709
26742710
0 commit comments