github.com/loafoe/cli@v7.1.0+incompatible/command/v7/stop_command.go (about) 1 package v7 2 3 import ( 4 "code.cloudfoundry.org/cli/command/flag" 5 ) 6 7 type StopCommand struct { 8 BaseCommand 9 10 RequiredArgs flag.AppName `positional-args:"yes"` 11 usage interface{} `usage:"CF_NAME stop APP_NAME"` 12 relatedCommands interface{} `related_commands:"restart, scale, start"` 13 } 14 15 func (cmd StopCommand) Execute(args []string) error { 16 err := cmd.SharedActor.CheckTarget(true, true) 17 if err != nil { 18 return err 19 } 20 21 user, err := cmd.Config.CurrentUser() 22 if err != nil { 23 return err 24 } 25 26 app, warnings, err := cmd.Actor.GetApplicationByNameAndSpace(cmd.RequiredArgs.AppName, cmd.Config.TargetedSpace().GUID) 27 cmd.UI.DisplayWarnings(warnings) 28 if err != nil { 29 return err 30 } 31 32 if !app.Started() { 33 cmd.UI.DisplayTextWithFlavor("App {{.AppName}} is already stopped.", 34 map[string]interface{}{ 35 "AppName": cmd.RequiredArgs.AppName, 36 }) 37 cmd.UI.DisplayOK() 38 return nil 39 } 40 41 cmd.UI.DisplayTextWithFlavor("Stopping app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.Username}}...", map[string]interface{}{ 42 "AppName": cmd.RequiredArgs.AppName, 43 "OrgName": cmd.Config.TargetedOrganization().Name, 44 "SpaceName": cmd.Config.TargetedSpace().Name, 45 "Username": user.Name, 46 }) 47 warnings, err = cmd.Actor.StopApplication(app.GUID) 48 49 cmd.UI.DisplayWarnings(warnings) 50 if err != nil { 51 return err 52 } 53 54 cmd.UI.DisplayOK() 55 56 return nil 57 }