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  }