diff --git a/js_modules/dagster-ui/packages/ui-core/src/graphql/schema.graphql b/js_modules/dagster-ui/packages/ui-core/src/graphql/schema.graphql index b9836fb61695c..17eb08bdcaa32 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/graphql/schema.graphql +++ b/js_modules/dagster-ui/packages/ui-core/src/graphql/schema.graphql @@ -634,7 +634,6 @@ type AssetNode { backfillPolicy: BackfillPolicy changedReasons: [ChangeReason!]! computeKind: String - pools: [String!]! configField: ConfigTypeField dataVersion(partition: String): String dataVersionByPartition(partitions: [String!]): [String]! @@ -671,6 +670,7 @@ type AssetNode { partitionDefinition: PartitionDefinition partitionKeys: [String!]! partitionKeysByDimension(startIdx: Int, endIdx: Int): [DimensionPartitionKeys!]! + pools: [String!]! repository: Repository! requiredResources: [ResourceRequirement!]! staleStatus(partition: String): StaleStatus @@ -3105,6 +3105,7 @@ type CompositeSolidDefinition implements ISolidDefinition & SolidContainer { inputDefinitions: [InputDefinition!]! outputDefinitions: [OutputDefinition!]! assetNodes: [AssetNode!]! + pools: [String!]! id: ID! solids: [Solid!]! solidHandle(handleID: String!): SolidHandle @@ -3140,6 +3141,7 @@ interface ISolidDefinition { inputDefinitions: [InputDefinition!]! outputDefinitions: [OutputDefinition!]! assetNodes: [AssetNode!]! + pools: [String!]! } type Output { @@ -3190,6 +3192,7 @@ type SolidDefinition implements ISolidDefinition { inputDefinitions: [InputDefinition!]! outputDefinitions: [OutputDefinition!]! assetNodes: [AssetNode!]! + pools: [String!]! configField: ConfigTypeField requiredResources: [ResourceRequirement!]! pool: String diff --git a/js_modules/dagster-ui/packages/ui-core/src/graphql/types.ts b/js_modules/dagster-ui/packages/ui-core/src/graphql/types.ts index 2b32582daa515..3834fb8da919b 100644 --- a/js_modules/dagster-ui/packages/ui-core/src/graphql/types.ts +++ b/js_modules/dagster-ui/packages/ui-core/src/graphql/types.ts @@ -825,6 +825,7 @@ export type CompositeSolidDefinition = ISolidDefinition & name: Scalars['String']['output']; outputDefinitions: Array<OutputDefinition>; outputMappings: Array<OutputMapping>; + pools: Array<Scalars['String']['output']>; solidHandle: Maybe<SolidHandle>; solidHandles: Array<SolidHandle>; solids: Array<Solid>; @@ -1840,6 +1841,7 @@ export type ISolidDefinition = { metadata: Array<MetadataItemDefinition>; name: Scalars['String']['output']; outputDefinitions: Array<OutputDefinition>; + pools: Array<Scalars['String']['output']>; }; export type Input = { @@ -5202,6 +5204,7 @@ export type SolidDefinition = ISolidDefinition & { name: Scalars['String']['output']; outputDefinitions: Array<OutputDefinition>; pool: Maybe<Scalars['String']['output']>; + pools: Array<Scalars['String']['output']>; requiredResources: Array<ResourceRequirement>; }; @@ -7317,6 +7320,7 @@ export const buildCompositeSolidDefinition = ( : [], outputMappings: overrides && overrides.hasOwnProperty('outputMappings') ? overrides.outputMappings! : [], + pools: overrides && overrides.hasOwnProperty('pools') ? overrides.pools! : [], solidHandle: overrides && overrides.hasOwnProperty('solidHandle') ? overrides.solidHandle! @@ -8837,6 +8841,7 @@ export const buildISolidDefinition = ( overrides && overrides.hasOwnProperty('outputDefinitions') ? overrides.outputDefinitions! : [], + pools: overrides && overrides.hasOwnProperty('pools') ? overrides.pools! : [], }; }; @@ -14491,6 +14496,7 @@ export const buildSolidDefinition = ( ? overrides.outputDefinitions! : [], pool: overrides && overrides.hasOwnProperty('pool') ? overrides.pool! : 'voluptates', + pools: overrides && overrides.hasOwnProperty('pools') ? overrides.pools! : [], requiredResources: overrides && overrides.hasOwnProperty('requiredResources') ? overrides.requiredResources! diff --git a/python_modules/dagster-graphql/dagster_graphql/schema/asset_graph.py b/python_modules/dagster-graphql/dagster_graphql/schema/asset_graph.py index aae161bb8fac4..c86c7107abffb 100644 --- a/python_modules/dagster-graphql/dagster_graphql/schema/asset_graph.py +++ b/python_modules/dagster-graphql/dagster_graphql/schema/asset_graph.py @@ -241,7 +241,6 @@ class GrapheneAssetNode(graphene.ObjectType): backfillPolicy = graphene.Field(GrapheneBackfillPolicy) changedReasons = graphene.Field(non_null_list(GrapheneAssetChangedReason)) computeKind = graphene.String() - pools = non_null_list(graphene.String) configField = graphene.Field(GrapheneConfigTypeField) dataVersion = graphene.Field(graphene.String(), partition=graphene.String()) dataVersionByPartition = graphene.Field( @@ -288,6 +287,7 @@ class GrapheneAssetNode(graphene.ObjectType): startIdx=graphene.Int(), endIdx=graphene.Int(), ) + pools = non_null_list(graphene.String) repository = graphene.NonNull(lambda: external.GrapheneRepository) required_resources = non_null_list(GrapheneResourceRequirement) staleStatus = graphene.Field(GrapheneAssetStaleStatus, partition=graphene.String()) @@ -681,9 +681,6 @@ def _get_config_type(key: str): field_snap=node_def_snap.config_field_snap, ) - def resolve_pools(self, _graphene_info: ResolveInfo) -> Sequence[str]: - return sorted([pool for pool in self._asset_node_snap.pools or set()]) - def resolve_computeKind(self, _graphene_info: ResolveInfo) -> Optional[str]: return self._asset_node_snap.compute_kind @@ -1219,6 +1216,9 @@ def resolve_partitionDefinition( return GraphenePartitionDefinition(partitions_snap) return None + def resolve_pools(self, _graphene_info: ResolveInfo) -> Sequence[str]: + return sorted([pool for pool in self._asset_node_snap.pools or set()]) + def resolve_repository(self, graphene_info: ResolveInfo) -> "GrapheneRepository": return external.GrapheneRepository(self._repository_handle) diff --git a/python_modules/dagster-graphql/dagster_graphql/schema/solids.py b/python_modules/dagster-graphql/dagster_graphql/schema/solids.py index d7c79d27818a4..faa67b6d6a636 100644 --- a/python_modules/dagster-graphql/dagster_graphql/schema/solids.py +++ b/python_modules/dagster-graphql/dagster_graphql/schema/solids.py @@ -374,6 +374,7 @@ class GrapheneISolidDefinition(graphene.Interface): input_definitions = non_null_list(GrapheneInputDefinition) output_definitions = non_null_list(GrapheneOutputDefinition) assetNodes = non_null_list("dagster_graphql.schema.asset_graph.GrapheneAssetNode") + pools = non_null_list(graphene.String) class Meta: name = "ISolidDefinition" @@ -454,6 +455,13 @@ def resolve_assetNodes(self, graphene_info: ResolveInfo) -> Sequence["GrapheneAs for remote_node in remote_nodes ] + def resolve_pools(self, _graphene_info) -> Sequence[str]: + if isinstance(self._solid_def_snap, OpDefSnap): + return [self._solid_def_snap.pool] if self._solid_def_snap.pool else [] + if isinstance(self._solid_def_snap, GraphDefSnap): + return list(self._solid_def_snap.pools) + return [] + class GrapheneSolidDefinition(graphene.ObjectType, ISolidDefinitionMixin): config_field = graphene.Field(GrapheneConfigTypeField)