github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/actor/v7action/label.go (about)

     1  package v7action
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3"
     5  	"code.cloudfoundry.org/cli/types"
     6  )
     7  
     8  func (actor *Actor) GetApplicationLabels(appName string, spaceGUID string) (map[string]types.NullString, Warnings, error) {
     9  	resource, warnings, err := actor.GetApplicationByNameAndSpace(appName, spaceGUID)
    10  	return actor.getLabels((*ccv3.Metadata)(resource.Metadata), warnings, err)
    11  }
    12  
    13  func (actor *Actor) GetDomainLabels(domainName string) (map[string]types.NullString, Warnings, error) {
    14  	resource, warnings, err := actor.GetDomainByName(domainName)
    15  	return actor.getLabels(resource.Metadata, warnings, err)
    16  }
    17  
    18  func (actor *Actor) GetOrganizationLabels(orgName string) (map[string]types.NullString, Warnings, error) {
    19  	resource, warnings, err := actor.GetOrganizationByName(orgName)
    20  	return actor.getLabels((*ccv3.Metadata)(resource.Metadata), warnings, err)
    21  }
    22  
    23  func (actor *Actor) GetRouteLabels(routeName string, spaceGUID string) (map[string]types.NullString, Warnings, error) {
    24  	resource, warnings, err := actor.GetRoute(routeName, spaceGUID)
    25  	return actor.getLabels((*ccv3.Metadata)(resource.Metadata), warnings, err)
    26  }
    27  
    28  func (actor Actor) GetServiceBrokerLabels(serviceBrokerName string) (map[string]types.NullString, Warnings, error) {
    29  	serviceBroker, warnings, err := actor.GetServiceBrokerByName(serviceBrokerName)
    30  	return actor.getLabels(serviceBroker.Metadata, warnings, err)
    31  }
    32  
    33  func (actor *Actor) GetSpaceLabels(spaceName string, orgGUID string) (map[string]types.NullString, Warnings, error) {
    34  	resource, warnings, err := actor.GetSpaceByNameAndOrganization(spaceName, orgGUID)
    35  	return actor.getLabels(resource.Metadata, warnings, err)
    36  }
    37  
    38  func (actor *Actor) GetStackLabels(stackName string) (map[string]types.NullString, Warnings, error) {
    39  	resource, warnings, err := actor.GetStackByName(stackName)
    40  	return actor.getLabels(resource.Metadata, warnings, err)
    41  }
    42  
    43  func (actor *Actor) GetBuildpackLabels(buildpackName string, buildpackStack string) (map[string]types.NullString, Warnings, error) {
    44  	resource, warnings, err := actor.GetBuildpackByNameAndStack(buildpackName, buildpackStack)
    45  	return actor.getLabels(resource.Metadata, warnings, err)
    46  }
    47  
    48  func (actor *Actor) getLabels(metadata *ccv3.Metadata, warnings Warnings, err error) (map[string]types.NullString, Warnings, error) {
    49  	var labels map[string]types.NullString
    50  
    51  	if err != nil {
    52  		return labels, warnings, err
    53  	}
    54  	if metadata != nil {
    55  		labels = metadata.Labels
    56  	}
    57  	return labels, warnings, nil
    58  }
    59  
    60  func (actor *Actor) UpdateApplicationLabelsByApplicationName(appName string, spaceGUID string, labels map[string]types.NullString) (Warnings, error) {
    61  	app, warnings, err := actor.GetApplicationByNameAndSpace(appName, spaceGUID)
    62  	if err != nil {
    63  		return warnings, err
    64  	}
    65  	return actor.updateResourceMetadata("app", app.GUID, ccv3.Metadata{Labels: labels}, warnings)
    66  }
    67  
    68  func (actor *Actor) UpdateBuildpackLabelsByBuildpackNameAndStack(buildpackName string, stack string, labels map[string]types.NullString) (Warnings, error) {
    69  	buildpack, warnings, err := actor.GetBuildpackByNameAndStack(buildpackName, stack)
    70  	if err != nil {
    71  		return warnings, err
    72  	}
    73  	return actor.updateResourceMetadata("buildpack", buildpack.GUID, ccv3.Metadata{Labels: labels}, warnings)
    74  }
    75  
    76  func (actor *Actor) UpdateDomainLabelsByDomainName(domainName string, labels map[string]types.NullString) (Warnings, error) {
    77  	domain, warnings, err := actor.GetDomainByName(domainName)
    78  	if err != nil {
    79  		return warnings, err
    80  	}
    81  	return actor.updateResourceMetadata("domain", domain.GUID, ccv3.Metadata{Labels: labels}, warnings)
    82  }
    83  
    84  func (actor *Actor) UpdateOrganizationLabelsByOrganizationName(orgName string, labels map[string]types.NullString) (Warnings, error) {
    85  	org, warnings, err := actor.GetOrganizationByName(orgName)
    86  	if err != nil {
    87  		return warnings, err
    88  	}
    89  	return actor.updateResourceMetadata("org", org.GUID, ccv3.Metadata{Labels: labels}, warnings)
    90  }
    91  
    92  func (actor *Actor) UpdateRouteLabels(routeName string, spaceGUID string, labels map[string]types.NullString) (Warnings, error) {
    93  	route, warnings, err := actor.GetRoute(routeName, spaceGUID)
    94  	if err != nil {
    95  		return warnings, err
    96  	}
    97  	return actor.updateResourceMetadata("route", route.GUID, ccv3.Metadata{Labels: labels}, warnings)
    98  }
    99  
   100  func (actor *Actor) UpdateSpaceLabelsBySpaceName(spaceName string, orgGUID string, labels map[string]types.NullString) (Warnings, error) {
   101  	space, warnings, err := actor.GetSpaceByNameAndOrganization(spaceName, orgGUID)
   102  	if err != nil {
   103  		return warnings, err
   104  	}
   105  	return actor.updateResourceMetadata("space", space.GUID, ccv3.Metadata{Labels: labels}, warnings)
   106  }
   107  
   108  func (actor *Actor) UpdateStackLabelsByStackName(stackName string, labels map[string]types.NullString) (Warnings, error) {
   109  	stack, warnings, err := actor.GetStackByName(stackName)
   110  	if err != nil {
   111  		return warnings, err
   112  	}
   113  	return actor.updateResourceMetadata("stack", stack.GUID, ccv3.Metadata{Labels: labels}, warnings)
   114  }
   115  
   116  func (actor *Actor) UpdateServiceBrokerLabelsByServiceBrokerName(serviceBrokerName string, labels map[string]types.NullString) (Warnings, error) {
   117  	serviceBroker, warnings, err := actor.GetServiceBrokerByName(serviceBrokerName)
   118  	if err != nil {
   119  		return warnings, err
   120  	}
   121  	return actor.updateResourceMetadataAsync("service-broker", serviceBroker.GUID, ccv3.Metadata{Labels: labels}, warnings)
   122  }
   123  
   124  func (actor *Actor) updateResourceMetadata(resourceType string, resourceGUID string, payload ccv3.Metadata, warnings Warnings) (Warnings, error) {
   125  	_, updateWarnings, err := actor.CloudControllerClient.UpdateResourceMetadata(resourceType, resourceGUID, payload)
   126  	return append(warnings, updateWarnings...), err
   127  }
   128  
   129  func (actor *Actor) updateResourceMetadataAsync(resourceType string, resourceGUID string, payload ccv3.Metadata, warnings Warnings) (Warnings, error) {
   130  	jobURL, updateWarnings, err := actor.CloudControllerClient.UpdateResourceMetadataAsync(resourceType, resourceGUID, payload)
   131  	warnings = append(warnings, updateWarnings...)
   132  	if err != nil {
   133  		return warnings, err
   134  	}
   135  	pollWarnings, err := actor.CloudControllerClient.PollJob(jobURL)
   136  	warnings = append(warnings, pollWarnings...)
   137  	return warnings, err
   138  }