github.com/loggregator/cli@v6.33.1-0.20180224010324-82334f081791+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, pathToFile string) (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 allWarnings, err 15 } 16 17 serviceInstances, serviceWarnings, err := actor.GetServiceInstancesByApplication(applicationSummary.GUID) 18 allWarnings = append(allWarnings, serviceWarnings...) 19 if err != nil { 20 return 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 Buildpack: applicationSummary.Buildpack, 35 Command: applicationSummary.Command, 36 DiskQuota: applicationSummary.DiskQuota, 37 DockerImage: applicationSummary.DockerImage, 38 DockerUsername: applicationSummary.DockerCredentials.Username, 39 EnvironmentVariables: applicationSummary.EnvironmentVariables, 40 HealthCheckTimeout: applicationSummary.HealthCheckTimeout, 41 Instances: applicationSummary.Instances, 42 Memory: applicationSummary.Memory, 43 Name: applicationSummary.Name, 44 Routes: routes, 45 Services: services, 46 StackName: applicationSummary.Stack.Name, 47 } 48 if len(routes) < 1 { 49 manifestApp.NoRoute = true 50 } 51 52 if applicationSummary.HealthCheckType != constant.ApplicationHealthCheckPort { 53 manifestApp.HealthCheckType = string(applicationSummary.HealthCheckType) 54 55 if applicationSummary.HealthCheckType == constant.ApplicationHealthCheckHTTP && 56 applicationSummary.HealthCheckHTTPEndpoint != "/" { 57 manifestApp.HealthCheckHTTPEndpoint = applicationSummary.HealthCheckHTTPEndpoint 58 } 59 } 60 61 err = manifest.WriteApplicationManifest(manifestApp, pathToFile) 62 return allWarnings, err 63 }