Ejemplo n.º 1
0
func createApp(config *configuration.Configuration, appName string) (app models.Application, err error) {
	newApp := models.Application{Name: appName}
	repo := api.CloudControllerApplicationRepository{}

	log.Printf("Creating %s...", appName)
	app, err = repo.Create(config, newApp)
	if err != nil {
		err = errors.New("Error creating application.")
		return
	}

	domainRepo := api.CloudControllerDomainRepository{}
	domains, err := domainRepo.FindAll(config)

	if err != nil {
		err = errors.New("Error loading domains")
		return
	}

	domain := domains[0]
	newRoute := models.Route{Host: app.Name}

	routeRepo := api.CloudControllerRouteRepository{}
	log.Printf("Creating route %s.%s...", app.Name, domain.Name)
	createdRoute, err := routeRepo.Create(config, newRoute, domain)
	if err != nil {
		err = errors.New("Error creating route")
		return
	}

	log.Printf("Binding %s.%s to %s...", app.Name, domain.Name, app.Name)
	err = routeRepo.Bind(config, createdRoute, app)
	if err != nil {
		err = errors.New("Error binding route")
		return
	}

	return
}