[ARVADOS] updated: 1.3.0-1460-ge7374a8db

Git user git at public.curoverse.com
Mon Aug 12 13:06:44 UTC 2019


Summary of changes:
 services/keepproxy/keepproxy.go      | 25 ++++++------
 services/keepproxy/keepproxy_test.go | 77 +++++++++++++++++++++++++++++++++++-
 2 files changed, 89 insertions(+), 13 deletions(-)

       via  e7374a8dbe6467add8506d52a8d25b9f0eee16dd (commit)
      from  f248e19664fec1268e2a736d698acfbd6147016e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit e7374a8dbe6467add8506d52a8d25b9f0eee16dd
Author: Eric Biagiotti <ebiagiotti at veritasgenetics.com>
Date:   Mon Aug 12 09:06:29 2019 -0400

    14715: Adds legacy config test
    
    Arvados-DCO-1.1-Signed-off-by: Eric Biagiotti <ebiagiotti at veritasgenetics.com>

diff --git a/services/keepproxy/keepproxy.go b/services/keepproxy/keepproxy.go
index f2a89e58e..824b748bc 100644
--- a/services/keepproxy/keepproxy.go
+++ b/services/keepproxy/keepproxy.go
@@ -41,7 +41,7 @@ var (
 
 const rfc3339NanoFixed = "2006-01-02T15:04:05.000000000Z07:00"
 
-func configure(logger log.FieldLogger, args []string) *arvados.Cluster {
+func configure(logger log.FieldLogger, args []string) (*arvados.Cluster, error) {
 	flags := flag.NewFlagSet(args[0], flag.ExitOnError)
 	flags.Usage = usage
 
@@ -57,31 +57,29 @@ func configure(logger log.FieldLogger, args []string) *arvados.Cluster {
 	// Print version information if requested
 	if *getVersion {
 		fmt.Printf("keepproxy %s\n", version)
-		return nil
+		return nil, nil
 	}
 
 	cfg, err := loader.Load()
 	if err != nil {
-		log.Fatal(err)
+		return nil, err
 	}
-
 	cluster, err := cfg.GetCluster("")
 	if err != nil {
-		log.Fatal(err)
+		return nil, err
 	}
 
 	if *dumpConfig {
 		out, err := yaml.Marshal(cfg)
 		if err != nil {
-			log.Fatal(err)
+			return nil, err
 		}
-		_, err = os.Stdout.Write(out)
-		if err != nil {
-			log.Fatal(err)
+		if _, err := os.Stdout.Write(out); err != nil {
+			return nil, err
 		}
-		return nil
+		return nil, nil
 	}
-	return cluster
+	return cluster, nil
 }
 
 func main() {
@@ -90,7 +88,10 @@ func main() {
 		TimestampFormat: rfc3339NanoFixed,
 	}
 
-	cluster := configure(logger, os.Args)
+	cluster, err := configure(logger, os.Args)
+	if err != nil {
+		log.Fatal(err)
+	}
 	if cluster == nil {
 		return
 	}
diff --git a/services/keepproxy/keepproxy_test.go b/services/keepproxy/keepproxy_test.go
index 5f19c8c1f..609da4f70 100644
--- a/services/keepproxy/keepproxy_test.go
+++ b/services/keepproxy/keepproxy_test.go
@@ -13,6 +13,7 @@ import (
 	"math/rand"
 	"net/http"
 	"net/http/httptest"
+	"os"
 	"strings"
 	"sync"
 	"testing"
@@ -107,7 +108,10 @@ func runProxy(c *C, bogusClientToken bool) *keepclient.KeepClient {
 	cluster.Services.Keepproxy.InternalURLs = map[arvados.URL]arvados.ServiceInstance{arvados.URL{Host: ":0"}: arvados.ServiceInstance{}}
 
 	listener = nil
-	go run(log.New(), cluster)
+	go func() {
+		run(log.New(), cluster)
+		defer closeListener()
+	}()
 	waitForListener()
 
 	client := arvados.NewClientFromEnv()
@@ -636,3 +640,74 @@ func (s *ServerRequiredSuite) TestPing(c *C) {
 	c.Check(resp.Code, Equals, 200)
 	c.Assert(resp.Body.String(), Matches, `{"health":"OK"}\n?`)
 }
+
+func (s *NoKeepServerSuite) TestLegacyConfig(c *C) {
+	content := []byte(fmtConfig("", true))
+	cluster, err := loadLegacyConfig(content, c)
+
+	c.Check(err, IsNil)
+	c.Check(cluster, NotNil)
+	c.Check(cluster.Services.Controller.ExternalURL, Equals, arvados.URL{Scheme: "https", Host: "example.com"})
+	c.Check(cluster.SystemRootToken, Equals, "abcdefg")
+	c.Check(cluster.ManagementToken, Equals, "xyzzy")
+	c.Check(cluster.Services.Keepproxy.InternalURLs[arvados.URL{Host: ":80"}], Equals, arvados.ServiceInstance{})
+	c.Check(cluster.Collections.DefaultReplication, Equals, 0)
+	c.Check(cluster.API.KeepServiceRequestTimeout.String(), Equals, "15s")
+	c.Check(cluster.SystemLogs.LogLevel, Equals, "debug")
+
+	content = []byte(fmtConfig("", false))
+	cluster, err = loadLegacyConfig(content, c)
+	c.Check(cluster.SystemLogs.LogLevel, Equals, "info")
+
+	content = []byte(fmtConfig(`"DisableGet": true,`, true))
+	_, err = loadLegacyConfig(content, c)
+	c.Check(err, NotNil)
+
+	content = []byte(fmtConfig(`"DisablePut": true,`, true))
+	_, err = loadLegacyConfig(content, c)
+	c.Check(err, NotNil)
+
+	content = []byte(fmtConfig(`"PIDFile": "test",`, true))
+	_, err = loadLegacyConfig(content, c)
+	c.Check(err, NotNil)
+
+	content = []byte(fmtConfig(`"DisableGet": false, "DisablePut": false, "PIDFile": "",`, true))
+	_, err = loadLegacyConfig(content, c)
+	c.Check(err, IsNil)
+
+}
+
+func loadLegacyConfig(content []byte, c *C) (*arvados.Cluster, error) {
+	tmpfile, err := ioutil.TempFile("", "example")
+	if err != nil {
+		c.Error(err)
+	}
+	defer os.Remove(tmpfile.Name())
+
+	if _, err := tmpfile.Write(content); err != nil {
+		c.Error(err)
+	}
+	if err := tmpfile.Close(); err != nil {
+		c.Error(err)
+	}
+	return configure(log.New(), []string{"keepproxy", "-config", tmpfile.Name()})
+}
+
+func fmtConfig(param string, debugLog bool) string {
+	return fmt.Sprintf(`
+{
+	"Client": {
+		"Scheme": "",
+		"APIHost": "example.com",
+		"AuthToken": "abcdefg",
+		"Insecure": false
+	},
+	"Listen": ":80",
+	"DefaultReplicas": 0,
+	"Timeout": "15s",
+	"Debug": %t,
+	%s
+	"ManagementToken": "xyzzy"
+}
+`, debugLog, param)
+}

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list