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 }