Merge pull request #15845 from ddysher/service-locator

Auto commit by PR queue bot
This commit is contained in:
k8s-merge-robot 2015-10-20 01:04:18 -07:00
commit c45625eb77
2 changed files with 21 additions and 0 deletions

View File

@ -309,6 +309,15 @@ func (rs *REST) ResourceLocation(ctx api.Context, id string) (*url.URL, http.Rou
Scheme: svcScheme,
Host: net.JoinHostPort(ip, strconv.Itoa(port)),
}, rs.proxyTransport, nil
} else {
port, err := strconv.ParseInt(portStr, 10, 64)
if err == nil && int(port) == ss.Ports[i].Port {
ip := ss.Addresses[rand.Intn(len(ss.Addresses))].IP
return &url.URL{
Scheme: svcScheme,
Host: net.JoinHostPort(ip, portStr),
}, rs.proxyTransport, nil
}
}
}
}

View File

@ -491,6 +491,18 @@ func TestServiceRegistryResourceLocation(t *testing.T) {
t.Errorf("Expected %v, but got %v", e, a)
}
// Test a name + port number.
location, _, err = redirector.ResourceLocation(ctx, "foo:93")
if err != nil {
t.Errorf("Unexpected error: %v", err)
}
if location == nil {
t.Errorf("Unexpected nil: %v", location)
}
if e, a := "//1.2.3.4:93", location.String(); e != a {
t.Errorf("Expected %v, but got %v", e, a)
}
// Test a scheme + name + port.
location, _, err = redirector.ResourceLocation(ctx, "https:foo:p")
if err != nil {