本文整理匯總了Golang中github.com/cloudfoundry-incubator/lattice/ltc/route_helpers.AppRoutes.RoutingInfo方法的典型用法代碼示例。如果您正苦於以下問題:Golang AppRoutes.RoutingInfo方法的具體用法?Golang AppRoutes.RoutingInfo怎麽用?Golang AppRoutes.RoutingInfo使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/cloudfoundry-incubator/lattice/ltc/route_helpers.AppRoutes
的用法示例。
在下文中一共展示了AppRoutes.RoutingInfo方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: updateLrpRoutes
func (appRunner *appRunner) updateLrpRoutes(name string, routes RouteOverrides) error {
appRoutes := route_helpers.AppRoutes{}
routeMap := make(map[uint16][]string)
for _, override := range routes {
routeMap[override.Port] = append(routeMap[override.Port], fmt.Sprintf("%s.%s", override.HostnamePrefix, appRunner.systemDomain))
}
for port, hostnames := range routeMap {
appRoutes = append(appRoutes, route_helpers.AppRoute{
Hostnames: hostnames,
Port: port,
})
}
err := appRunner.receptorClient.UpdateDesiredLRP(
name,
receptor.DesiredLRPUpdateRequest{
Routes: appRoutes.RoutingInfo(),
},
)
return err
}
示例2: desireLrp
func (appRunner *appRunner) desireLrp(params CreateAppParams) error {
primaryPort := uint16(0)
if params.Monitor.Port != 0 {
primaryPort = params.Monitor.Port
} else if len(params.ExposedPorts) > 0 {
primaryPort = params.ExposedPorts[0]
}
envVars := buildEnvironmentVariables(params.EnvironmentVariables)
envVars = append(envVars, receptor.EnvironmentVariable{Name: "PORT", Value: fmt.Sprintf("%d", primaryPort)})
var appRoutes route_helpers.AppRoutes
if params.NoRoutes {
appRoutes = route_helpers.AppRoutes{}
} else if len(params.RouteOverrides) > 0 {
routeMap := make(map[uint16][]string)
for _, override := range params.RouteOverrides {
routeMap[override.Port] = append(routeMap[override.Port], fmt.Sprintf("%s.%s", override.HostnamePrefix, appRunner.systemDomain))
}
for port, hostnames := range routeMap {
appRoutes = append(appRoutes, route_helpers.AppRoute{
Hostnames: hostnames,
Port: port,
})
}
} else {
appRoutes = appRunner.buildDefaultRoutingInfo(params.Name, params.ExposedPorts, primaryPort)
}
req := receptor.DesiredLRPCreateRequest{
ProcessGuid: params.Name,
Domain: lrpDomain,
RootFS: params.RootFS,
Instances: params.Instances,
Routes: appRoutes.RoutingInfo(),
CPUWeight: params.CPUWeight,
MemoryMB: params.MemoryMB,
DiskMB: params.DiskMB,
Privileged: params.Privileged,
Ports: params.ExposedPorts,
LogGuid: params.Name,
LogSource: "APP",
MetricsGuid: params.Name,
EnvironmentVariables: envVars,
Setup: params.Setup,
Action: &models.RunAction{
Path: params.StartCommand,
Args: params.AppArgs,
Dir: params.WorkingDir,
},
}
var healthCheckArgs []string
if params.Monitor.Timeout != 0 {
healthCheckArgs = append(healthCheckArgs, "-timeout", fmt.Sprint(params.Monitor.Timeout))
}
switch params.Monitor.Method {
case PortMonitor:
req.Monitor = &models.RunAction{
Path: "/tmp/healthcheck",
Args: append(healthCheckArgs, "-port", fmt.Sprint(params.Monitor.Port)),
LogSource: "HEALTH",
}
case URLMonitor:
req.Monitor = &models.RunAction{
Path: "/tmp/healthcheck",
Args: append(healthCheckArgs, "-port", fmt.Sprint(params.Monitor.Port), "-uri", params.Monitor.URI),
LogSource: "HEALTH",
}
}
return appRunner.receptorClient.CreateDesiredLRP(req)
}
示例3:
Port: 22222,
}
route3 = route_helpers.AppRoute{
Hostnames: []string{"foo3.example.com", "bar3.examaple.com"},
Port: 33333,
}
routes = route_helpers.AppRoutes{route1, route2, route3}
})
Describe("AppRoutes", func() {
Describe("RoutingInfo", func() {
var routingInfo receptor.RoutingInfo
JustBeforeEach(func() {
routingInfo = routes.RoutingInfo()
})
It("wraps the serialized routes with the correct key", func() {
expectedBytes, err := json.Marshal(routes)
Expect(err).ToNot(HaveOccurred())
payload, err := routingInfo[route_helpers.AppRouter].MarshalJSON()
Expect(err).ToNot(HaveOccurred())
Expect(payload).To(MatchJSON(expectedBytes))
})
Context("when AppRoutes is empty", func() {
BeforeEach(func() {
routes = route_helpers.AppRoutes{}
示例4:
Port: 22222,
}
appRoute3 = route_helpers.AppRoute{
Hostnames: []string{"foo3.example.com", "bar3.examaple.com"},
Port: 33333,
}
appRoutes = route_helpers.AppRoutes{appRoute1, appRoute2, appRoute3}
})
Describe("AppRoutes", func() {
Describe("RoutingInfo", func() {
var routingInfo receptor.RoutingInfo
JustBeforeEach(func() {
routingInfo = appRoutes.RoutingInfo()
})
It("maps the serialized routes to the correct key", func() {
expectedBytes := []byte(`[{"hostnames":["foo1.example.com","bar1.examaple.com"],"port":11111},{"hostnames":["foo2.example.com","bar2.examaple.com"],"port":22222},{"hostnames":["foo3.example.com","bar3.examaple.com"],"port":33333}]`)
Expect(appRoutes.RoutingInfo()["cf-router"].MarshalJSON()).To(MatchJSON(expectedBytes))
})
Context("when AppRoutes is empty", func() {
BeforeEach(func() {
appRoutes = route_helpers.AppRoutes{}
})
It("marshals an empty list", func() {
payload, err := routingInfo["cf-router"].MarshalJSON()
Expect(err).NotTo(HaveOccurred())
示例5:
}
appRoute3 = route_helpers.AppRoute{
Hostnames: []string{"foo3.example.com", "bar3.examaple.com"},
Port: 33333,
}
appRoutes = route_helpers.AppRoutes{appRoute1, appRoute2, appRoute3}
})
Describe("AppRoutes", func() {
Describe("RoutingInfo", func() {
var routingInfo receptor.RoutingInfo
JustBeforeEach(func() {
routingInfo = appRoutes.RoutingInfo()
})
It("wraps the serialized routes with the correct key", func() {
expectedBytes, err := json.Marshal(appRoutes)
Expect(err).NotTo(HaveOccurred())
payload, err := routingInfo[route_helpers.AppRouter].MarshalJSON()
Expect(err).NotTo(HaveOccurred())
Expect(payload).To(MatchJSON(expectedBytes))
})
Context("when AppRoutes is empty", func() {
BeforeEach(func() {
appRoutes = route_helpers.AppRoutes{}