From 0f5295ae31362eefe182f3a2329b3903d6f82a3b Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Thu, 1 Jun 2017 17:37:37 -0400 Subject: [PATCH] 9005: Replace matchTrue regexp with StringBool func. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- sdk/go/arvadosclient/arvadosclient.go | 10 ++++++++-- sdk/go/keepclient/support.go | 5 ++--- tools/keep-block-check/keep-block-check.go | 7 ++----- tools/keep-block-check/keep-block-check_test.go | 5 +++-- tools/keep-rsync/keep-rsync.go | 7 ++----- tools/keep-rsync/keep-rsync_test.go | 11 ++++++----- 6 files changed, 23 insertions(+), 22 deletions(-) diff --git a/sdk/go/arvadosclient/arvadosclient.go b/sdk/go/arvadosclient/arvadosclient.go index 7e33ec0ce6..4cfda94581 100644 --- a/sdk/go/arvadosclient/arvadosclient.go +++ b/sdk/go/arvadosclient/arvadosclient.go @@ -74,6 +74,13 @@ func (e APIServerError) Error() string { } } +// StringBool tests whether s is suggestive of true. It returns true +// if s is a mixed/uppoer/lower-case variant of "1", "yes", or "true". +func StringBool(s string) bool { + s = strings.ToLower(s) + return s == "1" || s == "yes" || s == "true" +} + // Helper type so we don't have to write out 'map[string]interface{}' every time. type Dict map[string]interface{} @@ -175,12 +182,11 @@ func New(c *arvados.Client) (*ArvadosClient, error) { // ARVADOS_API_HOST_INSECURE, ARVADOS_EXTERNAL_CLIENT, and // ARVADOS_KEEP_SERVICES. func MakeArvadosClient() (ac *ArvadosClient, err error) { - var matchTrue = regexp.MustCompile("^(?i:1|yes|true)$") ac, err = New(arvados.NewClientFromEnv()) if err != nil { return } - ac.External = matchTrue.MatchString(os.Getenv("ARVADOS_EXTERNAL_CLIENT")) + ac.External = StringBool(os.Getenv("ARVADOS_EXTERNAL_CLIENT")) return } diff --git a/sdk/go/keepclient/support.go b/sdk/go/keepclient/support.go index 0e74892a40..8545cb80b8 100644 --- a/sdk/go/keepclient/support.go +++ b/sdk/go/keepclient/support.go @@ -10,9 +10,9 @@ import ( "math/rand" "net/http" "os" - "regexp" "strings" + "git.curoverse.com/arvados.git/sdk/go/arvadosclient" "git.curoverse.com/arvados.git/sdk/go/streamer" ) @@ -22,8 +22,7 @@ import ( var DebugPrintf = func(string, ...interface{}) {} func init() { - var matchTrue = regexp.MustCompile("^(?i:1|yes|true)$") - if matchTrue.MatchString(os.Getenv("ARVADOS_DEBUG")) { + if arvadosclient.StringBool(os.Getenv("ARVADOS_DEBUG")) { DebugPrintf = log.Printf } } diff --git a/tools/keep-block-check/keep-block-check.go b/tools/keep-block-check/keep-block-check.go index e57a9abed4..e22e4b5cfe 100644 --- a/tools/keep-block-check/keep-block-check.go +++ b/tools/keep-block-check/keep-block-check.go @@ -9,7 +9,6 @@ import ( "log" "net/http" "os" - "regexp" "strings" "time" @@ -100,8 +99,6 @@ func loadConfig(configFile string) (config apiConfig, blobSigningKey string, err return } -var matchTrue = regexp.MustCompile("^(?i:1|yes|true)$") - // Read config from file func readConfigFromFile(filename string) (config apiConfig, blobSigningKey string, err error) { if !strings.Contains(filename, "/") { @@ -131,9 +128,9 @@ func readConfigFromFile(filename string) (config apiConfig, blobSigningKey strin case "ARVADOS_API_HOST": config.APIHost = value case "ARVADOS_API_HOST_INSECURE": - config.APIHostInsecure = matchTrue.MatchString(value) + config.APIHostInsecure = arvadosclient.StringBool(value) case "ARVADOS_EXTERNAL_CLIENT": - config.ExternalClient = matchTrue.MatchString(value) + config.ExternalClient = arvadosclient.StringBool(value) case "ARVADOS_BLOB_SIGNING_KEY": blobSigningKey = value } diff --git a/tools/keep-block-check/keep-block-check_test.go b/tools/keep-block-check/keep-block-check_test.go index 51a0938b04..34d4f022bf 100644 --- a/tools/keep-block-check/keep-block-check_test.go +++ b/tools/keep-block-check/keep-block-check_test.go @@ -12,6 +12,7 @@ import ( "testing" "time" + "git.curoverse.com/arvados.git/sdk/go/arvadosclient" "git.curoverse.com/arvados.git/sdk/go/arvadostest" "git.curoverse.com/arvados.git/sdk/go/keepclient" @@ -80,7 +81,7 @@ func setupKeepBlockCheckWithTTL(c *C, enforcePermissions bool, keepServicesJSON var config apiConfig config.APIHost = os.Getenv("ARVADOS_API_HOST") config.APIToken = arvadostest.DataManagerToken - config.APIHostInsecure = matchTrue.MatchString(os.Getenv("ARVADOS_API_HOST_INSECURE")) + config.APIHostInsecure = arvadosclient.StringBool(os.Getenv("ARVADOS_API_HOST_INSECURE")) // Start Keep servers arvadostest.StartKeep(2, enforcePermissions) @@ -290,7 +291,7 @@ func (s *ServerRequiredSuite) TestLoadConfig(c *C) { c.Assert(config.APIHost, Equals, os.Getenv("ARVADOS_API_HOST")) c.Assert(config.APIToken, Equals, arvadostest.DataManagerToken) - c.Assert(config.APIHostInsecure, Equals, matchTrue.MatchString(os.Getenv("ARVADOS_API_HOST_INSECURE"))) + c.Assert(config.APIHostInsecure, Equals, arvadosclient.StringBool(os.Getenv("ARVADOS_API_HOST_INSECURE"))) c.Assert(config.ExternalClient, Equals, false) c.Assert(blobSigningKey, Equals, "abcdefg") } diff --git a/tools/keep-rsync/keep-rsync.go b/tools/keep-rsync/keep-rsync.go index d21a624f64..b1513a02a7 100644 --- a/tools/keep-rsync/keep-rsync.go +++ b/tools/keep-rsync/keep-rsync.go @@ -10,7 +10,6 @@ import ( "log" "net/http" "os" - "regexp" "strings" "time" @@ -120,8 +119,6 @@ func loadConfig(configFile string) (config apiConfig, blobSigningKey string, err return } -var matchTrue = regexp.MustCompile("^(?i:1|yes|true)$") - // Read config from file func readConfigFromFile(filename string) (config apiConfig, blobSigningKey string, err error) { if !strings.Contains(filename, "/") { @@ -150,9 +147,9 @@ func readConfigFromFile(filename string) (config apiConfig, blobSigningKey strin case "ARVADOS_API_HOST": config.APIHost = value case "ARVADOS_API_HOST_INSECURE": - config.APIHostInsecure = matchTrue.MatchString(value) + config.APIHostInsecure = arvadosclient.StringBool(value) case "ARVADOS_EXTERNAL_CLIENT": - config.ExternalClient = matchTrue.MatchString(value) + config.ExternalClient = arvadosclient.StringBool(value) case "ARVADOS_BLOB_SIGNING_KEY": blobSigningKey = value } diff --git a/tools/keep-rsync/keep-rsync_test.go b/tools/keep-rsync/keep-rsync_test.go index ec0c70f7ef..fec1f354c9 100644 --- a/tools/keep-rsync/keep-rsync_test.go +++ b/tools/keep-rsync/keep-rsync_test.go @@ -9,6 +9,7 @@ import ( "testing" "time" + "git.curoverse.com/arvados.git/sdk/go/arvadosclient" "git.curoverse.com/arvados.git/sdk/go/arvadostest" "git.curoverse.com/arvados.git/sdk/go/keepclient" @@ -85,13 +86,13 @@ func setupRsync(c *C, enforcePermissions bool, replications int) { var srcConfig apiConfig srcConfig.APIHost = os.Getenv("ARVADOS_API_HOST") srcConfig.APIToken = arvadostest.DataManagerToken - srcConfig.APIHostInsecure = matchTrue.MatchString(os.Getenv("ARVADOS_API_HOST_INSECURE")) + srcConfig.APIHostInsecure = arvadosclient.StringBool(os.Getenv("ARVADOS_API_HOST_INSECURE")) // dstConfig var dstConfig apiConfig dstConfig.APIHost = os.Getenv("ARVADOS_API_HOST") dstConfig.APIToken = arvadostest.DataManagerToken - dstConfig.APIHostInsecure = matchTrue.MatchString(os.Getenv("ARVADOS_API_HOST_INSECURE")) + dstConfig.APIHostInsecure = arvadosclient.StringBool(os.Getenv("ARVADOS_API_HOST_INSECURE")) if enforcePermissions { blobSigningKey = arvadostest.BlobSigningKey @@ -366,7 +367,7 @@ func (s *ServerNotRequiredSuite) TestLoadConfig(c *C) { c.Assert(srcConfig.APIHost, Equals, os.Getenv("ARVADOS_API_HOST")) c.Assert(srcConfig.APIToken, Equals, arvadostest.DataManagerToken) - c.Assert(srcConfig.APIHostInsecure, Equals, matchTrue.MatchString(os.Getenv("ARVADOS_API_HOST_INSECURE"))) + c.Assert(srcConfig.APIHostInsecure, Equals, arvadosclient.StringBool(os.Getenv("ARVADOS_API_HOST_INSECURE"))) c.Assert(srcConfig.ExternalClient, Equals, false) dstConfig, _, err := loadConfig(dstConfigFile) @@ -374,7 +375,7 @@ func (s *ServerNotRequiredSuite) TestLoadConfig(c *C) { c.Assert(dstConfig.APIHost, Equals, os.Getenv("ARVADOS_API_HOST")) c.Assert(dstConfig.APIToken, Equals, arvadostest.DataManagerToken) - c.Assert(dstConfig.APIHostInsecure, Equals, matchTrue.MatchString(os.Getenv("ARVADOS_API_HOST_INSECURE"))) + c.Assert(dstConfig.APIHostInsecure, Equals, arvadosclient.StringBool(os.Getenv("ARVADOS_API_HOST_INSECURE"))) c.Assert(dstConfig.ExternalClient, Equals, false) c.Assert(srcBlobSigningKey, Equals, "abcdefg") @@ -397,7 +398,7 @@ func (s *ServerNotRequiredSuite) TestSetupKeepClient_NoBlobSignatureTTL(c *C) { var srcConfig apiConfig srcConfig.APIHost = os.Getenv("ARVADOS_API_HOST") srcConfig.APIToken = arvadostest.DataManagerToken - srcConfig.APIHostInsecure = matchTrue.MatchString(os.Getenv("ARVADOS_API_HOST_INSECURE")) + srcConfig.APIHostInsecure = arvadosclient.StringBool(os.Getenv("ARVADOS_API_HOST_INSECURE")) _, ttl, err := setupKeepClient(srcConfig, srcKeepServicesJSON, false, 0, 0) c.Check(err, IsNil) -- 2.30.2