From 35ba6cc76dee89a57cc7869e79824bd9fc56e750 Mon Sep 17 00:00:00 2001 From: Dan Persa Date: Tue, 29 Dec 2015 15:48:39 +0100 Subject: [PATCH] Moved routeid to eskip package --- eskip/eskip.go | 25 +++++++++++++++++++++++++ etcd/etcd.go | 3 +-- innkeeper/eskiptojson.go | 3 +-- routeid/routeid.go | 29 ----------------------------- 4 files changed, 27 insertions(+), 33 deletions(-) delete mode 100644 routeid/routeid.go diff --git a/eskip/eskip.go b/eskip/eskip.go index bf365c98e7..65d0b7c41f 100644 --- a/eskip/eskip.go +++ b/eskip/eskip.go @@ -20,6 +20,8 @@ import ( "errors" "fmt" "strings" +"regexp" +"github.com/zalando/skipper/filters/flowid" ) // Represents a matcher condition for incoming requests. @@ -256,3 +258,26 @@ func ParseFilters(f string) ([]*Filter, error) { return rs[0].filters, nil } + +const randomIdLength = 16 + +var routeIdRx = regexp.MustCompile("\\W") + +// generate weak random id for a route if +// it doesn't have one. +func GenerateIfNeeded(existingId string) string { + if existingId != "" { + return existingId + } + + // using this to avoid adding a new dependency. + id, err := flowid.NewFlowId(randomIdLength) + if err != nil { + return existingId + } + + // replace characters that are not allowed + // for eskip route ids. + id = routeIdRx.ReplaceAllString(id, "x") + return "route" + id +} diff --git a/etcd/etcd.go b/etcd/etcd.go index b75683d52e..48e75ee915 100644 --- a/etcd/etcd.go +++ b/etcd/etcd.go @@ -33,7 +33,6 @@ import ( log "github.com/Sirupsen/logrus" "github.com/coreos/go-etcd/etcd" "github.com/zalando/skipper/eskip" - "github.com/zalando/skipper/routeid" "net/http" "path" ) @@ -239,7 +238,7 @@ func (c *Client) Delete(id string) error { func (c *Client) UpsertAll(routes []*eskip.Route) error { for _, r := range routes { - r.Id = routeid.GenerateIfNeeded(r.Id) + r.Id = eskip.GenerateIfNeeded(r.Id) err := c.Upsert(r) if err != nil { return err diff --git a/innkeeper/eskiptojson.go b/innkeeper/eskiptojson.go index bd6e895010..40a87eb967 100644 --- a/innkeeper/eskiptojson.go +++ b/innkeeper/eskiptojson.go @@ -2,7 +2,6 @@ package innkeeper import ( "github.com/zalando/skipper/eskip" - "github.com/zalando/skipper/routeid" ) func convertPathMatcher(r *eskip.Route) *pathMatcher { @@ -95,7 +94,7 @@ func convertEskipToInnkeeper(routes []*eskip.Route) (data []*routeData) { for _, r := range routes { - id := routeid.GenerateIfNeeded(r.Id) + id := eskip.GenerateIfNeeded(r.Id) host := convertHost(r) method := convertMethod(r) pathMatch := convertPathMatcher(r) diff --git a/routeid/routeid.go b/routeid/routeid.go deleted file mode 100644 index 1f90d0e61c..0000000000 --- a/routeid/routeid.go +++ /dev/null @@ -1,29 +0,0 @@ -package routeid - -import ( - "github.com/zalando/skipper/filters/flowid" - "regexp" -) - -const randomIdLength = 16 - -var routeIdRx = regexp.MustCompile("\\W") - -// generate weak random id for a route if -// it doesn't have one. -func GenerateIfNeeded(existingId string) string { - if existingId != "" { - return existingId - } - - // using this to avoid adding a new dependency. - id, err := flowid.NewFlowId(randomIdLength) - if err != nil { - return existingId - } - - // replace characters that are not allowed - // for eskip route ids. - id = routeIdRx.ReplaceAllString(id, "x") - return "route" + id -}