Skip to content

Commit

Permalink
Add DeployTargetsByPlugin to Web API (#5556)
Browse files Browse the repository at this point in the history
Signed-off-by: khanhtc1202 <khanhtc1202@gmail.com>
  • Loading branch information
khanhtc1202 authored Feb 10, 2025
1 parent 75db0fa commit 7d2818a
Show file tree
Hide file tree
Showing 11 changed files with 1,351 additions and 1,102 deletions.
4 changes: 2 additions & 2 deletions pkg/app/server/grpcapi/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ type apiApplicationStore interface {
Enable(ctx context.Context, id string) error
Disable(ctx context.Context, id string) error
UpdateConfigFilename(ctx context.Context, id, filename string) error
UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string) error
UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string, deployTargetsByPlugin map[string]*model.DeployTargets) error
UpdateDeployTargets(ctx context.Context, id string, dp map[string]*model.DeployTargets) error
}

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

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

Expand Down
25 changes: 13 additions & 12 deletions pkg/app/server/grpcapi/web_api.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ type webAPIApplicationStore interface {
Get(ctx context.Context, id string) (*model.Application, error)
List(ctx context.Context, opts datastore.ListOptions) ([]*model.Application, string, error)
Delete(ctx context.Context, id string) error
UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string) error
UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string, deployTargetsByPlugin map[string]*model.DeployTargets) error
Enable(ctx context.Context, id string) error
Disable(ctx context.Context, id string) error
}
Expand Down Expand Up @@ -512,16 +512,17 @@ func (a *WebAPI) AddApplication(ctx context.Context, req *webservice.AddApplicat
}

app := model.Application{
Id: uuid.New().String(),
Name: req.Name,
PipedId: req.PipedId,
ProjectId: claims.Role.ProjectId,
GitPath: gitpath,
Kind: req.Kind,
PlatformProvider: req.PlatformProvider,
CloudProvider: req.PlatformProvider,
Description: req.Description,
Labels: req.Labels,
Id: uuid.New().String(),
Name: req.Name,
PipedId: req.PipedId,
ProjectId: claims.Role.ProjectId,
GitPath: gitpath,
Kind: req.Kind,
PlatformProvider: req.PlatformProvider,
CloudProvider: req.PlatformProvider,
DeployTargetsByPlugin: req.DeployTargetsByPlugin,
Description: req.Description,
Labels: req.Labels,
}
if err = a.applicationStore.Add(ctx, &app); err != nil {
return nil, gRPCStoreError(err, fmt.Sprintf("add application %s", app.Id))
Expand All @@ -548,7 +549,7 @@ func (a *WebAPI) UpdateApplication(ctx context.Context, req *webservice.UpdateAp
return nil, status.Error(codes.PermissionDenied, "Requested piped does not belong to your project")
}

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

Expand Down
2,217 changes: 1,135 additions & 1,082 deletions pkg/app/server/service/webservice/service.pb.go

Large diffs are not rendered by default.

114 changes: 114 additions & 0 deletions pkg/app/server/service/webservice/service.pb.validate.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions pkg/app/server/service/webservice/service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,7 @@ message AddApplicationRequest {
model.ApplicationGitPath git_path = 4 [(validate.rules).message.required = true];
model.ApplicationKind kind = 5 [(validate.rules).enum.defined_only = true];
string platform_provider = 9;
map<string, model.DeployTargets> deploy_targets_by_plugin = 10 [(validate.rules).map.min_pairs = 1];
string description = 7;
map<string, string> labels = 8;
}
Expand All @@ -379,6 +380,7 @@ message UpdateApplicationRequest {
string piped_id = 4 [(validate.rules).string.min_len = 1];
model.ApplicationKind kind = 6 [(validate.rules).enum.defined_only = true];
string platform_provider = 9;
map<string, model.DeployTargets> deploy_targets_by_plugin = 10 [(validate.rules).map.min_pairs = 1];
string config_filename = 8;
}

Expand Down
5 changes: 3 additions & 2 deletions pkg/datastore/applicationstore.go
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ type ApplicationStore interface {
UpdateConfigFilename(ctx context.Context, id, configFilename string) error
UpdateDeployingStatus(ctx context.Context, id string, deploying bool) error
UpdateBasicInfo(ctx context.Context, id, name, description string, labels map[string]string) error
UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string) error
UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string, deployTargetsByPlugin map[string]*model.DeployTargets) error
UpdatePlatformProvider(ctx context.Context, id string, provider string) error
UpdateDeployTargets(ctx context.Context, id string, dp map[string]*model.DeployTargets) error
}
Expand Down Expand Up @@ -362,11 +362,12 @@ func (s *applicationStore) UpdateBasicInfo(ctx context.Context, id, name, descri
})
}

func (s *applicationStore) UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string) error {
func (s *applicationStore) UpdateConfiguration(ctx context.Context, id, pipedID, platformProvider, configFilename string, deployTargetsByPlugin map[string]*model.DeployTargets) error {
return s.update(ctx, id, func(app *model.Application) error {
app.PipedId = pipedID
app.PlatformProvider = platformProvider
app.CloudProvider = platformProvider
app.DeployTargetsByPlugin = deployTargetsByPlugin
app.GitPath.ConfigFilename = configFilename
return nil
})
Expand Down
8 changes: 4 additions & 4 deletions pkg/datastore/datastoretest/datastore.mock.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions web/api_client/service_pb.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -499,6 +499,9 @@ export class AddApplicationRequest extends jspb.Message {
getPlatformProvider(): string;
setPlatformProvider(value: string): AddApplicationRequest;

getDeployTargetsByPluginMap(): jspb.Map<string, pkg_model_deployment_pb.DeployTargets>;
clearDeployTargetsByPluginMap(): AddApplicationRequest;

getDescription(): string;
setDescription(value: string): AddApplicationRequest;

Expand All @@ -520,6 +523,7 @@ export namespace AddApplicationRequest {
gitPath?: pkg_model_common_pb.ApplicationGitPath.AsObject,
kind: pkg_model_common_pb.ApplicationKind,
platformProvider: string,
deployTargetsByPluginMap: Array<[string, pkg_model_deployment_pb.DeployTargets.AsObject]>,
description: string,
labelsMap: Array<[string, string]>,
}
Expand Down Expand Up @@ -559,6 +563,9 @@ export class UpdateApplicationRequest extends jspb.Message {
getPlatformProvider(): string;
setPlatformProvider(value: string): UpdateApplicationRequest;

getDeployTargetsByPluginMap(): jspb.Map<string, pkg_model_deployment_pb.DeployTargets>;
clearDeployTargetsByPluginMap(): UpdateApplicationRequest;

getConfigFilename(): string;
setConfigFilename(value: string): UpdateApplicationRequest;

Expand All @@ -577,6 +584,7 @@ export namespace UpdateApplicationRequest {
pipedId: string,
kind: pkg_model_common_pb.ApplicationKind,
platformProvider: string,
deployTargetsByPluginMap: Array<[string, pkg_model_deployment_pb.DeployTargets.AsObject]>,
configFilename: string,
}
}
Expand Down
Loading

0 comments on commit 7d2818a

Please sign in to comment.