From 901c44be4c4348a15fc1c8183aacf145161ca3e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hellmann?= Date: Wed, 10 Apr 2024 20:43:51 +0200 Subject: [PATCH] z0 - choose zerops yaml setup --- go.mod | 2 +- go.sum | 2 ++ src/cmd/serviceDeploy.go | 10 ++++++++-- src/cmd/servicePush.go | 10 ++++++++-- src/cmd/servicePushDeployShared.go | 2 ++ src/i18n/en.go | 5 +++-- src/i18n/i18n.go | 5 +++-- 7 files changed, 27 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index b6fc7716..df242736 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module github.com/zeropsio/zcli go 1.21 -require github.com/zeropsio/zerops-go v1.0.7 +require github.com/zeropsio/zerops-go v1.0.8 require ( github.com/charmbracelet/bubbles v0.18.0 diff --git a/go.sum b/go.sum index 7c90a806..afcc5c3c 100644 --- a/go.sum +++ b/go.sum @@ -104,6 +104,8 @@ github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSW github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/zeropsio/zerops-go v1.0.7 h1:vtiaSSu3TrC18BlOxH5/PydUk1+BNDjQhhw6S80SCPE= github.com/zeropsio/zerops-go v1.0.7/go.mod h1:Nuqf1xWt53IRLyVoXgR4hF4ICc9jlfOfQgnN3ZhJR3E= +github.com/zeropsio/zerops-go v1.0.8 h1:YhSS7+cW1fIRUE1tD5hpGlD3+opxzvI5lfsONgwdn28= +github.com/zeropsio/zerops-go v1.0.8/go.mod h1:Nuqf1xWt53IRLyVoXgR4hF4ICc9jlfOfQgnN3ZhJR3E= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= diff --git a/src/cmd/serviceDeploy.go b/src/cmd/serviceDeploy.go index f6e8a514..6c4a8240 100644 --- a/src/cmd/serviceDeploy.go +++ b/src/cmd/serviceDeploy.go @@ -30,6 +30,7 @@ func serviceDeployCmd() *cmdBuilder.Cmd { StringFlag("archiveFilePath", "", i18n.T(i18n.BuildArchiveFilePath)). StringFlag("versionName", "", i18n.T(i18n.BuildVersionName)). StringFlag("zeropsYamlPath", "", i18n.T(i18n.ZeropsYamlLocation)). + StringFlag("setup", "", i18n.T(i18n.ZeropsYamlSetup)). BoolFlag("deployGitFolder", false, i18n.T(i18n.ZeropsYamlLocation)). HelpFlag(i18n.T(i18n.CmdHelpServiceDeploy)). LoggedUserRunFunc(func(ctx context.Context, cmdData *cmdBuilder.LoggedUserCmdData) error { @@ -48,7 +49,11 @@ func serviceDeployCmd() *cmdBuilder.Cmd { return err } - err = validateZeropsYamlContent(ctx, cmdData.RestApiClient, cmdData.Service, configContent) + setup := cmdData.Service.Name + if setupParam := cmdData.Params.GetString("setup"); setupParam != "" { + setup = types.NewString(setupParam) + } + err = validateZeropsYamlContent(ctx, cmdData.RestApiClient, cmdData.Service, setup, configContent) if err != nil { return err } @@ -155,7 +160,8 @@ func serviceDeployCmd() *cmdBuilder.Cmd { Id: appVersion.Id, }, body.PutAppVersionDeploy{ - ZeropsYaml: types.NewMediumTextNull(string(configContent)), + ZeropsYaml: types.NewMediumTextNull(string(configContent)), + ZeropsYamlSetup: setup.StringNull(), }, ) if err != nil { diff --git a/src/cmd/servicePush.go b/src/cmd/servicePush.go index 8e92568e..804fef35 100644 --- a/src/cmd/servicePush.go +++ b/src/cmd/servicePush.go @@ -29,6 +29,7 @@ func servicePushCmd() *cmdBuilder.Cmd { StringFlag("archiveFilePath", "", i18n.T(i18n.BuildArchiveFilePath)). StringFlag("versionName", "", i18n.T(i18n.BuildVersionName)). StringFlag("zeropsYamlPath", "", i18n.T(i18n.ZeropsYamlLocation)). + StringFlag("setup", "", i18n.T(i18n.ZeropsYamlSetup)). BoolFlag("deployGitFolder", false, i18n.T(i18n.UploadGitFolder)). HelpFlag(i18n.T(i18n.CmdHelpPush)). LoggedUserRunFunc(func(ctx context.Context, cmdData *cmdBuilder.LoggedUserCmdData) error { @@ -49,7 +50,11 @@ func servicePushCmd() *cmdBuilder.Cmd { return err } - err = validateZeropsYamlContent(ctx, cmdData.RestApiClient, cmdData.Service, configContent) + setup := cmdData.Service.Name + if setupParam := cmdData.Params.GetString("setup"); setupParam != "" { + setup = types.NewString(setupParam) + } + err = validateZeropsYamlContent(ctx, cmdData.RestApiClient, cmdData.Service, setup, configContent) if err != nil { return err } @@ -148,7 +153,8 @@ func servicePushCmd() *cmdBuilder.Cmd { Id: appVersion.Id, }, body.PutAppVersionBuildAndDeploy{ - ZeropsYaml: types.MediumText(configContent), + ZeropsYaml: types.MediumText(configContent), + ZeropsYamlSetup: setup.StringNull(), }, ) if err != nil { diff --git a/src/cmd/servicePushDeployShared.go b/src/cmd/servicePushDeployShared.go index 9efc1bd3..fbd585ce 100644 --- a/src/cmd/servicePushDeployShared.go +++ b/src/cmd/servicePushDeployShared.go @@ -145,6 +145,7 @@ func validateZeropsYamlContent( ctx context.Context, restApiClient *zeropsRestApiClient.Handler, service *entity.Service, + setup types.String, yamlContent []byte, ) error { resp, err := restApiClient.PostServiceStackZeropsYamlValidation(ctx, body.ZeropsYamlValidation{ @@ -152,6 +153,7 @@ func validateZeropsYamlContent( ServiceStackName: service.Name, ServiceStackTypeId: service.ServiceTypeId, ZeropsYaml: types.NewMediumText(string(yamlContent)), + ZeropsYamlSetup: setup.StringNull(), }) if err != nil { return err diff --git a/src/i18n/en.go b/src/i18n/en.go index a3c3879a..f8791231 100644 --- a/src/i18n/en.go +++ b/src/i18n/en.go @@ -204,6 +204,7 @@ var en = map[string]string{ ServiceIdFlag: "If you have access to more than one service, you must specify the service ID for which the\ncommand is to be executed.", ProjectIdFlag: "If you have access to more than one project, you must specify the project ID for which the\ncommand is to be executed.", VpnAutoDisconnectFlag: "If set, zCLI will automatically disconnect from the VPN if it is already connected.", + ZeropsYamlSetup: "Choose setup to be used from zerops.yml.", // archiveClient ArchClientWorkingDirectory: "working directory: %s", @@ -232,9 +233,9 @@ var en = map[string]string{ VpnCheckingConnectionIsActive: "VPN connection is active", VpnCheckingConnectionIsNotActive: "VPN connection is not active", - //////////// + // ////////// // global // - //////////// + // ////////// ProcessInvalidState: "last command has finished with error, identifier for communication with our support: %s", CliTerminalModeEnvVar: "If enabled provides a rich UI to communicate with a user. Possible values: auto, enabled, disabled. Default value is auto.", diff --git a/src/i18n/i18n.go b/src/i18n/i18n.go index c15a43a9..f982f2ac 100644 --- a/src/i18n/i18n.go +++ b/src/i18n/i18n.go @@ -198,6 +198,7 @@ const ( ServiceIdFlag = "ServiceIdFlag" ProjectIdFlag = "ProjectIdFlag" VpnAutoDisconnectFlag = "VpnAutoDisconnectFlag" + ZeropsYamlSetup = "ZeropsYamlSetup" // archiveClient ArchClientWorkingDirectory = "ArchClientWorkingDirectory" @@ -226,9 +227,9 @@ const ( VpnCheckingConnectionIsActive = "VpnCheckingConnectionIsActive" VpnCheckingConnectionIsNotActive = "VpnCheckingConnectionIsNotActive" - //////////// + // ////////// // global // - //////////// + // ////////// ProcessInvalidState = "ProcessInvalidState" CliTerminalModeEnvVar = "TerminalModeEnv"