本文整理汇总了Golang中github.com/globocom/tsuru/router.Retrieve函数的典型用法代码示例。如果您正苦于以下问题:Golang Retrieve函数的具体用法?Golang Retrieve怎么用?Golang Retrieve使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Retrieve函数的17个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: RemoveRoute
func (r *fakeRouter) RemoveRoute(name, ip string) error {
backendName, err := router.Retrieve(name)
if err != nil {
return err
}
if !r.HasBackend(backendName) {
return ErrBackendNotFound
}
r.mutex.Lock()
defer r.mutex.Unlock()
index := -1
routes := r.backends[backendName]
for i := range routes {
if routes[i] == ip {
index = i
break
}
}
if index < 0 {
return errors.New("Route not found")
}
routes[index] = routes[len(routes)-1]
r.backends[backendName] = routes[:len(routes)-1]
return nil
}
开发者ID:johntdyer,项目名称:golang-devops-stuff,代码行数:25,代码来源:router.go
示例2: AddRoute
func (r hipacheRouter) AddRoute(name, address string) error {
backendName, err := router.Retrieve(name)
if err != nil {
return err
}
domain, err := config.GetString("hipache:domain")
if err != nil {
log.Errorf("error on getting hipache domain in add route for %s - %s", backendName, address)
return &routeError{"add", err}
}
frontend := "frontend:" + backendName + "." + domain
if err := r.addRoute(frontend, address); err != nil {
log.Errorf("error on add route for %s - %s", backendName, address)
return &routeError{"add", err}
}
cname, err := r.getCName(backendName)
if err != nil {
log.Errorf("error on get cname in add route for %s - %s", backendName, address)
return err
}
if cname == "" {
return nil
}
return r.addRoute("frontend:"+cname, address)
}
开发者ID:rpeterson,项目名称:tsuru,代码行数:25,代码来源:router.go
示例3: AddRoute
func (r elbRouter) AddRoute(name, address string) error {
backendName, err := router.Retrieve(name)
if err != nil {
return err
}
_, err = r.elb().RegisterInstancesWithLoadBalancer([]string{address}, backendName)
return err
}
开发者ID:pombredanne,项目名称:docker-stuff,代码行数:8,代码来源:router.go
示例4: Routes
func (r *fakeRouter) Routes(name string) ([]string, error) {
backendName, err := router.Retrieve(name)
if err != nil {
return nil, err
}
r.mutex.Lock()
defer r.mutex.Unlock()
routes := r.backends[backendName]
return routes, nil
}
开发者ID:johntdyer,项目名称:golang-devops-stuff,代码行数:10,代码来源:router.go
示例5: TestSwap
func (s *S) TestSwap(c *gocheck.C) {
instance1 := s.server.NewInstance()
defer s.server.RemoveInstance(instance1)
instance2 := s.server.NewInstance()
defer s.server.RemoveInstance(instance2)
backend1 := "b1"
backend2 := "b2"
elb := elbRouter{}
err := elb.AddBackend(backend1)
c.Assert(err, gocheck.IsNil)
err = elb.AddRoute(backend1, instance1)
c.Assert(err, gocheck.IsNil)
err = elb.AddBackend(backend2)
c.Assert(err, gocheck.IsNil)
err = elb.AddRoute(backend2, instance2)
c.Assert(err, gocheck.IsNil)
retrieved1, err := router.Retrieve(backend1)
c.Assert(err, gocheck.IsNil)
c.Assert(retrieved1, gocheck.Equals, backend1)
retrieved2, err := router.Retrieve(backend2)
c.Assert(err, gocheck.IsNil)
c.Assert(retrieved2, gocheck.Equals, backend2)
err = elb.Swap(backend1, backend2)
c.Assert(err, gocheck.IsNil)
routes, err := elb.Routes(backend2)
c.Assert(err, gocheck.IsNil)
c.Assert(routes, gocheck.DeepEquals, []string{instance2})
routes, err = elb.Routes(backend1)
c.Assert(err, gocheck.IsNil)
c.Assert(routes, gocheck.DeepEquals, []string{instance1})
retrieved1, err = router.Retrieve(backend1)
c.Assert(err, gocheck.IsNil)
c.Assert(retrieved1, gocheck.Equals, backend2)
retrieved2, err = router.Retrieve(backend2)
c.Assert(err, gocheck.IsNil)
c.Assert(retrieved2, gocheck.Equals, backend1)
addr, err := elb.Addr(backend1)
c.Assert(err, gocheck.IsNil)
c.Assert(addr, gocheck.Equals, "b2-some-aws-stuff.us-east-1.elb.amazonaws.com")
addr, err = elb.Addr(backend2)
c.Assert(err, gocheck.IsNil)
c.Assert(addr, gocheck.Equals, "b1-some-aws-stuff.us-east-1.elb.amazonaws.com")
}
开发者ID:johntdyer,项目名称:golang-devops-stuff,代码行数:43,代码来源:router_test.go
示例6: Addr
func (r elbRouter) Addr(name string) (string, error) {
backendName, err := router.Retrieve(name)
if err != nil {
return "", err
}
resp, err := r.elb().DescribeLoadBalancers(backendName)
if err != nil {
return "", err
}
return resp.LoadBalancerDescriptions[0].DNSName, nil
}
开发者ID:pombredanne,项目名称:docker-stuff,代码行数:11,代码来源:router.go
示例7: RemoveBackend
func (r elbRouter) RemoveBackend(name string) error {
backendName, err := router.Retrieve(name)
if err != nil {
return err
}
_, err = r.elb().DeleteLoadBalancer(backendName)
if err != nil {
return err
}
return router.Remove(backendName)
}
开发者ID:pombredanne,项目名称:docker-stuff,代码行数:11,代码来源:router.go
示例8: RemoveBackend
func (r *fakeRouter) RemoveBackend(name string) error {
backendName, err := router.Retrieve(name)
if err != nil {
return err
}
if !r.HasBackend(backendName) {
return ErrBackendNotFound
}
r.mutex.Lock()
defer r.mutex.Unlock()
delete(r.backends, backendName)
return nil
}
开发者ID:johntdyer,项目名称:golang-devops-stuff,代码行数:13,代码来源:router.go
示例9: SetCName
func (r *fakeRouter) SetCName(cname, name string) error {
backendName, err := router.Retrieve(name)
if err != nil {
return err
}
if !r.HasBackend(backendName) {
return nil
}
r.AddBackend(cname)
r.mutex.Lock()
defer r.mutex.Unlock()
r.backends[cname] = append(r.backends[backendName])
return nil
}
开发者ID:johntdyer,项目名称:golang-devops-stuff,代码行数:14,代码来源:router.go
示例10: AddRoute
func (r *fakeRouter) AddRoute(name, ip string) error {
backendName, err := router.Retrieve(name)
if err != nil {
return err
}
if !r.HasBackend(backendName) {
return ErrBackendNotFound
}
r.mutex.Lock()
defer r.mutex.Unlock()
routes := r.backends[backendName]
routes = append(routes, ip)
r.backends[backendName] = routes
return nil
}
开发者ID:johntdyer,项目名称:golang-devops-stuff,代码行数:15,代码来源:router.go
示例11: Routes
func (r elbRouter) Routes(name string) ([]string, error) {
backendName, err := router.Retrieve(name)
if err != nil {
return nil, err
}
var routes []string
resp, err := r.elb().DescribeLoadBalancers(backendName)
if err != nil {
return nil, err
}
for _, instance := range resp.LoadBalancerDescriptions[0].Instances {
routes = append(routes, instance.InstanceId)
}
return routes, nil
}
开发者ID:pombredanne,项目名称:docker-stuff,代码行数:15,代码来源:router.go
示例12: UnsetCName
func (r hipacheRouter) UnsetCName(cname, name string) error {
backendName, err := router.Retrieve(name)
if err != nil {
return err
}
conn := connect()
defer conn.Close()
_, err = conn.Do("DEL", "cname:"+backendName)
if err != nil {
return &routeError{"unsetCName", err}
}
_, err = conn.Do("DEL", "frontend:"+cname)
if err != nil {
return &routeError{"unsetCName", err}
}
return nil
}
开发者ID:rpeterson,项目名称:tsuru,代码行数:17,代码来源:router.go
示例13: Routes
func (hipacheRouter) Routes(name string) ([]string, error) {
backendName, err := router.Retrieve(name)
if err != nil {
return nil, err
}
domain, err := config.GetString("hipache:domain")
if err != nil {
return nil, &routeError{"routes", err}
}
frontend := "frontend:" + backendName + "." + domain
conn := connect()
defer conn.Close()
routes, err := redis.Strings(conn.Do("LRANGE", frontend, 0, -1))
if err != nil {
return nil, &routeError{"routes", err}
}
return routes, nil
}
开发者ID:rpeterson,项目名称:tsuru,代码行数:18,代码来源:router.go
示例14: Addr
func (hipacheRouter) Addr(name string) (string, error) {
backendName, err := router.Retrieve(name)
if err != nil {
return "", err
}
domain, err := config.GetString("hipache:domain")
if err != nil {
return "", &routeError{"get", err}
}
frontend := "frontend:" + backendName + "." + domain
conn := connect()
defer conn.Close()
reply, err := conn.Do("LRANGE", frontend, 0, 0)
if err != nil {
return "", &routeError{"get", err}
}
backends := reply.([]interface{})
if len(backends) < 1 {
return "", errRouteNotFound
}
return fmt.Sprintf("%s.%s", backendName, domain), nil
}
开发者ID:rpeterson,项目名称:tsuru,代码行数:22,代码来源:router.go
示例15: SetCName
func (r hipacheRouter) SetCName(cname, name string) error {
backendName, err := router.Retrieve(name)
if err != nil {
return err
}
domain, err := config.GetString("hipache:domain")
if err != nil {
return &routeError{"setCName", err}
}
if !r.validCName(cname) {
err := errors.New(fmt.Sprintf("Invalid CNAME %s. You can't use Tsuru's application domain.", cname))
return &routeError{"setCName", err}
}
frontend := "frontend:" + backendName + "." + domain
conn := connect()
defer conn.Close()
routes, err := redis.Strings(conn.Do("LRANGE", frontend, 0, -1))
if err != nil {
return &routeError{"get", err}
}
if oldCName, err := redis.String(conn.Do("GET", "cname:"+backendName)); err == nil && oldCName != "" {
err = r.UnsetCName(oldCName, backendName)
if err != nil {
return &routeError{"setCName", err}
}
}
_, err = conn.Do("SET", "cname:"+backendName, cname)
if err != nil {
return &routeError{"set", err}
}
frontend = "frontend:" + cname
for _, r := range routes {
_, err := conn.Do("RPUSH", frontend, r)
if err != nil {
return &routeError{"setCName", err}
}
}
return nil
}
开发者ID:rpeterson,项目名称:tsuru,代码行数:39,代码来源:router.go
示例16: RemoveRoute
func (r hipacheRouter) RemoveRoute(name, address string) error {
backendName, err := router.Retrieve(name)
if err != nil {
return err
}
domain, err := config.GetString("hipache:domain")
if err != nil {
return &routeError{"remove", err}
}
frontend := "frontend:" + backendName + "." + domain
if err := r.removeElement(frontend, address); err != nil {
return err
}
cname, err := r.getCName(backendName)
if err != nil {
return &routeError{"remove", err}
}
if cname == "" {
return nil
}
return r.removeElement("frontend:"+cname, address)
}
开发者ID:rpeterson,项目名称:tsuru,代码行数:22,代码来源:router.go
示例17: RemoveBackend
func (r hipacheRouter) RemoveBackend(name string) error {
backendName, err := router.Retrieve(name)
if err != nil {
return err
}
domain, err := config.GetString("hipache:domain")
if err != nil {
return &routeError{"remove", err}
}
frontend := "frontend:" + backendName + "." + domain
conn := connect()
defer conn.Close()
_, err = conn.Do("DEL", frontend)
if err != nil {
return &routeError{"remove", err}
}
err = router.Remove(backendName)
if err != nil {
return &routeError{"remove", err}
}
cname, err := r.getCName(backendName)
if err != nil {
return err
}
if cname == "" {
return nil
}
_, err = conn.Do("DEL", "frontend:"+cname)
if err != nil {
return &routeError{"remove", err}
}
_, err = conn.Do("DEL", "cname:"+backendName)
if err != nil {
return &routeError{"remove", err}
}
return nil
}
开发者ID:rpeterson,项目名称:tsuru,代码行数:37,代码来源:router.go
注:本文中的github.com/globocom/tsuru/router.Retrieve函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论