github.com/DaAlbrecht/cf-cli@v0.0.0-20231128151943-1fe19bb400b9/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 go run github.com/maxbrunsfeld/counterfeiter/v6 . 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  	relatedCommands interface{}         `related_commands:"labels, set-label"`
    20  	BuildpackStack  string              `long:"stack" short:"s" description:"Specify stack to disambiguate buildpacks with the same name"`
    21  	ServiceBroker   string              `long:"broker" short:"b" description:"Specify a service broker to disambiguate service offerings or service plans with the same name."`
    22  	ServiceOffering string              `long:"offering" short:"e" description:"Specify a service offering to disambiguate service plans with the same name."`
    23  
    24  	LabelUnsetter LabelUnsetter
    25  }
    26  
    27  func (cmd *UnsetLabelCommand) Setup(config command.Config, ui command.UI) error {
    28  	err := cmd.BaseCommand.Setup(config, ui)
    29  	if err != nil {
    30  		return err
    31  	}
    32  
    33  	cmd.LabelUnsetter = &LabelUpdater{
    34  		UI:          ui,
    35  		Config:      config,
    36  		SharedActor: cmd.SharedActor,
    37  		Actor:       cmd.Actor,
    38  		Action:      Unset,
    39  	}
    40  	return nil
    41  }
    42  
    43  func (cmd UnsetLabelCommand) Execute(args []string) error {
    44  	labels := make(map[string]types.NullString)
    45  	for _, value := range cmd.RequiredArgs.LabelKeys {
    46  		labels[value] = types.NewNullString()
    47  	}
    48  
    49  	targetResource := TargetResource{
    50  		ResourceType:    cmd.RequiredArgs.ResourceType,
    51  		ResourceName:    cmd.RequiredArgs.ResourceName,
    52  		BuildpackStack:  cmd.BuildpackStack,
    53  		ServiceBroker:   cmd.ServiceBroker,
    54  		ServiceOffering: cmd.ServiceOffering,
    55  	}
    56  	return cmd.LabelUnsetter.Execute(targetResource, labels)
    57  }
    58  
    59  func (cmd UnsetLabelCommand) Usage() string {
    60  	return `CF_NAME unset-label RESOURCE RESOURCE_NAME KEY...`
    61  }
    62  
    63  func (cmd UnsetLabelCommand) Examples() string {
    64  	return `
    65  cf unset-label app dora ci_signature_sha2
    66  cf unset-label org business pci public-facing
    67  cf unset-label buildpack go_buildpack go -s cflinuxfs3`
    68  }
    69  
    70  func (cmd UnsetLabelCommand) Resources() string {
    71  	return `
    72  app
    73  buildpack
    74  domain
    75  org
    76  route
    77  service-broker
    78  service-instance
    79  service-offering
    80  service-plan
    81  space
    82  stack`
    83  }