X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b6d7efab2c4bffa3fabd55b166e44cca8ac1391f..HEAD:/lib/config/deprecated_test.go diff --git a/lib/config/deprecated_test.go b/lib/config/deprecated_test.go index 58c27e984a..0feeec5e55 100644 --- a/lib/config/deprecated_test.go +++ b/lib/config/deprecated_test.go @@ -35,7 +35,9 @@ func testLoadLegacyConfig(content []byte, mungeFlag string, c *check.C) (*arvado ldr := testLoader(c, "Clusters: {zzzzz: {}}", nil) ldr.SetupFlags(flags) args := ldr.MungeLegacyConfigArgs(ldr.Logger, []string{"-config", tmpfile.Name()}, mungeFlag) - flags.Parse(args) + err = flags.Parse(args) + c.Assert(err, check.IsNil) + c.Assert(flags.NArg(), check.Equals, 0) cfg, err := ldr.Load() if err != nil { return nil, err @@ -47,6 +49,68 @@ func testLoadLegacyConfig(content []byte, mungeFlag string, c *check.C) (*arvado return cluster, nil } +func (s *LoadSuite) TestOldEmailConfiguration(c *check.C) { + logs := checkEquivalent(c, ` +Clusters: + z1111: + Mail: + SendUserSetupNotificationEmail: false + SupportEmailAddress: "support@example.invalid" +`, ` +Clusters: + z1111: + Users: + SendUserSetupNotificationEmail: false + SupportEmailAddress: "support@example.invalid" +`) + c.Check(logs, check.Matches, `(?ms).*deprecated or unknown config entry: .*Mail\.SendUserSetupNotificationEmail.*`) + c.Check(logs, check.Matches, `(?ms).*deprecated or unknown config entry: .*Mail\.SupportEmailAddress.*`) + c.Check(logs, check.Matches, `(?ms).*using your old config key Mail\.SendUserSetupNotificationEmail -- but you should rename it to Users\.SendUserSetupNotificationEmail.*`) + c.Check(logs, check.Matches, `(?ms).*using your old config key Mail\.SupportEmailAddress -- but you should rename it to Users\.SupportEmailAddress.*`) +} + +func (s *LoadSuite) TestLegacyVolumeDriverParameters(c *check.C) { + logs := checkEquivalent(c, ` +Clusters: + z1111: + Volumes: + z1111-nyw5e-aaaaaaaaaaaaaaa: + Driver: S3 + DriverParameters: + AccessKey: exampleaccesskey + SecretKey: examplesecretkey + Region: foobar + ReadTimeout: 1200s +`, ` +Clusters: + z1111: + Volumes: + z1111-nyw5e-aaaaaaaaaaaaaaa: + Driver: S3 + DriverParameters: + AccessKeyID: exampleaccesskey + SecretAccessKey: examplesecretkey + Region: foobar + ReadTimeout: 1200s +`) + c.Check(logs, check.Matches, `(?ms).*deprecated or unknown config entry: .*AccessKey.*`) + c.Check(logs, check.Matches, `(?ms).*deprecated or unknown config entry: .*SecretKey.*`) + c.Check(logs, check.Matches, `(?ms).*using your old config keys z1111\.Volumes\.z1111-nyw5e-aaaaaaaaaaaaaaa\.DriverParameters\.AccessKey/SecretKey -- but you should rename them to AccessKeyID/SecretAccessKey.*`) + + _, err := testLoader(c, ` +Clusters: + z1111: + Volumes: + z1111-nyw5e-aaaaaaaaaaaaaaa: + Driver: S3 + DriverParameters: + AccessKey: exampleaccesskey + SecretKey: examplesecretkey + AccessKeyID: exampleaccesskey +`, nil).Load() + c.Check(err, check.ErrorMatches, `(?ms).*cannot use .*SecretKey.*and.*SecretAccessKey.*in z1111.Volumes.z1111-nyw5e-aaaaaaaaaaaaaaa.DriverParameters.*`) +} + func (s *LoadSuite) TestDeprecatedNodeProfilesToServices(c *check.C) { hostname, err := os.Hostname() c.Assert(err, check.IsNil) @@ -89,6 +153,41 @@ Clusters: `) } +func (s *LoadSuite) TestDeprecatedLoginBackend(c *check.C) { + checkEquivalent(c, ` +Clusters: + z1111: + Login: + GoogleClientID: aaaa + GoogleClientSecret: bbbb + GoogleAlternateEmailAddresses: true +`, ` +Clusters: + z1111: + Login: + Google: + Enable: true + ClientID: aaaa + ClientSecret: bbbb + AlternateEmailAddresses: true +`) + checkEquivalent(c, ` +Clusters: + z1111: + Login: + ProviderAppID: aaaa + ProviderAppSecret: bbbb +`, ` +Clusters: + z1111: + Login: + SSO: + Enable: true + ProviderAppID: aaaa + ProviderAppSecret: bbbb +`) +} + func (s *LoadSuite) TestLegacyKeepWebConfig(c *check.C) { content := []byte(` { @@ -108,26 +207,21 @@ func (s *LoadSuite) TestLegacyKeepWebConfig(c *check.C) { "UUIDTTL": "1s", "MaxCollectionEntries": 42, "MaxCollectionBytes": 1234567890, - "MaxPermissionEntries": 100, "MaxUUIDEntries": 100 }, "ManagementToken": "xyzzy" } `) cluster, err := testLoadLegacyConfig(content, "-legacy-keepweb-config", c) - c.Check(err, check.IsNil) + c.Assert(err, check.IsNil) - c.Check(cluster.Services.Controller.ExternalURL, check.Equals, arvados.URL{Scheme: "https", Host: "example.com"}) + c.Check(cluster.Services.Controller.ExternalURL, check.Equals, arvados.URL{Scheme: "https", Host: "example.com", Path: "/"}) c.Check(cluster.SystemRootToken, check.Equals, "abcdefg") c.Check(cluster.Collections.WebDAVCache.TTL, check.Equals, arvados.Duration(60*time.Second)) - c.Check(cluster.Collections.WebDAVCache.UUIDTTL, check.Equals, arvados.Duration(time.Second)) - c.Check(cluster.Collections.WebDAVCache.MaxCollectionEntries, check.Equals, 42) - c.Check(cluster.Collections.WebDAVCache.MaxCollectionBytes, check.Equals, int64(1234567890)) - c.Check(cluster.Collections.WebDAVCache.MaxPermissionEntries, check.Equals, 100) - c.Check(cluster.Collections.WebDAVCache.MaxUUIDEntries, check.Equals, 100) + c.Check(cluster.Collections.WebDAVCache.MaxCollectionBytes, check.Equals, arvados.ByteSize(1234567890)) - c.Check(cluster.Services.WebDAVDownload.ExternalURL, check.Equals, arvados.URL{Host: "download.example.com"}) + c.Check(cluster.Services.WebDAVDownload.ExternalURL, check.Equals, arvados.URL{Host: "download.example.com", Path: "/"}) c.Check(cluster.Services.WebDAVDownload.InternalURLs[arvados.URL{Host: ":80"}], check.NotNil) c.Check(cluster.Services.WebDAV.InternalURLs[arvados.URL{Host: ":80"}], check.NotNil) @@ -148,7 +242,7 @@ func (s *LoadSuite) TestLegacyKeepWebConfigDoesntDisableMissingItems(c *check.C) } `) cluster, err := testLoadLegacyConfig(content, "-legacy-keepweb-config", c) - c.Check(err, check.IsNil) + c.Assert(err, check.IsNil) // The resulting ManagementToken should be the one set up on the test server. c.Check(cluster.ManagementToken, check.Equals, TestServerManagementToken) } @@ -158,9 +252,9 @@ func (s *LoadSuite) TestLegacyKeepproxyConfig(c *check.C) { content := []byte(fmtKeepproxyConfig("", true)) cluster, err := testLoadLegacyConfig(content, f, c) - c.Check(err, check.IsNil) - c.Check(cluster, check.NotNil) - c.Check(cluster.Services.Controller.ExternalURL, check.Equals, arvados.URL{Scheme: "https", Host: "example.com"}) + c.Assert(err, check.IsNil) + c.Assert(cluster, check.NotNil) + c.Check(cluster.Services.Controller.ExternalURL, check.Equals, arvados.URL{Scheme: "https", Host: "example.com", Path: "/"}) c.Check(cluster.SystemRootToken, check.Equals, "abcdefg") c.Check(cluster.ManagementToken, check.Equals, "xyzzy") c.Check(cluster.Services.Keepproxy.InternalURLs[arvados.URL{Host: ":80"}], check.Equals, arvados.ServiceInstance{}) @@ -170,6 +264,7 @@ func (s *LoadSuite) TestLegacyKeepproxyConfig(c *check.C) { content = []byte(fmtKeepproxyConfig("", false)) cluster, err = testLoadLegacyConfig(content, f, c) + c.Check(err, check.IsNil) c.Check(cluster.SystemLogs.LogLevel, check.Equals, "info") content = []byte(fmtKeepproxyConfig(`"DisableGet": true,`, true)) @@ -208,59 +303,13 @@ func fmtKeepproxyConfig(param string, debugLog bool) string { `, debugLog, param) } -func (s *LoadSuite) TestLegacyArvGitHttpdConfig(c *check.C) { - content := []byte(` -{ - "Client": { - "Scheme": "", - "APIHost": "example.com", - "AuthToken": "abcdefg", - }, - "Listen": ":9000", - "GitCommand": "/test/git", - "GitoliteHome": "/test/gitolite", - "RepoRoot": "/test/reporoot", - "ManagementToken": "xyzzy" -} -`) - f := "-legacy-git-httpd-config" - cluster, err := testLoadLegacyConfig(content, f, c) - - c.Check(err, check.IsNil) - c.Check(cluster, check.NotNil) - c.Check(cluster.Services.Controller.ExternalURL, check.Equals, arvados.URL{Scheme: "https", Host: "example.com"}) - c.Check(cluster.SystemRootToken, check.Equals, "abcdefg") - c.Check(cluster.ManagementToken, check.Equals, "xyzzy") - c.Check(cluster.Git.GitCommand, check.Equals, "/test/git") - c.Check(cluster.Git.GitoliteHome, check.Equals, "/test/gitolite") - c.Check(cluster.Git.Repositories, check.Equals, "/test/reporoot") - c.Check(cluster.Services.Keepproxy.InternalURLs[arvados.URL{Host: ":9000"}], check.Equals, arvados.ServiceInstance{}) -} - -// Tests fix for https://dev.arvados.org/issues/15642 -func (s *LoadSuite) TestLegacyArvGitHttpdConfigDoesntDisableMissingItems(c *check.C) { - content := []byte(` -{ - "Client": { - "Scheme": "", - "APIHost": "example.com", - "AuthToken": "abcdefg", - } -} -`) - cluster, err := testLoadLegacyConfig(content, "-legacy-git-httpd-config", c) - c.Check(err, check.IsNil) - // The resulting ManagementToken should be the one set up on the test server. - c.Check(cluster.ManagementToken, check.Equals, TestServerManagementToken) -} - func (s *LoadSuite) TestLegacyKeepBalanceConfig(c *check.C) { f := "-legacy-keepbalance-config" content := []byte(fmtKeepBalanceConfig("")) cluster, err := testLoadLegacyConfig(content, f, c) - c.Check(err, check.IsNil) - c.Check(cluster, check.NotNil) + c.Assert(err, check.IsNil) + c.Assert(cluster, check.NotNil) c.Check(cluster.ManagementToken, check.Equals, "xyzzy") c.Check(cluster.Services.Keepbalance.InternalURLs[arvados.URL{Host: ":80"}], check.Equals, arvados.ServiceInstance{}) c.Check(cluster.Collections.BalanceCollectionBuffers, check.Equals, 1000)