code.cloudfoundry.org/cli@v7.1.0+incompatible/command/v7/delete_space_quota_command.go (about)

     1  package v7
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/actor/actionerror"
     5  	"code.cloudfoundry.org/cli/command/flag"
     6  )
     7  
     8  type DeleteSpaceQuotaCommand struct {
     9  	BaseCommand
    10  
    11  	RequiredArgs    flag.Quota  `positional-args:"yes"`
    12  	Force           bool        `long:"force" short:"f" description:"Force deletion without confirmation"`
    13  	usage           interface{} `usage:"CF_NAME delete-space-quota QUOTA [-f]"`
    14  	relatedCommands interface{} `related_commands:"space-quotas"`
    15  }
    16  
    17  func (cmd DeleteSpaceQuotaCommand) Execute(args []string) error {
    18  	err := cmd.SharedActor.CheckTarget(true, false)
    19  	if err != nil {
    20  		return err
    21  	}
    22  
    23  	user, err := cmd.Config.CurrentUser()
    24  	if err != nil {
    25  		return err
    26  	}
    27  
    28  	spaceQuotaName := cmd.RequiredArgs.Quota
    29  
    30  	if !cmd.Force {
    31  		promptMessage := "Really delete the space quota {{.QuotaName}} in org {{.OrgName}}?"
    32  		confirmedDelete, promptErr := cmd.UI.DisplayBoolPrompt(false, promptMessage, map[string]interface{}{
    33  			"QuotaName": spaceQuotaName,
    34  			"OrgName":   cmd.Config.TargetedOrganizationName(),
    35  		})
    36  
    37  		if promptErr != nil {
    38  			return promptErr
    39  		}
    40  
    41  		if !confirmedDelete {
    42  			cmd.UI.DisplayText("Space quota '{{.QuotaName}}' has not been deleted.", map[string]interface{}{"QuotaName": spaceQuotaName})
    43  			return nil
    44  		}
    45  	}
    46  
    47  	cmd.UI.DisplayTextWithFlavor("Deleting space quota {{.QuotaName}} for org {{.Org}} as {{.User}}...",
    48  		map[string]interface{}{
    49  			"User":      user.Name,
    50  			"Org":       cmd.Config.TargetedOrganizationName(),
    51  			"QuotaName": spaceQuotaName,
    52  		})
    53  
    54  	warnings, err := cmd.Actor.DeleteSpaceQuotaByName(spaceQuotaName, cmd.Config.TargetedOrganization().GUID)
    55  
    56  	cmd.UI.DisplayWarnings(warnings)
    57  
    58  	if err != nil {
    59  		switch err.(type) {
    60  		case actionerror.SpaceQuotaNotFoundForNameError:
    61  			cmd.UI.DisplayWarning(err.Error())
    62  		default:
    63  			return err
    64  		}
    65  	}
    66  
    67  	cmd.UI.DisplayOK()
    68  
    69  	return nil
    70  }