github.com/loafoe/cli@v7.1.0+incompatible/actor/v2action/organization_quota.go (about)

     1  package v2action
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/actor/actionerror"
     5  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccerror"
     6  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv2"
     7  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv2/constant"
     8  )
     9  
    10  type OrganizationQuota ccv2.OrganizationQuota
    11  
    12  func (actor Actor) GetOrganizationQuota(guid string) (OrganizationQuota, Warnings, error) {
    13  	orgQuota, warnings, err := actor.CloudControllerClient.GetOrganizationQuota(guid)
    14  
    15  	if _, ok := err.(ccerror.ResourceNotFoundError); ok {
    16  		return OrganizationQuota{}, Warnings(warnings), actionerror.OrganizationQuotaNotFoundError{GUID: guid}
    17  	}
    18  
    19  	return OrganizationQuota(orgQuota), Warnings(warnings), err
    20  }
    21  
    22  func (actor Actor) GetOrganizationQuotaByName(quotaName string) (OrganizationQuota, Warnings, error) {
    23  	orgQuotas, warnings, err := actor.CloudControllerClient.GetOrganizationQuotas(ccv2.Filter{
    24  		Type:     constant.NameFilter,
    25  		Operator: constant.EqualOperator,
    26  		Values:   []string{quotaName},
    27  	})
    28  	if err != nil {
    29  		return OrganizationQuota{}, Warnings(warnings), err
    30  	}
    31  
    32  	if len(orgQuotas) > 1 {
    33  		var GUIDs []string
    34  		for _, orgQuota := range orgQuotas {
    35  			GUIDs = append(GUIDs, orgQuota.GUID)
    36  		}
    37  		return OrganizationQuota{}, Warnings(warnings), actionerror.MultipleOrganizationQuotasFoundForNameError{Name: quotaName, GUIDs: GUIDs}
    38  	} else if len(orgQuotas) == 0 {
    39  		return OrganizationQuota{}, Warnings(warnings), actionerror.QuotaNotFoundForNameError{Name: quotaName}
    40  	}
    41  
    42  	return OrganizationQuota(orgQuotas[0]), Warnings(warnings), nil
    43  }