github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/actor/v2action/manifest.go (about) 1 package v2action 2 3 import ( 4 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv2/constant" 5 "code.cloudfoundry.org/cli/util/manifest" 6 ) 7 8 func (actor Actor) CreateApplicationManifestByNameAndSpace(appName string, spaceGUID string) (manifest.Application, Warnings, error) { 9 10 var allWarnings Warnings 11 applicationSummary, appSummaryWarnings, err := actor.GetApplicationSummaryByNameAndSpace(appName, spaceGUID) 12 allWarnings = append(allWarnings, appSummaryWarnings...) 13 if err != nil { 14 return manifest.Application{}, allWarnings, err 15 } 16 17 serviceInstances, serviceWarnings, err := actor.GetServiceInstancesByApplication(applicationSummary.GUID) 18 allWarnings = append(allWarnings, serviceWarnings...) 19 if err != nil { 20 return manifest.Application{}, allWarnings, err 21 } 22 23 var routes []string 24 for _, route := range applicationSummary.Routes { 25 routes = append(routes, route.String()) 26 } 27 28 var services []string 29 for _, serviceInstace := range serviceInstances { 30 services = append(services, serviceInstace.Name) 31 } 32 33 manifestApp := manifest.Application{ 34 Command: applicationSummary.Command, 35 DiskQuota: applicationSummary.DiskQuota, 36 DockerImage: applicationSummary.DockerImage, 37 DockerUsername: applicationSummary.DockerCredentials.Username, 38 EnvironmentVariables: applicationSummary.EnvironmentVariables, 39 HealthCheckTimeout: applicationSummary.HealthCheckTimeout, 40 Instances: applicationSummary.Instances, 41 Memory: applicationSummary.Memory, 42 Name: applicationSummary.Name, 43 Routes: routes, 44 Services: services, 45 StackName: applicationSummary.Stack.Name, 46 } 47 48 if applicationSummary.Buildpack.IsSet { 49 manifestApp.Buildpacks = append(manifestApp.Buildpacks, applicationSummary.Buildpack.Value) 50 } 51 52 if len(routes) < 1 { 53 manifestApp.NoRoute = true 54 } 55 56 if applicationSummary.HealthCheckType != constant.ApplicationHealthCheckPort { 57 manifestApp.HealthCheckType = string(applicationSummary.HealthCheckType) 58 59 if applicationSummary.HealthCheckType == constant.ApplicationHealthCheckHTTP && 60 applicationSummary.HealthCheckHTTPEndpoint != "/" { 61 manifestApp.HealthCheckHTTPEndpoint = applicationSummary.HealthCheckHTTPEndpoint 62 } 63 } 64 65 return manifestApp, allWarnings, err 66 } 67 68 func (Actor) WriteApplicationManifest(manifestApp manifest.Application, manifestFilePath string) error { 69 return manifest.WriteApplicationManifest(manifestApp, manifestFilePath) 70 }