github.com/mook-as/cf-cli@v7.0.0-beta.28.0.20200120190804-b91c115fae48+incompatible/command/v7/rename_command.go (about) 1 package v7 2 3 import ( 4 "code.cloudfoundry.org/cli/actor/sharedaction" 5 "code.cloudfoundry.org/cli/actor/v7action" 6 "code.cloudfoundry.org/cli/command" 7 "code.cloudfoundry.org/cli/command/flag" 8 "code.cloudfoundry.org/cli/command/v7/shared" 9 "code.cloudfoundry.org/clock" 10 ) 11 12 //go:generate counterfeiter . RenameActor 13 14 type RenameActor interface { 15 RenameApplicationByNameAndSpaceGUID(oldAppName, newAppName, spaceGUID string) (v7action.Application, v7action.Warnings, error) 16 } 17 18 type RenameCommand struct { 19 RequiredArgs flag.Rename `positional-args:"yes"` 20 usage interface{} `usage:"CF_NAME rename APP_NAME NEW_APP_NAME"` 21 relatedCommands interface{} `related_commands:"apps, delete"` 22 UI command.UI 23 Config command.Config 24 SharedActor command.SharedActor 25 Actor RenameActor 26 } 27 28 func (cmd *RenameCommand) Setup(config command.Config, ui command.UI) error { 29 cmd.Config = config 30 cmd.UI = ui 31 sharedActor := sharedaction.NewActor(config) 32 cmd.SharedActor = sharedActor 33 34 ccClient, uaaClient, err := shared.GetNewClientsAndConnectToCF(config, ui, "") 35 if err != nil { 36 return err 37 } 38 cmd.Actor = v7action.NewActor(ccClient, config, sharedActor, uaaClient, clock.NewClock()) 39 40 return nil 41 } 42 43 func (cmd RenameCommand) Execute(args []string) error { 44 err := cmd.SharedActor.CheckTarget(true, true) 45 if err != nil { 46 return err 47 } 48 user, err := cmd.Config.CurrentUser() 49 if err != nil { 50 return err 51 } 52 oldName, newName := cmd.RequiredArgs.OldAppName, cmd.RequiredArgs.NewAppName 53 cmd.UI.DisplayTextWithFlavor( 54 "Renaming app {{.OldAppName}} to {{.NewAppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.Username}}...", 55 map[string]interface{}{ 56 "OldAppName": oldName, 57 "NewAppName": newName, 58 "Username": user.Name, 59 "OrgName": cmd.Config.TargetedOrganization().Name, 60 "SpaceName": cmd.Config.TargetedSpace().Name, 61 }, 62 ) 63 64 _, warnings, err := cmd.Actor.RenameApplicationByNameAndSpaceGUID(oldName, newName, cmd.Config.TargetedSpace().GUID) 65 cmd.UI.DisplayWarnings(warnings) 66 if err != nil { 67 return err 68 } 69 cmd.UI.DisplayOK() 70 return nil 71 }