(args []string)
| 21 | } |
| 22 | |
| 23 | func (cmd UpdateStackCommand) Execute(args []string) error { |
| 24 | err := command.MinimumCCAPIVersionCheck(cmd.Config.APIVersion(), ccversion.MinVersionUpdateStack) |
| 25 | if err != nil { |
| 26 | return err |
| 27 | } |
| 28 | |
| 29 | err = cmd.SharedActor.CheckTarget(false, false) |
| 30 | if err != nil { |
| 31 | return err |
| 32 | } |
| 33 | |
| 34 | user, err := cmd.Actor.GetCurrentUser() |
| 35 | if err != nil { |
| 36 | return err |
| 37 | } |
| 38 | |
| 39 | // Validate and capitalize the state |
| 40 | stateValue := strings.ToUpper(cmd.State) |
| 41 | |
| 42 | // Validate against known states |
| 43 | if !slices.Contains(resources.ValidStackStates, stateValue) { |
| 44 | return invalidStackStateError{State: cmd.State} |
| 45 | } |
| 46 | |
| 47 | cmd.UI.DisplayTextWithFlavor("Updating stack {{.StackName}} as {{.Username}}...", map[string]interface{}{ |
| 48 | "StackName": cmd.RequiredArgs.StackName, |
| 49 | "Username": user.Name, |
| 50 | }) |
| 51 | |
| 52 | // Get the stack to find its GUID |
| 53 | stack, warnings, err := cmd.Actor.GetStackByName(cmd.RequiredArgs.StackName) |
| 54 | cmd.UI.DisplayWarnings(warnings) |
| 55 | if err != nil { |
| 56 | return err |
| 57 | } |
| 58 | |
| 59 | // Update the stack |
| 60 | updatedStack, warnings, err := cmd.Actor.UpdateStack(stack.GUID, stateValue, cmd.Reason) |
| 61 | cmd.UI.DisplayWarnings(warnings) |
| 62 | if err != nil { |
| 63 | return err |
| 64 | } |
| 65 | |
| 66 | cmd.UI.DisplayOK() |
| 67 | cmd.UI.DisplayNewline() |
| 68 | |
| 69 | // Display the updated stack info |
| 70 | displayTable := [][]string{ |
| 71 | {cmd.UI.TranslateText("name:"), updatedStack.Name}, |
| 72 | {cmd.UI.TranslateText("description:"), updatedStack.Description}, |
| 73 | {cmd.UI.TranslateText("state:"), updatedStack.State}, |
| 74 | } |
| 75 | |
| 76 | // Add reason whenever state is not ACTIVE |
| 77 | if updatedStack.State != resources.StackStateActive { |
| 78 | displayTable = append(displayTable, []string{cmd.UI.TranslateText("reason:"), updatedStack.StateReason}) |
| 79 | } |
| 80 |
nothing calls this directly
no test coverage detected