Skip to content

Commit 95f3caa

Browse files
vihangmcopybaranaut
authored andcommitted
Remove VizierConfig getters/setters from GraphQL
Summary: With PassthroughMode being the default and only mode now, we no longer need editable VizierConfigs Test Plan: Existing unit tests pass. yarn dev UI also works Reviewers: michelle, nlanam Reviewed By: michelle Signed-off-by: Vihang Mehta <vihang@pixielabs.ai> Differential Revision: https://phab.corp.pixielabs.ai/D11749 GitOrigin-RevId: 18f8f14
1 parent 13a76ec commit 95f3caa

12 files changed

Lines changed: 24 additions & 242 deletions

File tree

src/cloud/api/controllers/cluster_resolver.go

Lines changed: 3 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -138,17 +138,11 @@ func podStatusToResolver(podStatus cloudpb.PodStatus) PodStatusResolver {
138138
return resolver
139139
}
140140

141-
// VizierConfigResolver is the resolver responsible for config belonging to the given cluster.
142-
type VizierConfigResolver struct {
143-
PassthroughEnabled bool
144-
}
145-
146141
// ClusterInfoResolver is the resolver responsible for cluster info.
147142
type ClusterInfoResolver struct {
148143
clusterID uuid.UUID
149144
Status string
150145
LastHeartbeatMs float64
151-
VizierConfig VizierConfigResolver
152146
VizierVersion string
153147
ClusterVersion string
154148
ClusterUID string
@@ -191,12 +185,9 @@ func clusterInfoToResolver(cluster *cloudpb.ClusterInfo) (*ClusterInfoResolver,
191185
}
192186

193187
resolver := &ClusterInfoResolver{
194-
clusterID: clusterID,
195-
Status: cluster.Status.String(),
196-
LastHeartbeatMs: float64(cluster.LastHeartbeatNs) / 1e6,
197-
VizierConfig: VizierConfigResolver{
198-
PassthroughEnabled: cluster.Config.PassthroughEnabled,
199-
},
188+
clusterID: clusterID,
189+
Status: cluster.Status.String(),
190+
LastHeartbeatMs: float64(cluster.LastHeartbeatNs) / 1e6,
200191
VizierVersion: cluster.VizierVersion,
201192
ClusterVersion: cluster.ClusterVersion,
202193
ClusterUID: cluster.ClusterUID,
@@ -279,49 +270,6 @@ func (q *QueryResolver) ClusterByName(ctx context.Context, args *clusterNameArgs
279270
return nil, errors.New("Could not find cluster with name")
280271
}
281272

282-
type editableVizierConfig struct {
283-
PassthroughEnabled *bool
284-
}
285-
286-
type updateVizierConfigArgs struct {
287-
ClusterID graphql.ID
288-
VizierConfig *editableVizierConfig
289-
}
290-
291-
// UpdateVizierConfig updates the Vizier config of the input cluster
292-
func (q *QueryResolver) UpdateVizierConfig(ctx context.Context, args *updateVizierConfigArgs) (*ClusterInfoResolver, error) {
293-
grpcAPI := q.Env.VizierClusterInfo
294-
295-
clusterID := utils.ProtoFromUUIDStrOrNil(string(args.ClusterID))
296-
req := &cloudpb.UpdateClusterVizierConfigRequest{
297-
ID: clusterID,
298-
ConfigUpdate: &cloudpb.VizierConfigUpdate{},
299-
}
300-
301-
if args.VizierConfig.PassthroughEnabled != nil {
302-
req.ConfigUpdate.PassthroughEnabled = &types.BoolValue{Value: *args.VizierConfig.PassthroughEnabled}
303-
}
304-
305-
_, err := grpcAPI.UpdateClusterVizierConfig(ctx, req)
306-
if err != nil {
307-
return nil, rpcErrorHelper(err)
308-
}
309-
310-
res, err := grpcAPI.GetClusterInfo(ctx, &cloudpb.GetClusterInfoRequest{
311-
ID: clusterID,
312-
})
313-
if err != nil {
314-
return nil, rpcErrorHelper(err)
315-
}
316-
if len(res.Clusters) == 0 {
317-
return nil, errors.New("org has no matching clusters")
318-
}
319-
if len(res.Clusters) != 1 {
320-
return nil, errors.New("got multiple matching clusters for ID")
321-
}
322-
return clusterInfoToResolver(res.Clusters[0])
323-
}
324-
325273
// ClusterConnectionInfoResolver is the resolver responsible for cluster connection info.
326274
type ClusterConnectionInfoResolver struct {
327275
Token string

src/cloud/api/controllers/cluster_resolver_test.go

Lines changed: 12 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,9 @@ func TestClusterInfo(t *testing.T) {
9191
}
9292

9393
clusterInfo := &cloudpb.ClusterInfo{
94-
ID: utils.ProtoFromUUIDStrOrNil("7ba7b810-9dad-11d1-80b4-00c04fd430c8"),
95-
Status: cloudpb.CS_HEALTHY,
96-
LastHeartbeatNs: 4 * 1000 * 1000,
97-
Config: &cloudpb.VizierConfig{
98-
PassthroughEnabled: false,
99-
},
94+
ID: utils.ProtoFromUUIDStrOrNil("7ba7b810-9dad-11d1-80b4-00c04fd430c8"),
95+
Status: cloudpb.CS_HEALTHY,
96+
LastHeartbeatNs: 4 * 1000 * 1000,
10097
VizierVersion: "vzVersion",
10198
ClusterVersion: "clusterVersion",
10299
ClusterName: "clusterName",
@@ -126,9 +123,6 @@ func TestClusterInfo(t *testing.T) {
126123
id
127124
status
128125
lastHeartbeatMs
129-
vizierConfig {
130-
passthroughEnabled
131-
}
132126
controlPlanePodStatuses {
133127
name
134128
status
@@ -149,9 +143,6 @@ func TestClusterInfo(t *testing.T) {
149143
"id":"7ba7b810-9dad-11d1-80b4-00c04fd430c8",
150144
"status": "CS_HEALTHY",
151145
"lastHeartbeatMs": 4,
152-
"vizierConfig": {
153-
"passthroughEnabled": false
154-
},
155146
"controlPlanePodStatuses": [{
156147
"name": "vizier-foo",
157148
"status": "RUNNING",
@@ -197,27 +188,21 @@ func TestClusterInfoByName(t *testing.T) {
197188
ID: utils.ProtoFromUUIDStrOrNil("7ba7b810-9dad-11d1-80b4-00c04fd430c8"),
198189
Status: cloudpb.CS_HEALTHY,
199190
LastHeartbeatNs: 4 * 1000 * 1000,
200-
Config: &cloudpb.VizierConfig{
201-
PassthroughEnabled: false,
202-
},
203-
VizierVersion: "vzVersion",
204-
ClusterVersion: "clusterVersion",
205-
ClusterName: "clusterName",
206-
ClusterUID: "clusterUID",
207-
StatusMessage: "Everything is running",
191+
VizierVersion: "vzVersion",
192+
ClusterVersion: "clusterVersion",
193+
ClusterName: "clusterName",
194+
ClusterUID: "clusterUID",
195+
StatusMessage: "Everything is running",
208196
}
209197

210198
unmatchedClusterInfo := &cloudpb.ClusterInfo{
211199
ID: utils.ProtoFromUUIDStrOrNil("7ba7b810-9dad-11d1-80b4-00c04fd430c9"),
212200
Status: cloudpb.CS_HEALTHY,
213201
LastHeartbeatNs: 4 * 1000 * 1000,
214-
Config: &cloudpb.VizierConfig{
215-
PassthroughEnabled: false,
216-
},
217-
VizierVersion: "vzVersion",
218-
ClusterVersion: "clusterVersion2",
219-
ClusterName: "clusterName2",
220-
ClusterUID: "clusterUID2",
202+
VizierVersion: "vzVersion",
203+
ClusterVersion: "clusterVersion2",
204+
ClusterName: "clusterName2",
205+
ClusterUID: "clusterUID2",
221206
}
222207

223208
mockClients.MockVizierClusterInfo.EXPECT().
@@ -237,9 +222,6 @@ func TestClusterInfoByName(t *testing.T) {
237222
id
238223
status
239224
lastHeartbeatMs
240-
vizierConfig {
241-
passthroughEnabled
242-
}
243225
vizierVersion
244226
clusterVersion
245227
clusterName
@@ -254,9 +236,6 @@ func TestClusterInfoByName(t *testing.T) {
254236
"id":"7ba7b810-9dad-11d1-80b4-00c04fd430c8",
255237
"status": "CS_HEALTHY",
256238
"lastHeartbeatMs": 4,
257-
"vizierConfig": {
258-
"passthroughEnabled": false
259-
},
260239
"vizierVersion": "vzVersion",
261240
"clusterVersion": "clusterVersion",
262241
"clusterName": "clusterName",
@@ -326,88 +305,3 @@ func TestClusterConnectionInfo(t *testing.T) {
326305
})
327306
}
328307
}
329-
330-
func TestUpdateClusterVizierConfig(t *testing.T) {
331-
tests := []struct {
332-
name string
333-
ctx context.Context
334-
}{
335-
{
336-
name: "regular user",
337-
ctx: CreateTestContext(),
338-
},
339-
{
340-
name: "api user",
341-
ctx: CreateAPIUserTestContext(),
342-
},
343-
}
344-
345-
for _, test := range tests {
346-
t.Run(test.name, func(t *testing.T) {
347-
gqlEnv, mockClients, cleanup := testutils.CreateTestGraphQLEnv(t)
348-
defer cleanup()
349-
ctx := test.ctx
350-
351-
id := utils.ProtoFromUUIDStrOrNil("7ba7b810-9dad-11d1-80b4-00c04fd430c8")
352-
mockClients.MockVizierClusterInfo.EXPECT().
353-
UpdateClusterVizierConfig(gomock.Any(), &cloudpb.UpdateClusterVizierConfigRequest{
354-
ID: id,
355-
ConfigUpdate: &cloudpb.VizierConfigUpdate{
356-
PassthroughEnabled: &types.BoolValue{Value: true},
357-
},
358-
}).
359-
Return(&cloudpb.UpdateClusterVizierConfigResponse{}, nil)
360-
361-
clusterInfo := &cloudpb.ClusterInfo{
362-
ID: id,
363-
Status: cloudpb.CS_HEALTHY,
364-
LastHeartbeatNs: 4 * 1000 * 1000,
365-
Config: &cloudpb.VizierConfig{
366-
PassthroughEnabled: true,
367-
},
368-
VizierVersion: "vzVersion",
369-
ClusterVersion: "clusterVersion",
370-
ClusterName: "clusterName",
371-
ClusterUID: "clusterUID",
372-
}
373-
374-
mockClients.MockVizierClusterInfo.EXPECT().
375-
GetClusterInfo(gomock.Any(), &cloudpb.GetClusterInfoRequest{
376-
ID: clusterInfo.ID,
377-
}).
378-
Return(&cloudpb.GetClusterInfoResponse{
379-
Clusters: []*cloudpb.ClusterInfo{clusterInfo},
380-
}, nil)
381-
382-
gqlSchema := LoadSchema(gqlEnv)
383-
gqltesting.RunTests(t, []*gqltesting.Test{
384-
{
385-
Schema: gqlSchema,
386-
Context: ctx,
387-
Query: `
388-
mutation {
389-
UpdateVizierConfig(clusterID: "7ba7b810-9dad-11d1-80b4-00c04fd430c8", vizierConfig: { passthroughEnabled: true }) {
390-
id
391-
vizierConfig {
392-
passthroughEnabled
393-
}
394-
lastHeartbeatMs
395-
}
396-
}
397-
`,
398-
ExpectedResult: `
399-
{
400-
"UpdateVizierConfig": {
401-
"id": "7ba7b810-9dad-11d1-80b4-00c04fd430c8",
402-
"vizierConfig": {
403-
"passthroughEnabled": true
404-
},
405-
"lastHeartbeatMs": 4
406-
}
407-
}
408-
`,
409-
},
410-
})
411-
})
412-
}
413-
}

src/cloud/api/controllers/schema/03_auth_schema.graphql

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ extend type Query {
3939

4040
extend type Mutation {
4141
CreateCluster: ClusterInfo @deprecated(reason: "Clusters are now created via px deploy")
42-
UpdateVizierConfig(clusterID: ID!, vizierConfig: EditableVizierConfig!): ClusterInfo!
4342
CreateDeploymentKey: DeploymentKey!
4443
DeleteDeploymentKey(id: ID!): Boolean!
4544
CreateAPIKey: APIKey!
@@ -238,15 +237,10 @@ enum ClusterStatus {
238237
CS_DEGRADED
239238
}
240239

241-
type VizierConfig {
242-
passthroughEnabled: Boolean!
243-
}
244-
245240
type ClusterInfo {
246241
id: ID!
247242
status: ClusterStatus!
248243
lastHeartbeatMs: Float!
249-
vizierConfig: VizierConfig!
250244
vizierVersion: String!
251245
clusterVersion: String!
252246
clusterName: String!
@@ -312,10 +306,6 @@ type CLIArtifact {
312306
sha256: String!
313307
}
314308

315-
input EditableVizierConfig {
316-
passthroughEnabled: Boolean
317-
}
318-
319309
input EditableUserPermissions {
320310
isApproved: Boolean
321311
}

0 commit comments

Comments
 (0)