func (m MarathonDeployer) prepareServiceForDeployment(group string, service *api.Service) { var serviceName = sanitizeServiceName(service.Name) service.Id = fmt.Sprintf("%s.%s", group, serviceName) service.Name = fmt.Sprintf("/%s/%s", group, serviceName) service.ActualState = "deploying" }
func TestFailedCreateServices(t *testing.T) { // setup testClient, testConverter, testDeployer, adapter := setup() testDeployer.setStatus(status{code: FAIL}) testService := new(api.Service) testService.Name = "/foo" services := make([]*api.Service, 1) services[0] = &api.Service{Name: "foo"} group := new(deploymentGroup) // set expectations testDeployer.On("BuildDeploymentGroup", services, testClient).Return(group) testDeployer.On("DeployGroup", group, DEPLOY_TIMEOUT).Return(status{code: OK}) // call the code to be tested _, err := adapter.CreateServices(services) // assert if expectations are met assert.NotNil(t, err) assert.Equal(t, 409, err.Code) testClient.AssertExpectations(t) testConverter.AssertExpectations(t) }
// Converts a single gomarathon Application into an api Service func (c *MarathonConverter) convertToService(app *gomarathon.Application) *api.Service { service := new(api.Service) service.Id = (strings.Replace(app.ID, "/", ".", -1))[1:] service.Name = app.ID service.ActualState = "Deploying" if app.TasksRunning > 0 { service.ActualState = "Running" } return service }
func TestPreConditionNotFound(t *testing.T) { var ctx = NewContext() var svc = api.Service{Name: "Foo", Command: "echo"} var link = api.Link{Name: "test", Alias: "bar"} svc.Links = []*api.Link{&link} deployment := createDeployment(&svc, nil) deployment.name = "TestLink" requirementState(&deployment, &ctx) assert.Equal(t, DEPLOY, deployment.status.code) }
func TestPreConditionFound(t *testing.T) { var ctx = NewContext() var fooMap = make(map[string]string) fooMap["PORT_3306_TCP_PORT"] = "3000" ctx.AddKey("foo", fooMap) var svc = api.Service{Name: "Bar", Command: "echo"} var link = api.Link{Name: "foo", Alias: "bar"} svc.Links = []*api.Link{&link} deployment := createDeployment(&svc, nil) deployment.name = "TestLinked" requirementState(&deployment, &ctx) assert.Equal(t, DEPLOY, deployment.status.code) }