+ self.assertEqual(self.image_creators[-1].get_image().size, retrieved_image.size)
+ self.assertEqual(get_image_size(file_image_settings), retrieved_image.size)
+ self.assertEqual(created_image.name, retrieved_image.name)
+ self.assertEqual(created_image.id, retrieved_image.id)
+ self.assertEqual(created_image.properties, retrieved_image.properties)
+
+ def test_create_three_part_image_from_url_3_creators(self):
+ """
+ Tests the creation of a 3-part OpenStack image from a URL.
+ """
+ # Set properties
+ properties = {}
+ if self.image_metadata and 'extra_properties' in self.image_metadata:
+ properties = self.image_metadata['extra_properties']
+
+ # Create the kernel image
+ kernel_image_settings = openstack_tests.cirros_image_settings(
+ name=self.image_name+'_kernel',
+ url='http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-kernel')
+
+ if self.image_metadata:
+ if 'kernel_url' in self.image_metadata:
+ kernel_image_settings.url = self.image_metadata['kernel_url']
+ self.image_creators.append(create_image.OpenStackImage(self.os_creds, kernel_image_settings))
+ kernel_image = self.image_creators[-1].create()
+ self.assertIsNotNone(kernel_image)
+ self.assertEqual(get_image_size(kernel_image_settings), kernel_image.size)
+
+ # Create the ramdisk image
+ ramdisk_image_settings = openstack_tests.cirros_image_settings(
+ name=self.image_name+'_ramdisk',
+ url='http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-initramfs')
+ if self.image_metadata:
+ if 'ramdisk_url' in self.image_metadata:
+ ramdisk_image_settings.url = self.image_metadata['ramdisk_url']
+ self.image_creators.append(create_image.OpenStackImage(self.os_creds, ramdisk_image_settings))
+ ramdisk_image = self.image_creators[-1].create()
+ self.assertIsNotNone(ramdisk_image)
+ self.assertEqual(get_image_size(ramdisk_image_settings), ramdisk_image.size)
+
+ # Create the main image
+ os_image_settings = openstack_tests.cirros_image_settings(
+ name=self.image_name,
+ url='http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img')
+ if self.image_metadata:
+ if 'disk_url' in self.image_metadata:
+ os_image_settings.url = self.image_metadata['disk_url']
+
+ properties['kernel_id'] = kernel_image.id
+ properties['ramdisk_id'] = ramdisk_image.id
+ os_image_settings.extra_properties = properties
+
+ self.image_creators.append(create_image.OpenStackImage(self.os_creds, os_image_settings))
+ created_image = self.image_creators[-1].create()
+ self.assertIsNotNone(created_image)
+ self.assertEqual(self.image_name, created_image.name)
+
+ retrieved_image = glance_utils.get_image(self.glance, os_image_settings.name)
+ self.assertIsNotNone(retrieved_image)