Skip to content

Commit dd3f139

Browse files
committed
feat: Add pagination, filter support in revision history resolver
1 parent 754620d commit dd3f139

File tree

3 files changed

+23
-38
lines changed

3 files changed

+23
-38
lines changed

docs/manager/graphql-reference/supergraph.graphql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2991,11 +2991,11 @@ type ModelDeployment implements Node
29912991
metadata: ModelDeploymentMetadata!
29922992
networkAccess: ModelDeploymentNetworkAccess!
29932993
revision: ModelRevision
2994-
revisionHistory: ModelRevisionConnection!
29952994
scalingRule: ScalingRule!
29962995
replicaState: ReplicaState!
29972996
defaultDeploymentStrategy: DeploymentStrategy!
29982997
createdUser: UserNode!
2998+
revisionHistory(filter: ReplicaFilter = null, orderBy: [ReplicaOrderBy!] = null, before: String = null, after: String = null, first: Int = null, last: Int = null, limit: Int = null, offset: Int = null): ModelRevisionConnection!
29992999
}
30003000

30013001
"""Added in 25.13.0"""

docs/manager/graphql-reference/v2-schema.graphql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -696,11 +696,11 @@ type ModelDeployment implements Node {
696696
metadata: ModelDeploymentMetadata!
697697
networkAccess: ModelDeploymentNetworkAccess!
698698
revision: ModelRevision
699-
revisionHistory: ModelRevisionConnection!
700699
scalingRule: ScalingRule!
701700
replicaState: ReplicaState!
702701
defaultDeploymentStrategy: DeploymentStrategy!
703702
createdUser: UserNode!
703+
revisionHistory(filter: ReplicaFilter = null, orderBy: [ReplicaOrderBy!] = null, before: String = null, after: String = null, first: Int = null, last: Int = null, limit: Int = null, offset: Int = null): ModelRevisionConnection!
704704
}
705705

706706
"""Added in 25.13.0"""

src/ai/backend/manager/api/gql/model_deployment/model_deployment.py

Lines changed: 21 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,32 @@ class ModelDeployment(Node):
135135
metadata: ModelDeploymentMetadata
136136
network_access: ModelDeploymentNetworkAccess
137137
revision: Optional[ModelRevision] = None
138-
revision_history: ModelRevisionConnection
139138
scaling_rule: ScalingRule
140139
replica_state: ReplicaState
141140
default_deployment_strategy: DeploymentStrategy
142141
created_user: User
143142

143+
@strawberry.field
144+
async def revision_history(
145+
self,
146+
info: Info[StrawberryGQLContext],
147+
filter: Optional[ReplicaFilter] = None,
148+
order_by: Optional[list[ReplicaOrderBy]] = None,
149+
before: Optional[str] = None,
150+
after: Optional[str] = None,
151+
first: Optional[int] = None,
152+
last: Optional[int] = None,
153+
limit: Optional[int] = None,
154+
offset: Optional[int] = None,
155+
) -> ModelRevisionConnection:
156+
return ModelRevisionConnection(
157+
count=2,
158+
edges=[
159+
ModelRevisionEdge(node=mock_model_revision_1, cursor="rev-cursor-1"),
160+
ModelRevisionEdge(node=mock_model_revision_2, cursor="rev-cursor-2"),
161+
],
162+
)
163+
144164

145165
# Filter Types
146166
@strawberry.input(description="Added in 25.13.0")
@@ -273,19 +293,6 @@ class DeleteModelDeploymentInput:
273293
),
274294
),
275295
revision=mock_model_revision_1,
276-
revision_history=ModelRevisionConnection(
277-
count=2,
278-
edges=[
279-
ModelRevisionEdge(node=mock_model_revision_1, cursor="rev-cursor-1"),
280-
ModelRevisionEdge(node=mock_model_revision_2, cursor="rev-cursor-2"),
281-
],
282-
page_info=PageInfo(
283-
has_next_page=False,
284-
has_previous_page=False,
285-
start_cursor="rev-cursor-1",
286-
end_cursor="rev-cursor-2",
287-
),
288-
),
289296
scaling_rule=ScalingRule(auto_scaling_rules=[mock_scaling_rule_1, mock_scaling_rule_2]),
290297
replica_state=ReplicaState(
291298
desired_replica_count=3,
@@ -327,18 +334,6 @@ class DeleteModelDeploymentInput:
327334
),
328335
),
329336
revision=mock_model_revision_3,
330-
revision_history=ModelRevisionConnection(
331-
count=1,
332-
edges=[
333-
ModelRevisionEdge(node=mock_model_revision_3, cursor="rev-cursor-3"),
334-
],
335-
page_info=PageInfo(
336-
has_next_page=False,
337-
has_previous_page=False,
338-
start_cursor="rev-cursor-3",
339-
end_cursor="rev-cursor-3",
340-
),
341-
),
342337
scaling_rule=ScalingRule(auto_scaling_rules=[]),
343338
replica_state=ReplicaState(
344339
desired_replica_count=1,
@@ -382,16 +377,6 @@ class DeleteModelDeploymentInput:
382377
),
383378
),
384379
revision=None,
385-
revision_history=ModelRevisionConnection(
386-
count=0,
387-
edges=[],
388-
page_info=PageInfo(
389-
has_next_page=False,
390-
has_previous_page=False,
391-
start_cursor=None,
392-
end_cursor=None,
393-
),
394-
),
395380
scaling_rule=ScalingRule(auto_scaling_rules=[]),
396381
replica_state=ReplicaState(
397382
desired_replica_count=0,

0 commit comments

Comments
 (0)