github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/command/v7/unset_label_command.go (about) 1 package v7 2 3 import ( 4 "code.cloudfoundry.org/cli/actor/sharedaction" 5 "code.cloudfoundry.org/cli/actor/v7action" 6 "code.cloudfoundry.org/cli/command" 7 "code.cloudfoundry.org/cli/command/flag" 8 "code.cloudfoundry.org/cli/command/v7/shared" 9 "code.cloudfoundry.org/cli/types" 10 11 //"code.cloudfoundry.org/cli/types" 12 "code.cloudfoundry.org/clock" 13 ) 14 15 //go:generate counterfeiter . LabelUnsetter 16 17 type LabelUnsetter interface { 18 Execute(resource TargetResource, labels map[string]types.NullString) error 19 } 20 21 type UnsetLabelCommand struct { 22 RequiredArgs flag.UnsetLabelArgs `positional-args:"yes"` 23 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 space\n stack"` 24 relatedCommands interface{} `related_commands:"labels, set-label"` 25 BuildpackStack string `long:"stack" short:"s" description:"Specify stack to disambiguate buildpacks with the same name"` 26 27 LabelUnsetter LabelUnsetter 28 } 29 30 func (cmd *UnsetLabelCommand) Setup(config command.Config, ui command.UI) error { 31 sharedActor := sharedaction.NewActor(config) 32 ccClient, _, err := shared.GetNewClientsAndConnectToCF(config, ui, "") 33 if err != nil { 34 return err 35 } 36 actor := v7action.NewActor(ccClient, config, nil, nil, clock.NewClock()) 37 38 cmd.LabelUnsetter = &LabelUpdater{ 39 UI: ui, 40 Config: config, 41 SharedActor: sharedActor, 42 Actor: actor, 43 Action: Unset, 44 } 45 return nil 46 } 47 48 func (cmd UnsetLabelCommand) Execute(args []string) error { 49 labels := make(map[string]types.NullString) 50 for _, value := range cmd.RequiredArgs.LabelKeys { 51 labels[value] = types.NewNullString() 52 } 53 54 targetResource := TargetResource{ 55 ResourceType: cmd.RequiredArgs.ResourceType, 56 ResourceName: cmd.RequiredArgs.ResourceName, 57 BuildpackStack: cmd.BuildpackStack, 58 } 59 return cmd.LabelUnsetter.Execute(targetResource, labels) 60 }