94
func cacheTestEnvConfig(c *gc.C) {
95
func cacheTestEnvConfig(c *gc.C, store *jujuclienttesting.MemStore) {
96
ec2UUID := utils.MustNewUUID().String()
95
97
ec2Config, err := config.New(config.UseDefaults, map[string]interface{}{
98
"default-series": "precise",
99
"region": "us-east-1",
100
"default-series": "precise",
101
"region": "us-east-1",
102
"controller-uuid": ec2UUID,
101
105
c.Assert(err, jc.ErrorIsNil)
106
store.Controllers["ec2-controller"] = jujuclient.ControllerDetails{
107
ControllerUUID: coretesting.ModelTag.Id(),
108
CACert: coretesting.CACert,
110
store.Accounts["ec2-controller"] = &jujuclient.ControllerAccounts{
111
CurrentAccount: "admin@local",
113
store.BootstrapConfig["ec2-controller"] = jujuclient.BootstrapConfig{
114
Config: ec2Config.AllAttrs(),
116
CloudRegion: "us-east-1",
119
azureUUID := utils.MustNewUUID().String()
103
120
azureConfig, err := config.New(config.UseDefaults, map[string]interface{}{
106
"default-series": "raring",
107
"location": "West US",
108
"endpoint": "https://management.azure.com",
109
"storage-endpoint": "https://core.windows.net",
110
"subscription-id": "foo",
111
"application-id": "bar",
112
"application-password": "baz",
114
"controller-resource-group": "fnord",
123
"controller-uuid": azureUUID,
125
"default-series": "raring",
126
"location": "West US",
127
"subscription-id": "foo",
128
"application-id": "bar",
129
"application-password": "baz",
116
132
c.Assert(err, jc.ErrorIsNil)
118
store, err := configstore.Default()
119
c.Assert(err, jc.ErrorIsNil)
121
ec2 := store.CreateInfo("ec2")
122
c.Assert(err, jc.ErrorIsNil)
123
ec2.SetBootstrapConfig(ec2Config.AllAttrs())
125
c.Assert(err, jc.ErrorIsNil)
127
azure := store.CreateInfo("azure")
128
c.Assert(err, jc.ErrorIsNil)
129
azure.SetBootstrapConfig(azureConfig.AllAttrs())
131
c.Assert(err, jc.ErrorIsNil)
133
store.Controllers["azure-controller"] = jujuclient.ControllerDetails{
134
ControllerUUID: coretesting.ModelTag.Id(),
135
CACert: coretesting.CACert,
137
store.Accounts["azure-controller"] = &jujuclient.ControllerAccounts{
138
CurrentAccount: "admin@local",
140
store.BootstrapConfig["azure-controller"] = jujuclient.BootstrapConfig{
141
Config: azureConfig.AllAttrs(),
143
CloudRegion: "West US",
144
CloudEndpoint: "https://management.azure.com",
145
CloudStorageEndpoint: "https://core.windows.net",
146
Credential: "default",
148
store.Credentials["azure"] = cloud.CloudCredential{
149
AuthCredentials: map[string]cloud.Credential{
150
"default": cloud.NewCredential(
151
cloud.UserPassAuthType,
153
"application-id": "application-id",
154
"subscription-id": "subscription-id",
155
"tenant-id": "tenant-id",
156
"application-password": "application-password",
134
163
func (s *ValidateImageMetadataSuite) SetUpTest(c *gc.C) {
135
164
s.FakeJujuXDGDataHomeSuite.SetUpTest(c)
136
165
s.metadataDir = c.MkDir()
137
cacheTestEnvConfig(c)
139
err := modelcmd.WriteCurrentController("testing")
140
c.Assert(err, jc.ErrorIsNil)
141
167
s.store = jujuclienttesting.NewMemStore()
142
s.store.Controllers["testing"] = jujuclient.ControllerDetails{}
143
s.store.Accounts["testing"] = &jujuclient.ControllerAccounts{
144
CurrentAccount: "admin@local",
168
cacheTestEnvConfig(c, s.store)
147
170
s.PatchEnvironment("AWS_ACCESS_KEY_ID", "access")
148
171
s.PatchEnvironment("AWS_SECRET_ACCESS_KEY", "secret")
165
188
func (s *ValidateImageMetadataSuite) assertEc2LocalMetadataUsingEnvironment(c *gc.C, stream string) {
166
189
s.setupEc2LocalMetadata(c, "us-east-1", stream)
167
ctx, err := runValidateImageMetadata(c, s.store, "-m", "ec2", "-d", s.metadataDir, "--stream", stream)
190
ctx, err := runValidateImageMetadata(c, s.store, "-m", "ec2-controller:ec2", "-d", s.metadataDir, "--stream", stream)
168
191
c.Assert(err, jc.ErrorIsNil)
169
192
stdout := coretesting.Stdout(ctx)
170
193
stderr := coretesting.Stderr(ctx)
187
210
s.PatchEnvironment("EC2_ACCESS_KEY", "")
188
211
s.PatchEnvironment("EC2_SECRET_KEY", "")
189
212
s.setupEc2LocalMetadata(c, "us-east-1", "")
190
_, err := runValidateImageMetadata(c, s.store, "-m", "ec2", "-d", s.metadataDir)
191
c.Assert(err, gc.ErrorMatches, `.*model has no access-key or secret-key`)
213
_, err := runValidateImageMetadata(c, s.store, "-m", "ec2-controller:ec2", "-d", s.metadataDir)
214
c.Assert(err, gc.ErrorMatches, `detecting credentials.*AWS_SECRET_ACCESS_KEY not found in environment`)
194
217
func (s *ValidateImageMetadataSuite) TestEc2LocalMetadataWithManualParams(c *gc.C) {