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 }