Skip to content

Commit 7d2818a

Browse files
authored
Add DeployTargetsByPlugin to Web API (#5556)
Signed-off-by: khanhtc1202 <[email protected]>
1 parent 75db0fa commit 7d2818a

File tree

11 files changed

+1351
-1102
lines changed

11 files changed

+1351
-1102
lines changed

pkg/app/server/grpcapi/api.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ type apiApplicationStore interface {
4646
Enable(ctx context.Context, id string) error
4747
Disable(ctx context.Context, id string) error
4848
UpdateConfigFilename(ctx context.Context, id, filename string) error
49-
UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string) error
49+
UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string, deployTargetsByPlugin map[string]*model.DeployTargets) error
5050
UpdateDeployTargets(ctx context.Context, id string, dp map[string]*model.DeployTargets) error
5151
}
5252

@@ -360,7 +360,7 @@ func (a *API) UpdateApplication(ctx context.Context, req *apiservice.UpdateAppli
360360
return nil, status.Error(codes.InvalidArgument, "Requested piped does not belong to your project")
361361
}
362362

363-
if err := a.applicationStore.UpdateConfiguration(ctx, req.ApplicationId, req.PipedId, req.PlatformProvider, req.GitPath.ConfigFilename); err != nil {
363+
if err := a.applicationStore.UpdateConfiguration(ctx, req.ApplicationId, req.PipedId, req.PlatformProvider, req.GitPath.ConfigFilename, nil); err != nil {
364364
return nil, gRPCStoreError(err, fmt.Sprintf("failed to update application %s", req.ApplicationId))
365365
}
366366

pkg/app/server/grpcapi/web_api.go

+13-12
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ type webAPIApplicationStore interface {
5959
Get(ctx context.Context, id string) (*model.Application, error)
6060
List(ctx context.Context, opts datastore.ListOptions) ([]*model.Application, string, error)
6161
Delete(ctx context.Context, id string) error
62-
UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string) error
62+
UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string, deployTargetsByPlugin map[string]*model.DeployTargets) error
6363
Enable(ctx context.Context, id string) error
6464
Disable(ctx context.Context, id string) error
6565
}
@@ -512,16 +512,17 @@ func (a *WebAPI) AddApplication(ctx context.Context, req *webservice.AddApplicat
512512
}
513513

514514
app := model.Application{
515-
Id: uuid.New().String(),
516-
Name: req.Name,
517-
PipedId: req.PipedId,
518-
ProjectId: claims.Role.ProjectId,
519-
GitPath: gitpath,
520-
Kind: req.Kind,
521-
PlatformProvider: req.PlatformProvider,
522-
CloudProvider: req.PlatformProvider,
523-
Description: req.Description,
524-
Labels: req.Labels,
515+
Id: uuid.New().String(),
516+
Name: req.Name,
517+
PipedId: req.PipedId,
518+
ProjectId: claims.Role.ProjectId,
519+
GitPath: gitpath,
520+
Kind: req.Kind,
521+
PlatformProvider: req.PlatformProvider,
522+
CloudProvider: req.PlatformProvider,
523+
DeployTargetsByPlugin: req.DeployTargetsByPlugin,
524+
Description: req.Description,
525+
Labels: req.Labels,
525526
}
526527
if err = a.applicationStore.Add(ctx, &app); err != nil {
527528
return nil, gRPCStoreError(err, fmt.Sprintf("add application %s", app.Id))
@@ -548,7 +549,7 @@ func (a *WebAPI) UpdateApplication(ctx context.Context, req *webservice.UpdateAp
548549
return nil, status.Error(codes.PermissionDenied, "Requested piped does not belong to your project")
549550
}
550551

551-
if err := a.applicationStore.UpdateConfiguration(ctx, req.ApplicationId, req.PipedId, req.PlatformProvider, req.ConfigFilename); err != nil {
552+
if err := a.applicationStore.UpdateConfiguration(ctx, req.ApplicationId, req.PipedId, req.PlatformProvider, req.ConfigFilename, req.DeployTargetsByPlugin); err != nil {
552553
return nil, gRPCStoreError(err, fmt.Sprintf("failed to update application %s", req.ApplicationId))
553554
}
554555

pkg/app/server/service/webservice/service.pb.go

+1,135-1,082
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/app/server/service/webservice/service.pb.validate.go

+114
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/app/server/service/webservice/service.proto

+2
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,7 @@ message AddApplicationRequest {
363363
model.ApplicationGitPath git_path = 4 [(validate.rules).message.required = true];
364364
model.ApplicationKind kind = 5 [(validate.rules).enum.defined_only = true];
365365
string platform_provider = 9;
366+
map<string, model.DeployTargets> deploy_targets_by_plugin = 10 [(validate.rules).map.min_pairs = 1];
366367
string description = 7;
367368
map<string, string> labels = 8;
368369
}
@@ -379,6 +380,7 @@ message UpdateApplicationRequest {
379380
string piped_id = 4 [(validate.rules).string.min_len = 1];
380381
model.ApplicationKind kind = 6 [(validate.rules).enum.defined_only = true];
381382
string platform_provider = 9;
383+
map<string, model.DeployTargets> deploy_targets_by_plugin = 10 [(validate.rules).map.min_pairs = 1];
382384
string config_filename = 8;
383385
}
384386

pkg/datastore/applicationstore.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ type ApplicationStore interface {
196196
UpdateConfigFilename(ctx context.Context, id, configFilename string) error
197197
UpdateDeployingStatus(ctx context.Context, id string, deploying bool) error
198198
UpdateBasicInfo(ctx context.Context, id, name, description string, labels map[string]string) error
199-
UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string) error
199+
UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string, deployTargetsByPlugin map[string]*model.DeployTargets) error
200200
UpdatePlatformProvider(ctx context.Context, id string, provider string) error
201201
UpdateDeployTargets(ctx context.Context, id string, dp map[string]*model.DeployTargets) error
202202
}
@@ -362,11 +362,12 @@ func (s *applicationStore) UpdateBasicInfo(ctx context.Context, id, name, descri
362362
})
363363
}
364364

365-
func (s *applicationStore) UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string) error {
365+
func (s *applicationStore) UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string, deployTargetsByPlugin map[string]*model.DeployTargets) error {
366366
return s.update(ctx, id, func(app *model.Application) error {
367367
app.PipedId = pipedID
368368
app.PlatformProvider = platformProvider
369369
app.CloudProvider = platformProvider
370+
app.DeployTargetsByPlugin = deployTargetsByPlugin
370371
app.GitPath.ConfigFilename = configFilename
371372
return nil
372373
})

pkg/datastore/datastoretest/datastore.mock.go

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

web/api_client/service_pb.d.ts

+8
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,9 @@ export class AddApplicationRequest extends jspb.Message {
499499
getPlatformProvider(): string;
500500
setPlatformProvider(value: string): AddApplicationRequest;
501501

502+
getDeployTargetsByPluginMap(): jspb.Map<string, pkg_model_deployment_pb.DeployTargets>;
503+
clearDeployTargetsByPluginMap(): AddApplicationRequest;
504+
502505
getDescription(): string;
503506
setDescription(value: string): AddApplicationRequest;
504507

@@ -520,6 +523,7 @@ export namespace AddApplicationRequest {
520523
gitPath?: pkg_model_common_pb.ApplicationGitPath.AsObject,
521524
kind: pkg_model_common_pb.ApplicationKind,
522525
platformProvider: string,
526+
deployTargetsByPluginMap: Array<[string, pkg_model_deployment_pb.DeployTargets.AsObject]>,
523527
description: string,
524528
labelsMap: Array<[string, string]>,
525529
}
@@ -559,6 +563,9 @@ export class UpdateApplicationRequest extends jspb.Message {
559563
getPlatformProvider(): string;
560564
setPlatformProvider(value: string): UpdateApplicationRequest;
561565

566+
getDeployTargetsByPluginMap(): jspb.Map<string, pkg_model_deployment_pb.DeployTargets>;
567+
clearDeployTargetsByPluginMap(): UpdateApplicationRequest;
568+
562569
getConfigFilename(): string;
563570
setConfigFilename(value: string): UpdateApplicationRequest;
564571

@@ -577,6 +584,7 @@ export namespace UpdateApplicationRequest {
577584
pipedId: string,
578585
kind: pkg_model_common_pb.ApplicationKind,
579586
platformProvider: string,
587+
deployTargetsByPluginMap: Array<[string, pkg_model_deployment_pb.DeployTargets.AsObject]>,
580588
configFilename: string,
581589
}
582590
}

0 commit comments

Comments
 (0)