github.com/liamawhite/cli-with-i18n@v6.32.1-0.20171122084555-dede0a5c3448+incompatible/actor/v2action/manifest.go (about) 1 package v2action 2 3 import ( 4 "github.com/liamawhite/cli-with-i18n/api/cloudcontroller/ccv2" 5 "github.com/liamawhite/cli-with-i18n/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 DockerImage: applicationSummary.DockerImage, 37 DockerUsername: applicationSummary.DockerCredentials.Username, 38 EnvironmentVariables: applicationSummary.EnvironmentVariables, 39 HealthCheckTimeout: applicationSummary.HealthCheckTimeout, 40 Instances: applicationSummary.Instances, 41 Name: applicationSummary.Name, 42 Routes: routes, 43 Services: services, 44 StackName: applicationSummary.Stack.Name, 45 } 46 manifestApp.DiskQuota.ParseUint64Value(&applicationSummary.DiskQuota) 47 manifestApp.Memory.ParseUint64Value(&applicationSummary.Memory) 48 if len(routes) < 1 { 49 manifestApp.NoRoute = true 50 } 51 52 if applicationSummary.HealthCheckType != ccv2.ApplicationHealthCheckPort { 53 manifestApp.HealthCheckType = string(applicationSummary.HealthCheckType) 54 55 if applicationSummary.HealthCheckType == ccv2.ApplicationHealthCheckHTTP && 56 applicationSummary.HealthCheckHTTPEndpoint != "/" { 57 manifestApp.HealthCheckHTTPEndpoint = applicationSummary.HealthCheckHTTPEndpoint 58 } 59 } 60 61 err = manifest.WriteApplicationManifest(manifestApp, pathToFile) 62 return allWarnings, err 63 }