func (suite *environSuite) assertGetImageMetadataSources(c *gc.C, stream, officialSourcePath string) { // Make an env configured with the stream. testAttrs := maasEnvAttrs testAttrs = testAttrs.Merge(coretesting.Attrs{ "maas-server": suite.testMAASObject.TestServer.URL, }) if stream != "" { testAttrs = testAttrs.Merge(coretesting.Attrs{ "image-stream": stream, }) } attrs := coretesting.FakeConfig().Merge(testAttrs) cfg, err := config.New(config.NoDefaults, attrs) c.Assert(err, gc.IsNil) env, err := NewEnviron(cfg) c.Assert(err, gc.IsNil) // Add a dummy file to storage so we can use that to check the // obtained source later. data := makeRandomBytes(10) stor := NewStorage(env) err = stor.Put("images/filename", bytes.NewBuffer([]byte(data)), int64(len(data))) c.Assert(err, gc.IsNil) sources, err := imagemetadata.GetMetadataSources(env) c.Assert(err, gc.IsNil) c.Assert(len(sources), gc.Equals, 2) assertSourceContents(c, sources[0], "filename", data) url, err := sources[1].URL("") c.Assert(err, gc.IsNil) c.Assert(url, gc.Equals, fmt.Sprintf("http://cloud-images.ubuntu.com/%s/", officialSourcePath)) }
func dummyConfig(c *gc.C) *config.Config { testConfig, err := config.New(config.UseDefaults, coretesting.FakeConfig()) c.Assert(err, gc.IsNil) testConfig, err = testConfig.Apply(map[string]interface{}{ "type": "dummy", "state-server": false, "agent-version": version.Current.Number.String(), }) c.Assert(err, gc.IsNil) return testConfig }
// newConfig creates a MAAS environment config from attributes. func newConfig(values map[string]interface{}) (*maasEnvironConfig, error) { attrs := testing.FakeConfig().Merge(testing.Attrs{ "name": "testenv", "type": "maas", }).Merge(values) env, err := environs.NewFromAttrs(attrs) if err != nil { return nil, err } return env.(*maasEnviron).ecfg(), nil }
// To test UpdateEnvironConfig updates state, Validate returns a config // different to both input configs func mockValidCfg() (valid *config.Config, err error) { cfg, err := config.New(config.UseDefaults, coretesting.FakeConfig()) if err != nil { return nil, err } valid, err = cfg.Apply(map[string]interface{}{ "arbitrary-key": "cptn-marvel", }) if err != nil { return nil, err } return valid, nil }
func validAttrs() coretesting.Attrs { return coretesting.FakeConfig().Merge(coretesting.Attrs{ "type": "joyent", "sdc-user": "******", "sdc-key-id": "00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff", "sdc-url": "https://test.api.joyentcloud.com", "manta-user": "******", "manta-key-id": "00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff", "manta-url": "https://test.manta.joyent.com", "private-key-path": "~/.ssh/provider_id_rsa", "algorithm": "rsa-sha256", "control-dir": "juju-test", }) }
func makeTestConfig(cred *identity.Credentials) map[string]interface{} { // The following attributes hold the environment configuration // for running the OpenStack integration tests. // // This is missing keys for security reasons; set the following // environment variables to make the OpenStack testing work: // access-key: $OS_USERNAME // secret-key: $OS_PASSWORD // attrs := coretesting.FakeConfig().Merge(coretesting.Attrs{ "name": "sample-" + randomName(), "type": "openstack", "auth-mode": "userpass", "control-bucket": "juju-test-" + randomName(), "username": cred.User, "password": cred.Secrets, "region": cred.Region, "auth-url": cred.URL, "tenant-name": cred.TenantName, }) return attrs }
url, err := source.URL("") c.Assert(err, gc.IsNil) urls[i] = url } // The control bucket URL contains the bucket name. c.Check(strings.Contains(urls[0], ec2.ControlBucketName(env)+"/images"), jc.IsTrue) c.Assert(urls[1], gc.Equals, fmt.Sprintf("http://cloud-images.ubuntu.com/%s/", officialSourcePath)) } func (t *ProviderSuite) TestGetImageMetadataSources(c *gc.C) { t.assertGetImageMetadataSources(c, "", "releases") t.assertGetImageMetadataSources(c, "released", "releases") t.assertGetImageMetadataSources(c, "daily", "daily") } var localConfigAttrs = coretesting.FakeConfig().Merge(coretesting.Attrs{ "name": "sample", "type": "ec2", "region": "test", "control-bucket": "test-bucket", "access-key": "x", "secret-key": "x", "agent-version": version.Current.Number.String(), }) func registerLocalTests() { // N.B. Make sure the region we use here // has entries in the images/query txt files. aws.Regions["test"] = aws.Region{ Name: "test", }
func newConfig(c *gc.C, attrs coretesting.Attrs) *config.Config { attrs = coretesting.FakeConfig().Merge(attrs) cfg, err := config.New(config.UseDefaults, attrs) c.Assert(err, gc.IsNil) return cfg }
// makeConfigMap creates a minimal map of standard configuration items, // adds the given extra items to that and returns it. func makeConfigMap(extra map[string]interface{}) map[string]interface{} { return testing.FakeConfig().Merge(testing.Attrs{ "name": "testenv", "type": "azure", }).Merge(extra) }