func makeAppWithOptions(appName string) models.Application { application := models.Application{} application.Name = appName application.Guid = "app-guid" application.Command = "run main.go" application.BuildpackUrl = "go-buildpack" domain := models.DomainFields{} domain.Name = "example.com" route := models.RouteSummary{Host: "foo", Domain: domain} secondRoute := models.RouteSummary{Host: appName, Domain: domain} packgeUpdatedAt, _ := time.Parse("2006-01-02T15:04:05Z07:00", "2012-10-24T19:54:00Z") application.State = "started" application.InstanceCount = 2 application.RunningInstances = 2 application.Memory = 256 application.HealthCheckTimeout = 100 application.Routes = []models.RouteSummary{route, secondRoute} application.PackageUpdatedAt = &packgeUpdatedAt envMap := make(map[string]interface{}) envMap["foo"] = "bar" application.EnvironmentVars = envMap application.Services = append(application.Services, models.ServicePlanSummary{ Guid: "", Name: "server1", }) return application }
func makeAppWithRoute(appName string) models.Application { application := models.Application{} application.Name = appName application.Guid = "app-guid" domain := models.DomainFields{} domain.Name = "example.com" route := models.RouteSummary{Host: "foo", Domain: domain} secondRoute := models.RouteSummary{Host: appName, Domain: domain} packgeUpdatedAt, _ := time.Parse("2006-01-02T15:04:05Z07:00", "2012-10-24T19:54:00Z") application.State = "started" application.InstanceCount = 2 application.RunningInstances = 2 application.Memory = 256 application.Stack = &models.Stack{ Name: "fake_stack", Guid: "123-123-123", } application.Routes = []models.RouteSummary{route, secondRoute} application.PackageUpdatedAt = &packgeUpdatedAt return application }
func (resource ApplicationFromSummary) ToModel() models.Application { var app models.Application app.ApplicationFields = resource.ToFields() routes := []models.RouteSummary{} for _, route := range resource.Routes { routes = append(routes, route.ToModel()) } app.Routes = routes services := []models.ServicePlanSummary{} for _, service := range resource.Services { services = append(services, service.ToModel()) } app.Routes = routes app.Services = services return app }
func makeAppWithRoute(appName string) models.Application { application := models.Application{} application.Name = appName application.Guid = "app-guid" application.BuildpackUrl = "http://123.com" application.Command = "command1" application.Diego = false application.DetectedStartCommand = "detected_command" application.DiskQuota = 100 application.EnvironmentVars = map[string]interface{}{"test": 123} application.RunningInstances = 2 application.HealthCheckTimeout = 100 application.SpaceGuid = "guids_in_spaaace" application.PackageState = "STAGED" application.StagingFailedReason = "no reason" application.State = "started" application.InstanceCount = 2 application.RunningInstances = 2 application.Memory = 256 t := time.Date(2009, time.November, 10, 15, 0, 0, 0, time.UTC) application.PackageUpdatedAt = &t services := models.ServicePlanSummary{ Guid: "s1-guid", Name: "s1-service", } application.Services = []models.ServicePlanSummary{services} domain := models.DomainFields{Guid: "domain1-guid", Name: "example.com", OwningOrganizationGuid: "org-123", Shared: true} route := models.RouteSummary{Host: "foo", Guid: "foo-guid", Domain: domain} secondRoute := models.RouteSummary{Host: appName, Domain: domain} application.Stack = &models.Stack{ Name: "fake_stack", Guid: "123-123-123", } application.Routes = []models.RouteSummary{route, secondRoute} return application }
func makeAppWithRoute(appName string) models.Application { application := models.Application{} application.Name = appName application.Guid = "app-guid" domain := models.DomainFields{} domain.Name = "example.com" route := models.RouteSummary{Host: "foo", Domain: domain} secondRoute := models.RouteSummary{Host: appName, Domain: domain} application.State = "started" application.InstanceCount = 2 application.RunningInstances = 2 application.Memory = 256 application.Routes = []models.RouteSummary{route, secondRoute} return application }
defaultInstanceErrorCodes = []string{"", ""} defaultAppForStart = models.Application{} defaultAppForStart.Name = "my-app" defaultAppForStart.Guid = "my-app-guid" defaultAppForStart.InstanceCount = 2 defaultAppForStart.PackageState = "STAGED" domain := models.DomainFields{} domain.Name = "example.com" route := models.RouteSummary{} route.Host = "my-app" route.Domain = domain defaultAppForStart.Routes = []models.RouteSummary{route} instance1 := models.AppInstanceFields{} instance1.State = models.InstanceStarting instance2 := models.AppInstanceFields{} instance2.State = models.InstanceStarting instance3 := models.AppInstanceFields{} instance3.State = models.InstanceRunning instance4 := models.AppInstanceFields{} instance4.State = models.InstanceStarting defaultInstanceResponses = [][]models.AppInstanceFields{ []models.AppInstanceFields{instance1, instance2},
app2Routes := []models.RouteSummary{ { Host: "app2", Domain: models.DomainFields{Name: "cfapps.io"}, }} app := models.Application{} app.Name = "Application-1" app.GUID = "Application-1-guid" app.State = "started" app.RunningInstances = 1 app.InstanceCount = 1 app.Memory = 512 app.DiskQuota = 1024 app.Routes = app1Routes app.AppPorts = []int{8080, 9090} app2 := models.Application{} app2.Name = "Application-2" app2.GUID = "Application-2-guid" app2.State = "started" app2.RunningInstances = 1 app2.InstanceCount = 2 app2.Memory = 256 app2.DiskQuota = 1024 app2.Routes = app2Routes appSummaryRepo.GetSummariesInCurrentSpaceApps = []models.Application{app, app2} deps = commandregistry.NewDependency(os.Stdout, new(tracefakes.FakePrinter))
It("fails with error", func() { Expect(runCLIErr).To(HaveOccurred()) Expect(runCLIErr.Error()).To(Equal("Failed to create manifest, unable to parse environment variable: key")) }) }) Context("when the app has routes", func() { BeforeEach(func() { application.Routes = []models.RouteSummary{ { Host: "route-1-host", Domain: models.DomainFields{ Name: "domain-1-name", }, }, { Host: "route-2-host", Domain: models.DomainFields{ Name: "domain-2-name", }, }, } appSummaryRepo.GetSummaryReturns(application, nil) }) It("sets the domains", func() { Expect(runCLIErr).NotTo(HaveOccurred()) Expect(fakeManifest.DomainCallCount()).To(Equal(2)) name, host, domainName := fakeManifest.DomainArgsForCall(0) Expect(name).To(Equal("app-name"))
It("does not stop the app when it is already stopped", func() { existingApp.State = "stopped" appRepo.ReadReturns.App = existingApp appRepo.UpdateAppResult = existingApp callPush("existing-app") Expect(stopper.AppToStop.Guid).To(Equal("")) }) It("updates the app", func() { existingRoute := models.RouteSummary{} existingRoute.Host = "existing-app" existingApp.Routes = []models.RouteSummary{existingRoute} appRepo.ReadReturns.App = existingApp appRepo.UpdateAppResult = existingApp stackRepo.FindByNameStack = models.Stack{ Name: "differentStack", Guid: "differentStack-guid", } callPush( "-c", "different start command", "-i", "10", "-m", "1G", "-b", "https://github.com/heroku/heroku-buildpack-different.git", "-s", "differentStack", "existing-app",
GUID: "route-guid", } expectedApp = models.Application{ ApplicationFields: models.ApplicationFields{ Name: "app-name", GUID: "app-guid", }, } }) Context("when the app has the route", func() { BeforeEach(func() { routeSummary := models.RouteSummary{ GUID: expectedRoute.GUID, } expectedApp.Routes = append(expectedApp.Routes, routeSummary) }) It("does nothing", func() { err := routeActor.BindRoute(expectedApp, expectedRoute) Expect(err).To(BeNil()) Expect(fakeRouteRepository.BindCallCount()).To(Equal(0)) }) }) Context("when the app does not have a route", func() { It("binds the route", func() { err := routeActor.BindRoute(expectedApp, expectedRoute) Expect(err).To(BeNil())
defaultInstanceErrorCodes = []string{"", ""} defaultAppForStart = models.Application{ ApplicationFields: models.ApplicationFields{ Name: "my-app", GUID: "my-app-guid", InstanceCount: 2, PackageState: "STAGED", }, } defaultAppForStart.Routes = []models.RouteSummary{ { Host: "my-app", Domain: models.DomainFields{ Name: "example.com", }, }, } instance1 := models.AppInstanceFields{ State: models.InstanceStarting, } instance2 := models.AppInstanceFields{ State: models.InstanceStarting, } instance3 := models.AppInstanceFields{ State: models.InstanceRunning, }
Expect(runCLIErr).To(HaveOccurred()) Expect(runCLIErr.Error()).To(Equal("Failed to create manifest, unable to parse environment variable: key")) }) }) Context("when the app has routes", func() { BeforeEach(func() { application.Routes = []models.RouteSummary{ { Host: "route-1-host", Domain: models.DomainFields{ Name: "http-domain", }, Path: "path", Port: 0, }, { Host: "", Domain: models.DomainFields{ Name: "tcp-domain", }, Path: "", Port: 123, }, } appSummaryRepo.GetSummaryReturns(application, nil) }) It("sets the domains", func() { Expect(runCLIErr).NotTo(HaveOccurred()) Expect(fakeManifest.RouteCallCount()).To(Equal(2))