From bf6136ba0a4d4ee75f40a012d520102452d949d3 Mon Sep 17 00:00:00 2001 From: Steven Cleve <107827476+stevencl840@users.noreply.github.com> Date: Thu, 13 Nov 2025 15:09:40 +1100 Subject: [PATCH 1/3] Modify code to only output json if using json output --- .../deprovision-environment/deprovision_environment.go | 4 ++-- .../deprovision-project/deprovision_project.go | 7 +++---- pkg/cmd/ephemeralenvironment/util/util.go | 6 +++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/pkg/cmd/ephemeralenvironment/deprovision-environment/deprovision_environment.go b/pkg/cmd/ephemeralenvironment/deprovision-environment/deprovision_environment.go index f1662c1f..00ab86c6 100644 --- a/pkg/cmd/ephemeralenvironment/deprovision-environment/deprovision_environment.go +++ b/pkg/cmd/ephemeralenvironment/deprovision-environment/deprovision_environment.go @@ -105,9 +105,9 @@ func DeprovisionEnvironmentRun(deprovisionEnvironmentOptions *DeprovisionEnviron return err } - command.Printf("Deprovisioning ephemeral environment '%s' with id '%s'...\n", deprovisionEnvironmentOptions.Name.Value, environment.ID) + message := fmt.Sprintf("Deprovisioning ephemeral environment '%s' with id '%s'...\n", deprovisionEnvironmentOptions.Name.Value, environment.ID) - util.OutputDeprovisionResult(command, response.DeprovisioningRuns) + util.OutputDeprovisionResult(message, command, response.DeprovisioningRuns) return nil } diff --git a/pkg/cmd/ephemeralenvironment/deprovision-project/deprovision_project.go b/pkg/cmd/ephemeralenvironment/deprovision-project/deprovision_project.go index 28fffb36..d65482ac 100644 --- a/pkg/cmd/ephemeralenvironment/deprovision-project/deprovision_project.go +++ b/pkg/cmd/ephemeralenvironment/deprovision-project/deprovision_project.go @@ -152,8 +152,6 @@ func DeprovisionEphemeralEnvironmentProject(cmd *cobra.Command, opts *Deprovisio environmentId := environmentResource.ID - cmd.Printf("Deprovisioning ephemeral environment '%s' with id '%s' for project '%s'...\n", opts.Name.Value, environmentId, opts.Project.Value) - projectId := projectResource.GetID() deprovisionedEnv, err := ephemeralenvironments.DeprovisionForProject(opts.Client, opts.Space.ID, environmentId, projectId) @@ -161,14 +159,15 @@ func DeprovisionEphemeralEnvironmentProject(cmd *cobra.Command, opts *Deprovisio return err } - cmd.Printf("\nSuccessfully deprovisioned ephemeral environment for project '%s' with id '%s'.\n", opts.Project.Value, environmentId) runs := []ephemeralenvironments.DeprovisioningRunbookRun{} if deprovisionedEnv.DeprovisioningRun.RunbookRunID != "" { runs = append(runs, deprovisionedEnv.DeprovisioningRun) } - util.OutputDeprovisionResult(cmd, runs) + var message = fmt.Sprintf("Deprovisioning ephemeral environment '%s' with id '%s' for project '%s'...\n", opts.Name.Value, environmentId, opts.Project.Value) + + util.OutputDeprovisionResult(message, cmd, runs) return nil } diff --git a/pkg/cmd/ephemeralenvironment/util/util.go b/pkg/cmd/ephemeralenvironment/util/util.go index e9e3a670..456ddbda 100644 --- a/pkg/cmd/ephemeralenvironment/util/util.go +++ b/pkg/cmd/ephemeralenvironment/util/util.go @@ -40,7 +40,7 @@ func GetByName(client *client.Client, name string, spaceID string) (*ephemeralen } } -func OutputDeprovisionResult(command *cobra.Command, deprovisioningRuns []ephemeralenvironments.DeprovisioningRunbookRun) { +func OutputDeprovisionResult(message string, command *cobra.Command, deprovisioningRuns []ephemeralenvironments.DeprovisioningRunbookRun) { outputFormat, err := command.Flags().GetString(constants.FlagOutputFormat) if err != nil { outputFormat = constants.OutputFormatTable @@ -52,6 +52,8 @@ func OutputDeprovisionResult(command *cobra.Command, deprovisioningRuns []epheme switch outputFormat { case constants.OutputFormatBasic: + command.Print(message) + if len(deprovisioningRuns) == 0 { command.Println("Environment deprovisioned without running a runbook.") } else { @@ -68,6 +70,8 @@ func OutputDeprovisionResult(command *cobra.Command, deprovisioningRuns []epheme command.Println() } default: + command.Print(message) + if len(deprovisioningRuns) == 0 { command.Println("Environment deprovisioned without running a runbook.") } else { From 2e927fe021cc5d39c3af18bbb61b25e10bbbc2f4 Mon Sep 17 00:00:00 2001 From: Steven Cleve <107827476+stevencl840@users.noreply.github.com> Date: Thu, 13 Nov 2025 15:35:28 +1100 Subject: [PATCH 2/3] Added automation command generation --- .../deprovision-environment/deprovision_environment.go | 5 +++++ .../deprovision-project/deprovision_project.go | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pkg/cmd/ephemeralenvironment/deprovision-environment/deprovision_environment.go b/pkg/cmd/ephemeralenvironment/deprovision-environment/deprovision_environment.go index 00ab86c6..08c28479 100644 --- a/pkg/cmd/ephemeralenvironment/deprovision-environment/deprovision_environment.go +++ b/pkg/cmd/ephemeralenvironment/deprovision-environment/deprovision_environment.go @@ -109,6 +109,11 @@ func DeprovisionEnvironmentRun(deprovisionEnvironmentOptions *DeprovisionEnviron util.OutputDeprovisionResult(message, command, response.DeprovisioningRuns) + if !deprovisionEnvironmentOptions.NoPrompt { + autoCmd := flag.GenerateAutomationCmd(deprovisionEnvironmentOptions.CmdPath, deprovisionEnvironmentOptions.Name) + fmt.Fprintf(deprovisionEnvironmentOptions.Out, "\nAutomation Command: %s\n", autoCmd) + } + return nil } diff --git a/pkg/cmd/ephemeralenvironment/deprovision-project/deprovision_project.go b/pkg/cmd/ephemeralenvironment/deprovision-project/deprovision_project.go index d65482ac..b13b1c16 100644 --- a/pkg/cmd/ephemeralenvironment/deprovision-project/deprovision_project.go +++ b/pkg/cmd/ephemeralenvironment/deprovision-project/deprovision_project.go @@ -165,10 +165,15 @@ func DeprovisionEphemeralEnvironmentProject(cmd *cobra.Command, opts *Deprovisio runs = append(runs, deprovisionedEnv.DeprovisioningRun) } - var message = fmt.Sprintf("Deprovisioning ephemeral environment '%s' with id '%s' for project '%s'...\n", opts.Name.Value, environmentId, opts.Project.Value) + message := fmt.Sprintf("Deprovisioning ephemeral environment '%s' with id '%s' for project '%s'...\n", opts.Name.Value, environmentId, opts.Project.Value) util.OutputDeprovisionResult(message, cmd, runs) + if !opts.NoPrompt { + autoCmd := flag.GenerateAutomationCmd(opts.CmdPath, opts.Name, opts.Project) + fmt.Fprintf(opts.Out, "\nAutomation Command: %s\n", autoCmd) + } + return nil } From 47bb781d932cb8e807fbdc664171a58b27cf113f Mon Sep 17 00:00:00 2001 From: Steven Cleve <107827476+stevencl840@users.noreply.github.com> Date: Thu, 13 Nov 2025 15:43:42 +1100 Subject: [PATCH 3/3] Fix output --- .../deprovision-environment/deprovision_environment.go | 2 +- .../deprovision-project/deprovision_project.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/cmd/ephemeralenvironment/deprovision-environment/deprovision_environment.go b/pkg/cmd/ephemeralenvironment/deprovision-environment/deprovision_environment.go index 08c28479..68477b4b 100644 --- a/pkg/cmd/ephemeralenvironment/deprovision-environment/deprovision_environment.go +++ b/pkg/cmd/ephemeralenvironment/deprovision-environment/deprovision_environment.go @@ -111,7 +111,7 @@ func DeprovisionEnvironmentRun(deprovisionEnvironmentOptions *DeprovisionEnviron if !deprovisionEnvironmentOptions.NoPrompt { autoCmd := flag.GenerateAutomationCmd(deprovisionEnvironmentOptions.CmdPath, deprovisionEnvironmentOptions.Name) - fmt.Fprintf(deprovisionEnvironmentOptions.Out, "\nAutomation Command: %s\n", autoCmd) + fmt.Fprintf(command.OutOrStdout(), "\nAutomation Command: %s\n", autoCmd) } return nil diff --git a/pkg/cmd/ephemeralenvironment/deprovision-project/deprovision_project.go b/pkg/cmd/ephemeralenvironment/deprovision-project/deprovision_project.go index b13b1c16..b3e56fa3 100644 --- a/pkg/cmd/ephemeralenvironment/deprovision-project/deprovision_project.go +++ b/pkg/cmd/ephemeralenvironment/deprovision-project/deprovision_project.go @@ -171,7 +171,7 @@ func DeprovisionEphemeralEnvironmentProject(cmd *cobra.Command, opts *Deprovisio if !opts.NoPrompt { autoCmd := flag.GenerateAutomationCmd(opts.CmdPath, opts.Name, opts.Project) - fmt.Fprintf(opts.Out, "\nAutomation Command: %s\n", autoCmd) + fmt.Fprintf(cmd.OutOrStdout(), "\nAutomation Command: %s\n", autoCmd) } return nil