Skip to content

Commit

Permalink
PC-1480 Implement gql endpoint for deleting retention scripts
Browse files Browse the repository at this point in the history
Summary: We want to allow users to delete retention scripts. This diff implements the script deletion in GQL, which will allow us to hook it up to the UI.

Test Plan: unit test

Reviewers: nlanam, vihang

Reviewed By: nlanam, vihang

JIRA Issues: PC-1480

Signed-off-by: Michelle Nguyen <michellenguyen@pixielabs.ai>

Differential Revision: https://phab.corp.pixielabs.ai/D11159

GitOrigin-RevId: e5c91d9
  • Loading branch information
aimichelle authored and copybaranaut committed Apr 6, 2022
1 parent cfba15e commit ca8c545
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 4 deletions.
18 changes: 18 additions & 0 deletions src/cloud/api/controllers/plugin_resolver.go
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,10 @@ type updateRetentionScriptArgs struct {
Script *editableRetentionScript
}

type deleteRetentionScriptArgs struct {
ID graphql.ID
}

type retentionScriptArgs struct {
ID string
}
Expand Down Expand Up @@ -377,6 +381,20 @@ func (q *QueryResolver) UpdateRetentionScript(ctx context.Context, args updateRe
return true, err
}

// DeleteRetentionScript deletes a retention script.
func (q *QueryResolver) DeleteRetentionScript(ctx context.Context, args deleteRetentionScriptArgs) (bool, error) {
req := &cloudpb.DeleteRetentionScriptRequest{
ID: utils.ProtoFromUUIDStrOrNil(string(args.ID)),
}

_, err := q.Env.PluginServer.DeleteRetentionScript(ctx, req)
if err != nil {
return false, err
}

return true, nil
}

// CreateRetentionScript creates a new retention script.
func (q *QueryResolver) CreateRetentionScript(ctx context.Context, args createRetentionScriptArgs) (graphql.ID, error) {
req := &cloudpb.CreateRetentionScriptRequest{}
Expand Down
28 changes: 28 additions & 0 deletions src/cloud/api/controllers/plugin_resolver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -496,3 +496,31 @@ func TestPluginResolver_CreateRetentionScript(t *testing.T) {
},
})
}

func TestPluginResolver_DeleteRetentionScript(t *testing.T) {
gqlEnv, mockClients, cleanup := gqltestutils.CreateTestGraphQLEnv(t)
defer cleanup()
ctx := CreateTestContext()

mockClients.MockPlugin.EXPECT().DeleteRetentionScript(gomock.Any(), &cloudpb.DeleteRetentionScriptRequest{
ID: utils.ProtoFromUUIDStrOrNil("1ba7b810-9dad-11d1-80b4-00c04fd430c8"),
}).Return(&cloudpb.DeleteRetentionScriptResponse{}, nil)

gqlSchema := LoadSchema(gqlEnv)
gqltesting.RunTests(t, []*gqltesting.Test{
{
Schema: gqlSchema,
Context: ctx,
Query: `
mutation {
DeleteRetentionScript(id: "1ba7b810-9dad-11d1-80b4-00c04fd430c8") {}
}
`,
ExpectedResult: `
{
"DeleteRetentionScript": true
}
`,
},
})
}
1 change: 1 addition & 0 deletions src/cloud/api/controllers/schema/03_auth_schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ extend type Mutation {
UpdateRetentionPluginConfig(id: String!, enabled: Boolean, enabledVersion: String, configs: EditablePluginConfigs!): Boolean!
UpdateRetentionScript(id: ID!, script: EditableRetentionScript): Boolean!
CreateRetentionScript(script: EditableRetentionScript): ID!
DeleteRetentionScript(id: ID!): Boolean!
}

type UserInfo {
Expand Down
4 changes: 2 additions & 2 deletions src/cloud/api/controllers/schema/complete/bindata.gen.go

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions src/cloud/api/controllers/schema/noauth/bindata.gen.go

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions src/ui/src/types/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ export interface GQLMutation {
UpdateRetentionPluginConfig: boolean;
UpdateRetentionScript: boolean;
CreateRetentionScript: string;
DeleteRetentionScript: boolean;
}

export interface GQLArtifactsInfo {
Expand Down Expand Up @@ -654,6 +655,7 @@ export interface GQLMutationTypeResolver<TParent = any> {
UpdateRetentionPluginConfig?: MutationToUpdateRetentionPluginConfigResolver<TParent>;
UpdateRetentionScript?: MutationToUpdateRetentionScriptResolver<TParent>;
CreateRetentionScript?: MutationToCreateRetentionScriptResolver<TParent>;
DeleteRetentionScript?: MutationToDeleteRetentionScriptResolver<TParent>;
}

export interface MutationToNoopResolver<TParent = any, TResult = any> {
Expand Down Expand Up @@ -786,6 +788,13 @@ export interface MutationToCreateRetentionScriptResolver<TParent = any, TResult
(parent: TParent, args: MutationToCreateRetentionScriptArgs, context: any, info: GraphQLResolveInfo): TResult;
}

export interface MutationToDeleteRetentionScriptArgs {
id: string;
}
export interface MutationToDeleteRetentionScriptResolver<TParent = any, TResult = any> {
(parent: TParent, args: MutationToDeleteRetentionScriptArgs, context: any, info: GraphQLResolveInfo): TResult;
}

export interface GQLArtifactsInfoTypeResolver<TParent = any> {
items?: ArtifactsInfoToItemsResolver<TParent>;
}
Expand Down

0 comments on commit ca8c545

Please sign in to comment.