From b5871d7a538a8e5b1830545dbe02a9db1fbd896b Mon Sep 17 00:00:00 2001 From: jackgr Date: Wed, 6 Apr 2016 17:25:39 -0700 Subject: [PATCH] Make env var parsing more robust --- pkg/util/kubernetes.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/util/kubernetes.go b/pkg/util/kubernetes.go index df3f5785c..a3adf62d5 100644 --- a/pkg/util/kubernetes.go +++ b/pkg/util/kubernetes.go @@ -20,6 +20,7 @@ import ( "fmt" "log" "net" + "net/url" "os" "strings" ) @@ -77,7 +78,13 @@ func GetServiceURL(serviceName, servicePort, serviceURL string) (string, error) varName := strings.ToUpper(varBase) + "_PORT" serviceURL := os.Getenv(varName) if serviceURL != "" { - return strings.Replace(serviceURL, "tcp", "http", 1), nil + u, err := url.Parse(serviceURL) + if err != nil || u.Path != "" || u.Scheme != "tcp" { + return "", fmt.Errorf("malformed value: %s for envinronment variable: %s", serviceURL, varName) + } + + u.Scheme = "http" + return u.String(), nil } if servicePort != "" {