MCPcopy
hub / github.com/cloudfoundry/cli / Execute

Method Execute

command/v7/update_stack_command.go:23–84  ·  view source on GitHub ↗
(args []string)

Source from the content-addressed store, hash-verified

21}
22
23func (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

Callers

nothing calls this directly

Calls 12

MinimumCCAPIVersionCheckFunction · 0.92
APIVersionMethod · 0.65
CheckTargetMethod · 0.65
GetCurrentUserMethod · 0.65
DisplayTextWithFlavorMethod · 0.65
GetStackByNameMethod · 0.65
DisplayWarningsMethod · 0.65
UpdateStackMethod · 0.65
DisplayOKMethod · 0.65
DisplayNewlineMethod · 0.65
TranslateTextMethod · 0.65
DisplayKeyValueTableMethod · 0.65

Tested by

no test coverage detected