github.com/cloudfoundry-community/cloudfoundry-cli@v6.44.1-0.20240130060226-cda5ed8e89a5+incompatible/command/v7/delete_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 12 //go:generate counterfeiter . DeleteLabelActor 13 14 type DeleteLabelActor interface { 15 UpdateApplicationLabelsByApplicationName(string, string, map[string]types.NullString) (v7action.Warnings, error) 16 } 17 18 type DeleteLabelCommand struct { 19 RequiredArgs flag.DeleteLabelArgs `positional-args:"yes"` 20 usage interface{} `usage:"CF_NAME delete-label RESOURCE RESOURCE_NAME KEY\n\nEXAMPLES:\n cf delete-label app dora ci_signature_sha2\n\nRESOURCES:\n app\n\nSEE ALSO:\n set-label, labels"` 21 UI command.UI 22 Config command.Config 23 SharedActor command.SharedActor 24 Actor DeleteLabelActor 25 } 26 27 func (cmd *DeleteLabelCommand) Setup(config command.Config, ui command.UI) error { 28 cmd.UI = ui 29 cmd.Config = config 30 cmd.SharedActor = sharedaction.NewActor(config) 31 ccClient, _, err := shared.NewClients(config, ui, true, "") 32 if err != nil { 33 return err 34 } 35 cmd.Actor = v7action.NewActor(ccClient, config, nil, nil) 36 return nil 37 } 38 39 func (cmd DeleteLabelCommand) Execute(args []string) error { 40 err := cmd.SharedActor.CheckTarget(true, true) 41 if err != nil { 42 return err 43 } 44 45 user, err := cmd.Config.CurrentUser() 46 if err != nil { 47 return err 48 } 49 50 cmd.UI.DisplayTextWithFlavor("Deleting label(s) for app {{.AppName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.Username}}...", map[string]interface{}{ 51 "AppName": cmd.RequiredArgs.ResourceName, 52 "OrgName": cmd.Config.TargetedOrganization().Name, 53 "SpaceName": cmd.Config.TargetedSpace().Name, 54 "Username": user.Name, 55 }) 56 57 labels := make(map[string]types.NullString) 58 for _, value := range cmd.RequiredArgs.LabelKeys { 59 labels[value] = types.NewNullString() 60 } 61 62 warnings, err := cmd.Actor.UpdateApplicationLabelsByApplicationName(cmd.RequiredArgs.ResourceName, cmd.Config.TargetedSpace().GUID, labels) 63 64 for _, warning := range warnings { 65 cmd.UI.DisplayWarning(warning) 66 } 67 68 if err != nil { 69 return err 70 } 71 72 cmd.UI.DisplayOK() 73 return nil 74 }