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

Method Execute

command/v7/rollback_command.go:45–148  ·  view source on GitHub ↗
(args []string)

Source from the content-addressed store, hash-verified

43}
44
45func (cmd RollbackCommand) Execute(args []string) error {
46 targetRevision := int(cmd.Version.Value)
47 err := cmd.SharedActor.CheckTarget(true, true)
48 if err != nil {
49 return err
50 }
51
52 user, err := cmd.Actor.GetCurrentUser()
53 if err != nil {
54 return err
55 }
56
57 err = cmd.ValidateFlags()
58 if err != nil {
59 return err
60 }
61
62 app, warnings, err := cmd.Actor.GetApplicationByNameAndSpace(cmd.RequiredArgs.AppName, cmd.Config.TargetedSpace().GUID)
63 cmd.UI.DisplayWarnings(warnings)
64 if err != nil {
65 return err
66 }
67
68 revisions, warnings, err := cmd.Actor.GetRevisionsByApplicationNameAndSpace(app.Name, cmd.Config.TargetedSpace().GUID)
69 cmd.UI.DisplayWarnings(warnings)
70 if err != nil {
71 return err
72 }
73
74 if len(revisions) == 0 {
75 return errors.New(fmt.Sprintf("No revisions for app %s", cmd.RequiredArgs.AppName))
76 }
77
78 revision, warnings, err := cmd.Actor.GetRevisionByApplicationAndVersion(app.GUID, targetRevision)
79 cmd.UI.DisplayWarnings(warnings)
80 if err != nil {
81 return err
82 }
83
84 // TODO Localization?
85 if !cmd.Force {
86 cmd.UI.DisplayTextWithFlavor("Rolling '{{.AppName}}' back to revision '{{.TargetRevision}}' will create a new revision. The new revision will use the settings from revision '{{.TargetRevision}}'.", map[string]interface{}{
87 "AppName": cmd.RequiredArgs.AppName,
88 "TargetRevision": targetRevision,
89 })
90
91 prompt := "Are you sure you want to continue?"
92 response, promptErr := cmd.UI.DisplayBoolPrompt(false, prompt, nil)
93
94 if promptErr != nil {
95 return promptErr
96 }
97
98 if !response {
99 cmd.UI.DisplayText("App '{{.AppName}}' has not been rolled back to revision '{{.TargetRevision}}'.", map[string]interface{}{
100 "AppName": cmd.RequiredArgs.AppName,
101 "TargetRevision": targetRevision,
102 })

Callers

nothing calls this directly

Calls 15

ValidateFlagsMethod · 0.95
NewFunction · 0.92
CheckTargetMethod · 0.65
GetCurrentUserMethod · 0.65
TargetedSpaceMethod · 0.65
DisplayWarningsMethod · 0.65
DisplayTextWithFlavorMethod · 0.65
DisplayBoolPromptMethod · 0.65
DisplayTextMethod · 0.65

Tested by

no test coverage detected