github.com/LukasHeimann/cloudfoundrycli/v8@v8.4.4/command/v7/rename_service_command.go (about) 1 package v7 2 3 import ( 4 "github.com/LukasHeimann/cloudfoundrycli/v8/actor/actionerror" 5 "github.com/LukasHeimann/cloudfoundrycli/v8/command/flag" 6 "github.com/LukasHeimann/cloudfoundrycli/v8/command/translatableerror" 7 "strings" 8 ) 9 10 type RenameServiceCommand struct { 11 BaseCommand 12 RequiredArgs flag.RenameServiceArgs `positional-args:"yes"` 13 relatedCommands interface{} `related_commands:"services, update-service"` 14 } 15 16 func (cmd RenameServiceCommand) Execute(args []string) error { 17 if err := cmd.SharedActor.CheckTarget(true, true); err != nil { 18 return err 19 } 20 21 cmd.RequiredArgs.ServiceInstance = strings.TrimSpace(cmd.RequiredArgs.ServiceInstance) 22 cmd.RequiredArgs.NewServiceInstanceName = strings.TrimSpace(cmd.RequiredArgs.NewServiceInstanceName) 23 24 if err := cmd.displayMessage(); err != nil { 25 return err 26 } 27 28 warnings, err := cmd.Actor.RenameServiceInstance( 29 cmd.RequiredArgs.ServiceInstance, 30 cmd.Config.TargetedSpace().GUID, 31 cmd.RequiredArgs.NewServiceInstanceName, 32 ) 33 cmd.UI.DisplayWarnings(warnings) 34 35 switch e := err.(type) { 36 case nil: 37 cmd.UI.DisplayOK() 38 return nil 39 case actionerror.ServiceInstanceNotFoundError: 40 cmd.UI.DisplayText("TIP: Use 'cf services' to view all services in this org and space.") 41 return translatableerror.ServiceInstanceNotFoundError{Name: e.Name} 42 default: 43 return err 44 } 45 } 46 47 func (cmd RenameServiceCommand) Usage() string { 48 return "cf rename-service SERVICE_INSTANCE NEW_SERVICE_INSTANCE" 49 } 50 51 func (cmd RenameServiceCommand) displayMessage() error { 52 user, err := cmd.Actor.GetCurrentUser() 53 if err != nil { 54 return err 55 } 56 57 cmd.UI.DisplayTextWithFlavor("Renaming service {{.OriginalName}} to {{.NewName}} in org {{.Org}} / space {{.Space}} as {{.User}}...", map[string]interface{}{ 58 "OriginalName": cmd.RequiredArgs.ServiceInstance, 59 "NewName": cmd.RequiredArgs.NewServiceInstanceName, 60 "Org": cmd.Config.TargetedOrganization().Name, 61 "Space": cmd.Config.TargetedSpace().Name, 62 "User": user.Name, 63 }) 64 65 return nil 66 }