github.com/LukasHeimann/cloudfoundrycli/v8@v8.4.4/command/v7/service_key_command.go (about)

     1  package v7
     2  
     3  import (
     4  	"github.com/LukasHeimann/cloudfoundrycli/v8/command/flag"
     5  )
     6  
     7  type ServiceKeyCommand struct {
     8  	BaseCommand
     9  
    10  	RequiredArgs flag.ServiceInstanceKey `positional-args:"yes"`
    11  	GUID         bool                    `long:"guid" description:"Retrieve and display the given service-key's guid. All other output is suppressed."`
    12  }
    13  
    14  func (cmd ServiceKeyCommand) Execute(args []string) error {
    15  	if err := cmd.SharedActor.CheckTarget(true, true); err != nil {
    16  		return err
    17  	}
    18  
    19  	switch cmd.GUID {
    20  	case true:
    21  		return cmd.guid()
    22  	default:
    23  		return cmd.details()
    24  	}
    25  }
    26  
    27  func (cmd ServiceKeyCommand) Usage() string {
    28  	return `CF_NAME service-key SERVICE_INSTANCE SERVICE_KEY`
    29  }
    30  
    31  func (cmd ServiceKeyCommand) Examples() string {
    32  	return `CF_NAME service-key mydb mykey`
    33  }
    34  
    35  func (cmd ServiceKeyCommand) guid() error {
    36  	key, warnings, err := cmd.Actor.GetServiceKeyByServiceInstanceAndName(
    37  		cmd.RequiredArgs.ServiceInstance,
    38  		cmd.RequiredArgs.ServiceKey,
    39  		cmd.Config.TargetedSpace().GUID,
    40  	)
    41  	switch err.(type) {
    42  	case nil:
    43  		cmd.UI.DisplayText(key.GUID)
    44  		return nil
    45  	default:
    46  		cmd.UI.DisplayWarnings(warnings)
    47  		return err
    48  	}
    49  }
    50  
    51  func (cmd ServiceKeyCommand) details() error {
    52  	user, err := cmd.Actor.GetCurrentUser()
    53  	if err != nil {
    54  		return err
    55  	}
    56  
    57  	cmd.UI.DisplayTextWithFlavor("Getting key {{.KeyName}} for service instance {{.ServiceInstanceName}} as {{.UserName}}...", map[string]interface{}{
    58  		"ServiceInstanceName": cmd.RequiredArgs.ServiceInstance,
    59  		"KeyName":             cmd.RequiredArgs.ServiceKey,
    60  		"UserName":            user.Name,
    61  	})
    62  
    63  	details, warnings, err := cmd.Actor.GetServiceKeyDetailsByServiceInstanceAndName(
    64  		cmd.RequiredArgs.ServiceInstance,
    65  		cmd.RequiredArgs.ServiceKey,
    66  		cmd.Config.TargetedSpace().GUID,
    67  	)
    68  	cmd.UI.DisplayWarnings(warnings)
    69  	if err != nil {
    70  		return err
    71  	}
    72  
    73  	cmd.UI.DisplayNewline()
    74  
    75  	err = cmd.UI.DisplayJSON("", details)
    76  	if err != nil {
    77  		return err
    78  	}
    79  
    80  	return nil
    81  }