Ejemplo n.º 1
0
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
}