~ubuntu-branches/ubuntu/trusty/juju-core/trusty

« back to all changes in this revision

Viewing changes to src/launchpad.net/juju-core/environs/imagemetadata/simplestreams_test.go

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2014-03-24 16:05:44 UTC
  • mfrom: (1.1.20)
  • Revision ID: package-import@ubuntu.com-20140324160544-g8lsfufby18d5fj4
Tags: 1.17.6-0ubuntu1
* New upstream point release, including fixes for:
  - br0 not bought up by cloud-init with MAAS provider (LP: #1271144).
  - ppc64el enablement for juju/lxc (LP: #1273769).
  - juju userdata should not restart networking (LP: #1248283).
  - error detecting hardware characteristics (LP: #1276909).
  - juju instances not including the default security group (LP: #1129720).
  - juju bootstrap does not honor https_proxy (LP: #1240260).
* d/control,rules: Drop BD on bash-completion, install bash-completion
  direct from upstream source code.
* d/rules: Set HOME prior to generating man pages.
* d/control: Drop alternative dependency on mongodb-server; juju now only
  works on trusty with juju-mongodb.

Show diffs side-by-side

added added

removed removed

Lines of Context:
66
66
func registerSimpleStreamsTests() {
67
67
        gc.Suite(&simplestreamsSuite{
68
68
                LocalLiveSimplestreamsSuite: sstesting.LocalLiveSimplestreamsSuite{
69
 
                        Source:        simplestreams.NewURLDataSource("test:", simplestreams.VerifySSLHostnames),
 
69
                        Source: simplestreams.NewURLDataSource(
 
70
                                "test roundtripper", "test:", simplestreams.VerifySSLHostnames),
70
71
                        RequireSigned: false,
71
72
                        DataType:      imagemetadata.ImageIds,
72
73
                        ValidConstraint: imagemetadata.NewImageConstraint(simplestreams.LookupParams{
84
85
 
85
86
func registerLiveSimpleStreamsTests(baseURL string, validImageConstraint simplestreams.LookupConstraint, requireSigned bool) {
86
87
        gc.Suite(&sstesting.LocalLiveSimplestreamsSuite{
87
 
                Source:          simplestreams.NewURLDataSource(baseURL, simplestreams.VerifySSLHostnames),
 
88
                Source:          simplestreams.NewURLDataSource("test", baseURL, simplestreams.VerifySSLHostnames),
88
89
                RequireSigned:   requireSigned,
89
90
                DataType:        imagemetadata.ImageIds,
90
91
                ValidConstraint: validImageConstraint,
119
120
                images: []*imagemetadata.ImageMetadata{
120
121
                        {
121
122
                                Id:         "ami-442ea674",
122
 
                                VType:      "hvm",
 
123
                                VirtType:   "hvm",
123
124
                                Arch:       "amd64",
124
125
                                RegionName: "us-east-1",
125
126
                                Endpoint:   "https://ec2.us-east-1.amazonaws.com",
127
128
                        },
128
129
                        {
129
130
                                Id:         "ami-442ea684",
130
 
                                VType:      "pv",
 
131
                                VirtType:   "pv",
131
132
                                Arch:       "amd64",
132
133
                                RegionName: "us-east-1",
133
134
                                Endpoint:   "https://ec2.us-east-1.amazonaws.com",
135
136
                        },
136
137
                        {
137
138
                                Id:         "ami-442ea699",
138
 
                                VType:      "pv",
 
139
                                VirtType:   "pv",
139
140
                                Arch:       "arm",
140
141
                                RegionName: "us-east-1",
141
142
                                Endpoint:   "https://ec2.us-east-1.amazonaws.com",
150
151
                images: []*imagemetadata.ImageMetadata{
151
152
                        {
152
153
                                Id:         "ami-442ea674",
153
 
                                VType:      "hvm",
 
154
                                VirtType:   "hvm",
154
155
                                Arch:       "amd64",
155
156
                                RegionName: "us-east-1",
156
157
                                Endpoint:   "https://ec2.us-east-1.amazonaws.com",
158
159
                        },
159
160
                        {
160
161
                                Id:         "ami-442ea684",
161
 
                                VType:      "pv",
 
162
                                VirtType:   "pv",
162
163
                                Arch:       "amd64",
163
164
                                RegionName: "us-east-1",
164
165
                                Endpoint:   "https://ec2.us-east-1.amazonaws.com",
173
174
                images: []*imagemetadata.ImageMetadata{
174
175
                        {
175
176
                                Id:         "ami-442ea699",
176
 
                                VType:      "pv",
 
177
                                VirtType:   "pv",
177
178
                                Arch:       "arm",
178
179
                                RegionName: "us-east-1",
179
180
                                Endpoint:   "https://ec2.us-east-1.amazonaws.com",
188
189
                images: []*imagemetadata.ImageMetadata{
189
190
                        {
190
191
                                Id:         "ami-442ea674",
191
 
                                VType:      "hvm",
 
192
                                VirtType:   "hvm",
192
193
                                Arch:       "amd64",
193
194
                                RegionName: "us-east-1",
194
195
                                Endpoint:   "https://ec2.us-east-1.amazonaws.com",
196
197
                        },
197
198
                        {
198
199
                                Id:         "ami-442ea684",
199
 
                                VType:      "pv",
 
200
                                VirtType:   "pv",
200
201
                                Arch:       "amd64",
201
202
                                RegionName: "us-east-1",
202
203
                                Endpoint:   "https://ec2.us-east-1.amazonaws.com",
210
211
                images: []*imagemetadata.ImageMetadata{
211
212
                        {
212
213
                                Id:         "ami-26745463",
213
 
                                VType:      "pv",
 
214
                                VirtType:   "pv",
214
215
                                Arch:       "amd64",
215
216
                                RegionName: "au-east-2",
216
217
                                Endpoint:   "https://somewhere-else",
217
218
                                Storage:    "ebs",
218
219
                        },
219
220
                        {
 
221
                                Id:         "ami-26745464",
 
222
                                VirtType:   "pv",
 
223
                                Arch:       "amd64",
 
224
                                RegionName: "au-east-1",
 
225
                                Endpoint:   "https://somewhere",
 
226
                                Storage:    "ebs",
 
227
                        },
 
228
                        {
220
229
                                Id:         "ami-442ea674",
221
 
                                VType:      "hvm",
 
230
                                VirtType:   "hvm",
222
231
                                Arch:       "amd64",
223
232
                                RegionName: "us-east-1",
224
233
                                Endpoint:   "https://ec2.us-east-1.amazonaws.com",
226
235
                        },
227
236
                        {
228
237
                                Id:          "ami-442ea675",
229
 
                                VType:       "hvm",
 
238
                                VirtType:    "hvm",
230
239
                                Arch:        "amd64",
231
240
                                RegionAlias: "uswest3",
232
241
                                RegionName:  "us-west-3",
234
243
                                Storage:     "ebs",
235
244
                        },
236
245
                        {
237
 
                                Id:         "ami-26745464",
238
 
                                VType:      "pv",
239
 
                                Arch:       "amd64",
240
 
                                RegionName: "au-east-1",
241
 
                                Endpoint:   "https://somewhere",
242
 
                                Storage:    "ebs",
243
 
                        },
244
 
                        {
245
246
                                Id:         "ami-442ea684",
246
 
                                VType:      "pv",
 
247
                                VirtType:   "pv",
247
248
                                Arch:       "amd64",
248
249
                                RegionName: "us-east-1",
249
250
                                Endpoint:   "https://ec2.us-east-1.amazonaws.com",
265
266
                        Series:    []string{"precise"},
266
267
                        Arches:    t.arches,
267
268
                })
268
 
                images, err := imagemetadata.Fetch([]simplestreams.DataSource{s.Source}, simplestreams.DefaultIndexPath, imageConstraint, s.RequireSigned)
 
269
                // Add invalid datasource and check later that resolveInfo is correct.
 
270
                invalidSource := simplestreams.NewURLDataSource("invalid", "file://invalid", simplestreams.VerifySSLHostnames)
 
271
                images, resolveInfo, err := imagemetadata.Fetch(
 
272
                        []simplestreams.DataSource{invalidSource, s.Source}, simplestreams.DefaultIndexPath,
 
273
                        imageConstraint, s.RequireSigned)
269
274
                if !c.Check(err, gc.IsNil) {
270
275
                        continue
271
276
                }
273
278
                        testImage.Version = t.version
274
279
                }
275
280
                c.Check(images, gc.DeepEquals, t.images)
 
281
                c.Check(resolveInfo, gc.DeepEquals, &simplestreams.ResolveInfo{
 
282
                        Source:    "test roundtripper",
 
283
                        Signed:    s.RequireSigned,
 
284
                        IndexURL:  "test:/streams/v1/index.json",
 
285
                        MirrorURL: "",
 
286
                })
276
287
        }
277
288
}
278
289
 
364
375
}
365
376
 
366
377
func (s *signedSuite) TestSignedImageMetadata(c *gc.C) {
367
 
        signedSource := simplestreams.NewURLDataSource("signedtest://host/signed", simplestreams.VerifySSLHostnames)
 
378
        signedSource := simplestreams.NewURLDataSource("test", "signedtest://host/signed", simplestreams.VerifySSLHostnames)
368
379
        imageConstraint := imagemetadata.NewImageConstraint(simplestreams.LookupParams{
369
380
                CloudSpec: simplestreams.CloudSpec{"us-east-1", "https://ec2.us-east-1.amazonaws.com"},
370
381
                Series:    []string{"precise"},
371
382
                Arches:    []string{"amd64"},
372
383
        })
373
 
        images, err := imagemetadata.Fetch(
 
384
        images, resolveInfo, err := imagemetadata.Fetch(
374
385
                []simplestreams.DataSource{signedSource}, simplestreams.DefaultIndexPath, imageConstraint, true)
375
386
        c.Assert(err, gc.IsNil)
376
387
        c.Assert(len(images), gc.Equals, 1)
377
388
        c.Assert(images[0].Id, gc.Equals, "ami-123456")
 
389
        c.Check(resolveInfo, gc.DeepEquals, &simplestreams.ResolveInfo{
 
390
                Source:    "test",
 
391
                Signed:    true,
 
392
                IndexURL:  "signedtest://host/signed/streams/v1/index.sjson",
 
393
                MirrorURL: "",
 
394
        })
378
395
}
379
396
 
380
397
func (s *signedSuite) TestSignedImageMetadataInvalidSignature(c *gc.C) {
381
 
        signedSource := simplestreams.NewURLDataSource("signedtest://host/signed", simplestreams.VerifySSLHostnames)
 
398
        signedSource := simplestreams.NewURLDataSource("test", "signedtest://host/signed", simplestreams.VerifySSLHostnames)
382
399
        imageConstraint := imagemetadata.NewImageConstraint(simplestreams.LookupParams{
383
400
                CloudSpec: simplestreams.CloudSpec{"us-east-1", "https://ec2.us-east-1.amazonaws.com"},
384
401
                Series:    []string{"precise"},
385
402
                Arches:    []string{"amd64"},
386
403
        })
387
404
        imagemetadata.SetSigningPublicKey(s.origKey)
388
 
        _, err := imagemetadata.Fetch(
 
405
        _, _, err := imagemetadata.Fetch(
389
406
                []simplestreams.DataSource{signedSource}, simplestreams.DefaultIndexPath, imageConstraint, true)
390
407
        c.Assert(err, gc.ErrorMatches, "cannot read index data.*")
391
408
}