github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/cf/commands/servicebroker/rename_service_broker.go (about)

     1  package servicebroker
     2  
     3  import (
     4  	"github.com/cloudfoundry/cli/cf/api"
     5  	"github.com/cloudfoundry/cli/cf/command_registry"
     6  	"github.com/cloudfoundry/cli/cf/configuration/core_config"
     7  	. "github.com/cloudfoundry/cli/cf/i18n"
     8  	"github.com/cloudfoundry/cli/cf/requirements"
     9  	"github.com/cloudfoundry/cli/cf/terminal"
    10  	"github.com/cloudfoundry/cli/flags"
    11  )
    12  
    13  type RenameServiceBroker struct {
    14  	ui     terminal.UI
    15  	config core_config.Reader
    16  	repo   api.ServiceBrokerRepository
    17  }
    18  
    19  func init() {
    20  	command_registry.Register(&RenameServiceBroker{})
    21  }
    22  
    23  func (cmd *RenameServiceBroker) MetaData() command_registry.CommandMetadata {
    24  	return command_registry.CommandMetadata{
    25  		Name:        "rename-service-broker",
    26  		Description: T("Rename a service broker"),
    27  		Usage:       T("CF_NAME rename-service-broker SERVICE_BROKER NEW_SERVICE_BROKER"),
    28  	}
    29  }
    30  
    31  func (cmd *RenameServiceBroker) Requirements(requirementsFactory requirements.Factory, fc flags.FlagContext) (reqs []requirements.Requirement, err error) {
    32  	if len(fc.Args()) != 2 {
    33  		cmd.ui.Failed(T("Incorrect Usage. Requires SERVICE_BROKER, NEW_SERVICE_BROKER as arguments\n\n") + command_registry.Commands.CommandUsage("rename-service-broker"))
    34  	}
    35  
    36  	reqs = append(reqs, requirementsFactory.NewLoginRequirement())
    37  	return
    38  }
    39  
    40  func (cmd *RenameServiceBroker) SetDependency(deps command_registry.Dependency, pluginCall bool) command_registry.Command {
    41  	cmd.ui = deps.Ui
    42  	cmd.config = deps.Config
    43  	cmd.repo = deps.RepoLocator.GetServiceBrokerRepository()
    44  	return cmd
    45  }
    46  
    47  func (cmd *RenameServiceBroker) Execute(c flags.FlagContext) {
    48  	serviceBroker, apiErr := cmd.repo.FindByName(c.Args()[0])
    49  	if apiErr != nil {
    50  		cmd.ui.Failed(apiErr.Error())
    51  		return
    52  	}
    53  
    54  	cmd.ui.Say(T("Renaming service broker {{.OldName}} to {{.NewName}} as {{.Username}}",
    55  		map[string]interface{}{
    56  			"OldName":  terminal.EntityNameColor(serviceBroker.Name),
    57  			"NewName":  terminal.EntityNameColor(c.Args()[1]),
    58  			"Username": terminal.EntityNameColor(cmd.config.Username())}))
    59  
    60  	newName := c.Args()[1]
    61  
    62  	apiErr = cmd.repo.Rename(serviceBroker.Guid, newName)
    63  
    64  	if apiErr != nil {
    65  		cmd.ui.Failed(apiErr.Error())
    66  		return
    67  	}
    68  
    69  	cmd.ui.Ok()
    70  }