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  }