fix: convert key to domain (#5064)
fix convert key to domain when key ends with '/'
This commit is contained in:
parent
6377e6a9d9
commit
49ee97994e
2 changed files with 15 additions and 0 deletions
|
@ -22,6 +22,9 @@ func Path(s, prefix string) string {
|
||||||
// Domain is the opposite of Path.
|
// Domain is the opposite of Path.
|
||||||
func Domain(s string) string {
|
func Domain(s string) string {
|
||||||
l := strings.Split(s, "/")
|
l := strings.Split(s, "/")
|
||||||
|
if l[len(l)-1] == "" {
|
||||||
|
l = l[:len(l)-1]
|
||||||
|
}
|
||||||
// start with 1, to strip /skydns
|
// start with 1, to strip /skydns
|
||||||
for i, j := 1, len(l)-1; i < j; i, j = i+1, j-1 {
|
for i, j := 1, len(l)-1; i < j; i, j = i+1, j-1 {
|
||||||
l[i], l[j] = l[j], l[i]
|
l[i], l[j] = l[j], l[i]
|
||||||
|
|
|
@ -10,3 +10,15 @@ func TestPath(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDomain(t *testing.T) {
|
||||||
|
result1 := Domain("/skydns/local/cluster/staging/service/")
|
||||||
|
if result1 != "service.staging.cluster.local." {
|
||||||
|
t.Errorf("Failure to get domain from etcd key (with a trailing '/'), expect: 'service.staging.cluster.local.', actually get: '%s'", result1)
|
||||||
|
}
|
||||||
|
|
||||||
|
result2 := Domain("/skydns/local/cluster/staging/service")
|
||||||
|
if result2 != "service.staging.cluster.local." {
|
||||||
|
t.Errorf("Failure to get domain from etcd key (without trailing '/'), expect: 'service.staging.cluster.local.' actually get: '%s'", result2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue