github.com/wanddynosios/cli/v8@v8.7.9-0.20240221182337-1a92e3a7017f/command/v7/update_service_broker_command.go (about)

     1  package v7
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/command"
     5  	"code.cloudfoundry.org/cli/command/flag"
     6  	"code.cloudfoundry.org/cli/resources"
     7  )
     8  
     9  type UpdateServiceBrokerCommand struct {
    10  	BaseCommand
    11  
    12  	PositionalArgs  flag.ServiceBrokerArgs `positional-args:"yes"`
    13  	usage           any                    `usage:"CF_NAME update-service-broker SERVICE_BROKER USERNAME PASSWORD URL\n   CF_NAME update-service-broker SERVICE_BROKER USERNAME URL (omit password to specify interactively or via environment variable)\n\nWARNING:\n   Providing your password as a command line option is highly discouraged\n   Your password may be visible to others and may be recorded in your shell history"`
    14  	relatedCommands any                    `related_commands:"rename-service-broker, service-brokers"`
    15  	envPassword     any                    `environmentName:"CF_BROKER_PASSWORD" environmentDescription:"Password associated with user. Overridden if PASSWORD argument is provided" environmentDefault:"password"`
    16  }
    17  
    18  func (cmd UpdateServiceBrokerCommand) Execute(args []string) error {
    19  	if err := cmd.SharedActor.CheckTarget(false, false); err != nil {
    20  		return err
    21  	}
    22  
    23  	brokerName, username, password, url, err := promptUserForBrokerPasswordIfRequired(cmd.PositionalArgs, cmd.UI)
    24  	if err != nil {
    25  		return err
    26  	}
    27  
    28  	serviceBroker, warnings, err := cmd.Actor.GetServiceBrokerByName(brokerName)
    29  	cmd.UI.DisplayWarnings(warnings)
    30  	if err != nil {
    31  		return err
    32  	}
    33  
    34  	user, err := cmd.Actor.GetCurrentUser()
    35  	if err != nil {
    36  		return err
    37  	}
    38  
    39  	return updateServiceBroker(cmd.UI, cmd.Actor, user.Name, serviceBroker.GUID, brokerName, username, password, url)
    40  }
    41  
    42  func updateServiceBroker(ui command.UI, actor Actor, user, brokerGUID, brokerName, username, password, url string) error {
    43  	ui.DisplayTextWithFlavor(
    44  		"Updating service broker {{.ServiceBroker}} as {{.Username}}...",
    45  		map[string]any{
    46  			"Username":      user,
    47  			"ServiceBroker": brokerName,
    48  		},
    49  	)
    50  
    51  	warnings, err := actor.UpdateServiceBroker(
    52  		brokerGUID,
    53  		resources.ServiceBroker{
    54  			Username: username,
    55  			Password: password,
    56  			URL:      url,
    57  		},
    58  	)
    59  	ui.DisplayWarnings(warnings)
    60  	if err != nil {
    61  		return err
    62  	}
    63  
    64  	ui.DisplayOK()
    65  
    66  	return nil
    67  }