github.com/orange-cloudfoundry/cli@v7.1.0+incompatible/command/v7/unset_label_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/types"
     7  )
     8  
     9  //go:generate counterfeiter . LabelUnsetter
    10  
    11  type LabelUnsetter interface {
    12  	Execute(resource TargetResource, labels map[string]types.NullString) error
    13  }
    14  
    15  type UnsetLabelCommand struct {
    16  	BaseCommand
    17  
    18  	RequiredArgs    flag.UnsetLabelArgs `positional-args:"yes"`
    19  	usage           interface{}         `usage:"CF_NAME unset-label RESOURCE RESOURCE_NAME KEY...\n\nEXAMPLES:\n   cf unset-label app dora ci_signature_sha2\n   cf unset-label org business pci public-facing\n   cf unset-label buildpack go_buildpack go -s cflinuxfs3\n\nRESOURCES:\n   app\n   buildpack\n   domain\n   org\n   route\n   service-broker\n   service-offering\n   service-plan\n   space\n   stack"`
    20  	relatedCommands interface{}         `related_commands:"labels, set-label"`
    21  	BuildpackStack  string              `long:"stack" short:"s" description:"Specify stack to disambiguate buildpacks with the same name"`
    22  	ServiceBroker   string              `long:"broker" short:"b" description:"Specify a service broker to disambiguate service offerings or service plans with the same name."`
    23  	ServiceOffering string              `long:"offering" short:"e" description:"Specify a service offering to disambiguate service plans with the same name."`
    24  
    25  	LabelUnsetter LabelUnsetter
    26  }
    27  
    28  func (cmd *UnsetLabelCommand) Setup(config command.Config, ui command.UI) error {
    29  	err := cmd.BaseCommand.Setup(config, ui)
    30  	if err != nil {
    31  		return err
    32  	}
    33  
    34  	cmd.LabelUnsetter = &LabelUpdater{
    35  		UI:          ui,
    36  		Config:      config,
    37  		SharedActor: cmd.SharedActor,
    38  		Actor:       cmd.Actor,
    39  		Action:      Unset,
    40  	}
    41  	return nil
    42  }
    43  
    44  func (cmd UnsetLabelCommand) Execute(args []string) error {
    45  	labels := make(map[string]types.NullString)
    46  	for _, value := range cmd.RequiredArgs.LabelKeys {
    47  		labels[value] = types.NewNullString()
    48  	}
    49  
    50  	targetResource := TargetResource{
    51  		ResourceType:    cmd.RequiredArgs.ResourceType,
    52  		ResourceName:    cmd.RequiredArgs.ResourceName,
    53  		BuildpackStack:  cmd.BuildpackStack,
    54  		ServiceBroker:   cmd.ServiceBroker,
    55  		ServiceOffering: cmd.ServiceOffering,
    56  	}
    57  	return cmd.LabelUnsetter.Execute(targetResource, labels)
    58  }