func (cmd *CreateRoute) CreateRoute(hostName string, path string, port int, randomPort bool, domain models.DomainFields, space models.SpaceFields) (models.Route, error) { cmd.ui.Say(T("Creating route {{.URL}} for org {{.OrgName}} / space {{.SpaceName}} as {{.Username}}...", map[string]interface{}{ "URL": terminal.EntityNameColor(domain.URLForHostAndPath(hostName, path, port)), "OrgName": terminal.EntityNameColor(cmd.config.OrganizationFields().Name), "SpaceName": terminal.EntityNameColor(space.Name), "Username": terminal.EntityNameColor(cmd.config.Username())})) route, err := cmd.routeRepo.CreateInSpace(hostName, path, domain.GUID, space.GUID, port, randomPort) if err != nil { var findErr error route, findErr = cmd.routeRepo.Find(hostName, domain, path, port) if findErr != nil { return models.Route{}, err } if route.Space.GUID != space.GUID || route.Domain.GUID != domain.GUID { return models.Route{}, err } cmd.ui.Ok() cmd.ui.Warn(T("Route {{.URL}} already exists", map[string]interface{}{"URL": route.URL()})) return route, nil } cmd.ui.Ok() if randomPort { cmd.ui.Say("Route %s:%d has been created", route.Domain.Name, route.Port) } return route, nil }
func (resource RouteSummary) ToModel() (route models.RouteSummary) { domain := models.DomainFields{} domain.GUID = resource.Domain.GUID domain.Name = resource.Domain.Name domain.Shared = resource.Domain.OwningOrganizationGUID != "" route.GUID = resource.GUID route.Host = resource.Host route.Path = resource.Path route.Port = resource.Port route.Domain = domain return }
func (routeActor routeActor) FindOrCreateRoute(hostname string, domain models.DomainFields, path string, port int, useRandomPort bool) (models.Route, error) { var route models.Route var err error //if tcp route use random port should skip route lookup if useRandomPort && domain.RouterGroupType == tcp { err = new(errors.ModelNotFoundError) } else { route, err = routeActor.routeRepo.Find(hostname, domain, path, port) } switch err.(type) { case nil: routeActor.ui.Say( T("Using route {{.RouteURL}}", map[string]interface{}{ "RouteURL": terminal.EntityNameColor(route.URL()), }), ) case *errors.ModelNotFoundError: if useRandomPort && domain.RouterGroupType == tcp { route, err = routeActor.CreateRandomTCPRoute(domain) } else { routeActor.ui.Say( T("Creating route {{.Hostname}}...", map[string]interface{}{ "Hostname": terminal.EntityNameColor(domain.URLForHostAndPath(hostname, path, port)), }), ) route, err = routeActor.routeRepo.Create(hostname, domain, path, port, false) } routeActor.ui.Ok() routeActor.ui.Say("") } return route, err }
v.Set("inline-relations-depth", "1") v.Set("q", "host:my-cool-app;domain_guid:my-domain-guid;path:/somepath") ccServer.AppendHandlers( ghttp.CombineHandlers( ghttp.VerifyRequest("GET", "/v2/routes", v.Encode()), ghttp.VerifyHeader(http.Header{ "accept": []string{"application/json"}, }), ghttp.RespondWith(http.StatusCreated, findResponseBodyForHostAndDomainAndPath), ), ) }) It("returns the route", func() { domain := models.DomainFields{} domain.GUID = "my-domain-guid" route, apiErr := repo.Find("my-cool-app", domain, "somepath", 0) Expect(apiErr).NotTo(HaveOccurred()) Expect(route.Host).To(Equal("my-cool-app")) Expect(route.GUID).To(Equal("my-route-guid")) Expect(route.Path).To(Equal("/somepath")) Expect(route.Port).To(Equal(0)) Expect(route.Domain.GUID).To(Equal(domain.GUID)) }) }) Context("when the path is empty", func() { BeforeEach(func() {