Update encoding to be backwards compatible.
This commit is contained in:
parent
e941796234
commit
61178d1b45
@ -108,7 +108,7 @@ func (c *consulRegistry) Register(s *Service, opts ...RegisterOption) error {
|
|||||||
|
|
||||||
tags := encodeMetadata(node.Metadata)
|
tags := encodeMetadata(node.Metadata)
|
||||||
tags = append(tags, encodeEndpoints(s.Endpoints)...)
|
tags = append(tags, encodeEndpoints(s.Endpoints)...)
|
||||||
tags = append(tags, encodeVersion(s.Version))
|
tags = append(tags, encodeVersion(s.Version)...)
|
||||||
|
|
||||||
var check *consul.AgentServiceCheck
|
var check *consul.AgentServiceCheck
|
||||||
|
|
||||||
|
@ -45,6 +45,10 @@ func encodeEndpoints(en []*Endpoint) []string {
|
|||||||
var tags []string
|
var tags []string
|
||||||
for _, e := range en {
|
for _, e := range en {
|
||||||
if b, err := json.Marshal(e); err == nil {
|
if b, err := json.Marshal(e); err == nil {
|
||||||
|
// old encoding
|
||||||
|
// TODO: remove in 09/2016
|
||||||
|
tags = append(tags, "e="+string(b))
|
||||||
|
// new encoding
|
||||||
tags = append(tags, "e-"+encode(b))
|
tags = append(tags, "e-"+encode(b))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -84,6 +88,10 @@ func encodeMetadata(md map[string]string) []string {
|
|||||||
if b, err := json.Marshal(map[string]string{
|
if b, err := json.Marshal(map[string]string{
|
||||||
k: v,
|
k: v,
|
||||||
}); err == nil {
|
}); err == nil {
|
||||||
|
// old encoding
|
||||||
|
// TODO: remove in 09/2016
|
||||||
|
tags = append(tags, "t="+string(b))
|
||||||
|
// new encoding
|
||||||
tags = append(tags, "t-"+encode(b))
|
tags = append(tags, "t-"+encode(b))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -120,8 +128,14 @@ func decodeMetadata(tags []string) map[string]string {
|
|||||||
return md
|
return md
|
||||||
}
|
}
|
||||||
|
|
||||||
func encodeVersion(v string) string {
|
func encodeVersion(v string) []string {
|
||||||
return "v-" + encode([]byte(v))
|
return []string{
|
||||||
|
// old encoding,
|
||||||
|
// TODO: remove in 09/2016
|
||||||
|
"v=" + v,
|
||||||
|
// new encoding,
|
||||||
|
"v-" + encode([]byte(v)),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func decodeVersion(tags []string) (string, bool) {
|
func decodeVersion(tags []string) (string, bool) {
|
||||||
|
@ -33,7 +33,7 @@ func TestEncodingEndpoints(t *testing.T) {
|
|||||||
for _, data := range testData {
|
for _, data := range testData {
|
||||||
e := encodeEndpoints([]*Endpoint{data.decoded})
|
e := encodeEndpoints([]*Endpoint{data.decoded})
|
||||||
|
|
||||||
if len(e) != 1 || e[0] != data.encoded {
|
if len(e) != 2 || e[1] != data.encoded {
|
||||||
t.Fatalf("Expected %s got %s", data.encoded, e)
|
t.Fatalf("Expected %s got %s", data.encoded, e)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,11 +82,11 @@ func TestEncodingVersion(t *testing.T) {
|
|||||||
for _, data := range testData {
|
for _, data := range testData {
|
||||||
e := encodeVersion(data.decoded)
|
e := encodeVersion(data.decoded)
|
||||||
|
|
||||||
if e != data.encoded {
|
if e[1] != data.encoded {
|
||||||
t.Fatalf("Expected %s got %s", data.encoded, e)
|
t.Fatalf("Expected %s got %s", data.encoded, e)
|
||||||
}
|
}
|
||||||
|
|
||||||
d, ok := decodeVersion([]string{e})
|
d, ok := decodeVersion(e)
|
||||||
if !ok {
|
if !ok {
|
||||||
t.Fatal("Unexpected %t for %s", ok, data.encoded)
|
t.Fatal("Unexpected %t for %s", ok, data.encoded)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user