~ubuntu-branches/ubuntu/quantal/glance/quantal

« back to all changes in this revision

Viewing changes to glance/tests/functional/test_ssl.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short, Adam Gandelman, Chuck Short
  • Date: 2012-02-24 11:21:25 UTC
  • mfrom: (1.1.29)
  • Revision ID: package-import@ubuntu.com-20120224112125-jd8cbfwvl4arm0nh
Tags: 2012.1~e4~20120224.1290-0ubuntu1
[ Adam Gandelman ]
* debian/control: Add new dependency to python-glance: python-iso8601.

[ Chuck Short ]
* New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
45
45
from glance.common import utils
46
46
from glance.store.location import get_location_from_uri
47
47
from glance.tests import functional
48
 
from glance.tests.utils import execute, skip_if_disabled
 
48
from glance.tests.utils import execute, skip_if_disabled, minimal_headers
49
49
 
50
50
FIVE_KB = 5 * 1024
51
51
FIVE_GB = 5 * 1024 * 1024 * 1024
144
144
        # 2. POST /images with public image named Image1
145
145
        # attribute and no custom properties. Verify a 200 OK is returned
146
146
        image_data = "*" * FIVE_KB
147
 
        headers = {'Content-Type': 'application/octet-stream',
148
 
                   'X-Image-Meta-Name': 'Image1',
149
 
                   'X-Image-Meta-Is-Public': 'True'}
 
147
        headers = minimal_headers('Image1')
150
148
        path = "https://%s:%d/v1/images" % ("0.0.0.0", self.api_port)
151
149
        https = httplib2.Http(disable_ssl_certificate_validation=True)
152
150
        response, content = https.request(path, 'POST', headers=headers,
183
181
            'x-image-meta-name': 'Image1',
184
182
            'x-image-meta-is_public': 'True',
185
183
            'x-image-meta-status': 'active',
186
 
            'x-image-meta-disk_format': '',
187
 
            'x-image-meta-container_format': '',
 
184
            'x-image-meta-disk_format': 'raw',
 
185
            'x-image-meta-container_format': 'ovf',
188
186
            'x-image-meta-size': str(FIVE_KB)}
189
187
 
190
188
        expected_std_headers = {
216
214
        self.assertEqual(response.status, 200)
217
215
 
218
216
        expected_result = {"images": [
219
 
            {"container_format": None,
220
 
             "disk_format": None,
 
217
            {"container_format": "ovf",
 
218
             "disk_format": "raw",
221
219
             "id": image_id,
222
220
             "name": "Image1",
223
221
             "checksum": "c2e5db72bd7fd153f53ede5da5a06de3",
235
233
            "status": "active",
236
234
            "name": "Image1",
237
235
            "deleted": False,
238
 
            "container_format": None,
239
 
            "disk_format": None,
 
236
            "container_format": "ovf",
 
237
            "disk_format": "raw",
240
238
            "id": image_id,
241
239
            "is_public": True,
242
240
            "deleted_at": None,
276
274
            "status": "active",
277
275
            "name": "Image1",
278
276
            "deleted": False,
279
 
            "container_format": None,
280
 
            "disk_format": None,
 
277
            "container_format": "ovf",
 
278
            "disk_format": "raw",
281
279
            "id": image_id,
282
280
            "is_public": True,
283
281
            "deleted_at": None,
366
364
 
367
365
        # 1. POST /images with public image named Image1
368
366
        # with no location or image data
369
 
        headers = {'Content-Type': 'application/octet-stream',
370
 
                   'X-Image-Meta-Name': 'Image1',
371
 
                   'X-Image-Meta-Is-Public': 'True'}
 
367
        headers = minimal_headers('Image1')
372
368
        path = "https://%s:%d/v1/images" % ("0.0.0.0", self.api_port)
373
369
        https = httplib2.Http(disable_ssl_certificate_validation=True)
374
370
        response, content = https.request(path, 'POST', headers=headers)
376
372
        data = json.loads(content)
377
373
        self.assertEqual(data['image']['checksum'], None)
378
374
        self.assertEqual(data['image']['size'], 0)
379
 
        self.assertEqual(data['image']['container_format'], None)
380
 
        self.assertEqual(data['image']['disk_format'], None)
 
375
        self.assertEqual(data['image']['container_format'], 'ovf')
 
376
        self.assertEqual(data['image']['disk_format'], 'raw')
381
377
        self.assertEqual(data['image']['name'], "Image1")
382
378
        self.assertEqual(data['image']['is_public'], True)
383
379
 
393
389
        self.assertEqual(data['images'][0]['id'], image_id)
394
390
        self.assertEqual(data['images'][0]['checksum'], None)
395
391
        self.assertEqual(data['images'][0]['size'], 0)
396
 
        self.assertEqual(data['images'][0]['container_format'], None)
397
 
        self.assertEqual(data['images'][0]['disk_format'], None)
 
392
        self.assertEqual(data['images'][0]['container_format'], 'ovf')
 
393
        self.assertEqual(data['images'][0]['disk_format'], 'raw')
398
394
        self.assertEqual(data['images'][0]['name'], "Image1")
399
395
 
400
396
        # 3. HEAD /images
446
442
                         hashlib.md5(image_data).hexdigest())
447
443
        self.assertEqual(data['images'][0]['id'], image_id)
448
444
        self.assertEqual(data['images'][0]['size'], FIVE_KB)
449
 
        self.assertEqual(data['images'][0]['container_format'], None)
450
 
        self.assertEqual(data['images'][0]['disk_format'], None)
 
445
        self.assertEqual(data['images'][0]['container_format'], 'ovf')
 
446
        self.assertEqual(data['images'][0]['disk_format'], 'raw')
451
447
        self.assertEqual(data['images'][0]['name'], "Image1")
452
448
 
453
449
        self.stop_servers()
633
629
        # X-Image-Meta-Location attribute to make Glance forego
634
630
        # "adding" the image data.
635
631
        # Verify a 201 OK is returned
636
 
        headers = {'Content-Type': 'application/octet-stream',
637
 
                   'X-Image-Meta-Location': 'https://example.com/fakeimage',
638
 
                   'X-Image-Meta-Size': str(FIVE_GB),
639
 
                   'X-Image-Meta-Name': 'Image1',
640
 
                   'X-Image-Meta-Is-Public': 'True'}
 
632
        headers = minimal_headers('Image1')
 
633
        headers['X-Image-Meta-Location'] = 'https://example.com/fakeimage'
 
634
        headers['X-Image-Meta-Size'] = str(FIVE_GB)
641
635
        path = "https://%s:%d/v1/images" % ("0.0.0.0", self.api_port)
642
636
        https = httplib2.Http(disable_ssl_certificate_validation=True)
643
637
        response, content = https.request(path, 'POST', headers=headers)
956
950
        self.assertEqual(content, '{"images": []}')
957
951
 
958
952
        # 1. POST /images with three public images with various attributes
959
 
        headers = {'Content-Type': 'application/octet-stream',
960
 
                   'X-Image-Meta-Name': 'Image1',
961
 
                   'X-Image-Meta-Is-Public': 'True'}
 
953
        headers = minimal_headers('Image1')
962
954
        path = "https://%s:%d/v1/images" % ("0.0.0.0", self.api_port)
963
955
        https = httplib2.Http(disable_ssl_certificate_validation=True)
964
956
        response, content = https.request(path, 'POST', headers=headers)
967
959
 
968
960
        image_ids = [data['image']['id']]
969
961
 
970
 
        headers = {'Content-Type': 'application/octet-stream',
971
 
                   'X-Image-Meta-Name': 'Image2',
972
 
                   'X-Image-Meta-Is-Public': 'True'}
 
962
        headers = minimal_headers('Image2')
973
963
        path = "https://%s:%d/v1/images" % ("0.0.0.0", self.api_port)
974
964
        https = httplib2.Http(disable_ssl_certificate_validation=True)
975
965
        response, content = https.request(path, 'POST', headers=headers)
978
968
 
979
969
        image_ids.append(data['image']['id'])
980
970
 
981
 
        headers = {'Content-Type': 'application/octet-stream',
982
 
                   'X-Image-Meta-Name': 'Image3',
983
 
                   'X-Image-Meta-Is-Public': 'True'}
 
971
        headers = minimal_headers('Image3')
984
972
        path = "https://%s:%d/v1/images" % ("0.0.0.0", self.api_port)
985
973
        https = httplib2.Http(disable_ssl_certificate_validation=True)
986
974
        response, content = https.request(path, 'POST', headers=headers)