removing objectstore and image_service flag checking
This commit is contained in:
		| @@ -429,7 +429,6 @@ class XenAPIVMTestCase(test.TestCase): | ||||
|         self.assertTrue(instance.architecture) | ||||
|  | ||||
|     def test_spawn_not_enough_memory(self): | ||||
|         FLAGS.image_service = 'nova.image.glance.GlanceImageService' | ||||
|         self.assertRaises(Exception, | ||||
|                           self._test_spawn, | ||||
|                           1, 2, 3, "4")  # m1.xlarge | ||||
| @@ -441,7 +440,6 @@ class XenAPIVMTestCase(test.TestCase): | ||||
|  | ||||
|         """ | ||||
|         vdi_recs_start = self._list_vdis() | ||||
|         FLAGS.image_service = 'nova.image.glance.GlanceImageService' | ||||
|         stubs.stubout_fetch_image_glance_disk(self.stubs) | ||||
|         self.assertRaises(xenapi_fake.Failure, | ||||
|                           self._test_spawn, 1, 2, 3) | ||||
| @@ -456,7 +454,6 @@ class XenAPIVMTestCase(test.TestCase): | ||||
|  | ||||
|         """ | ||||
|         vdi_recs_start = self._list_vdis() | ||||
|         FLAGS.image_service = 'nova.image.glance.GlanceImageService' | ||||
|         stubs.stubout_create_vm(self.stubs) | ||||
|         self.assertRaises(xenapi_fake.Failure, | ||||
|                           self._test_spawn, 1, 2, 3) | ||||
| @@ -464,22 +461,12 @@ class XenAPIVMTestCase(test.TestCase): | ||||
|         vdi_recs_end = self._list_vdis() | ||||
|         self._check_vdis(vdi_recs_start, vdi_recs_end) | ||||
|  | ||||
|     def test_spawn_raw_objectstore(self): | ||||
|         FLAGS.image_service = 'nova.image.s3.S3ImageService' | ||||
|         self._test_spawn(1, None, None) | ||||
|  | ||||
|     def test_spawn_objectstore(self): | ||||
|         FLAGS.image_service = 'nova.image.s3.S3ImageService' | ||||
|         self._test_spawn(1, 2, 3) | ||||
|  | ||||
|     @stub_vm_utils_with_vdi_attached_here | ||||
|     def test_spawn_raw_glance(self): | ||||
|         FLAGS.image_service = 'nova.image.glance.GlanceImageService' | ||||
|         self._test_spawn(glance_stubs.FakeGlance.IMAGE_RAW, None, None) | ||||
|         self.check_vm_params_for_linux() | ||||
|  | ||||
|     def test_spawn_vhd_glance_linux(self): | ||||
|         FLAGS.image_service = 'nova.image.glance.GlanceImageService' | ||||
|         self._test_spawn(glance_stubs.FakeGlance.IMAGE_VHD, None, None, | ||||
|                          os_type="linux", architecture="x86-64") | ||||
|         self.check_vm_params_for_linux() | ||||
| @@ -508,20 +495,17 @@ class XenAPIVMTestCase(test.TestCase): | ||||
|         self.assertEqual(len(self.vm['VBDs']), 1) | ||||
|  | ||||
|     def test_spawn_vhd_glance_windows(self): | ||||
|         FLAGS.image_service = 'nova.image.glance.GlanceImageService' | ||||
|         self._test_spawn(glance_stubs.FakeGlance.IMAGE_VHD, None, None, | ||||
|                          os_type="windows", architecture="i386") | ||||
|         self.check_vm_params_for_windows() | ||||
|  | ||||
|     def test_spawn_glance(self): | ||||
|         FLAGS.image_service = 'nova.image.glance.GlanceImageService' | ||||
|         self._test_spawn(glance_stubs.FakeGlance.IMAGE_MACHINE, | ||||
|                          glance_stubs.FakeGlance.IMAGE_KERNEL, | ||||
|                          glance_stubs.FakeGlance.IMAGE_RAMDISK) | ||||
|         self.check_vm_params_for_linux_with_external_kernel() | ||||
|  | ||||
|     def test_spawn_netinject_file(self): | ||||
|         FLAGS.image_service = 'nova.image.glance.GlanceImageService' | ||||
|         db_fakes.stub_out_db_instance_api(self.stubs, injected=True) | ||||
|  | ||||
|         self._tee_executed = False | ||||
| @@ -547,7 +531,6 @@ class XenAPIVMTestCase(test.TestCase): | ||||
|             # Capture the sudo tee .../etc/network/interfaces command | ||||
|             (r'(sudo\s+)?tee.*interfaces', _tee_handler), | ||||
|         ]) | ||||
|         FLAGS.image_service = 'nova.image.glance.GlanceImageService' | ||||
|         self._test_spawn(glance_stubs.FakeGlance.IMAGE_MACHINE, | ||||
|                          glance_stubs.FakeGlance.IMAGE_KERNEL, | ||||
|                          glance_stubs.FakeGlance.IMAGE_RAMDISK, | ||||
| @@ -555,7 +538,6 @@ class XenAPIVMTestCase(test.TestCase): | ||||
|         self.assertTrue(self._tee_executed) | ||||
|  | ||||
|     def test_spawn_netinject_xenstore(self): | ||||
|         FLAGS.image_service = 'nova.image.glance.GlanceImageService' | ||||
|         db_fakes.stub_out_db_instance_api(self.stubs, injected=True) | ||||
|  | ||||
|         self._tee_executed = False | ||||
| @@ -784,7 +766,6 @@ class XenAPIMigrateInstance(test.TestCase): | ||||
|         conn.migrate_disk_and_power_off(instance, '127.0.0.1') | ||||
|  | ||||
|     def test_finish_resize(self): | ||||
|         FLAGS.image_service = 'nova.image.glance.GlanceImageService' | ||||
|         instance = db.instance_create(self.context, self.values) | ||||
|         stubs.stubout_session(self.stubs, stubs.FakeSessionForMigrationTests) | ||||
|         stubs.stubout_loopingcall_start(self.stubs) | ||||
| @@ -828,7 +809,6 @@ class XenAPIDetermineDiskImageTestCase(test.TestCase): | ||||
|  | ||||
|     def test_instance_disk(self): | ||||
|         """If a kernel is specified, the image type is DISK (aka machine).""" | ||||
|         FLAGS.image_service = 'nova.image.s3.S3ImageService' | ||||
|         self.fake_instance.image_ref = glance_stubs.FakeGlance.IMAGE_MACHINE | ||||
|         self.fake_instance.kernel_id = glance_stubs.FakeGlance.IMAGE_KERNEL | ||||
|         self.assert_disk_type(vm_utils.ImageType.DISK) | ||||
| @@ -838,7 +818,6 @@ class XenAPIDetermineDiskImageTestCase(test.TestCase): | ||||
|         If the kernel isn't specified, and we're not using Glance, then | ||||
|         DISK_RAW is assumed. | ||||
|         """ | ||||
|         FLAGS.image_service = 'nova.image.s3.S3ImageService' | ||||
|         self.fake_instance.image_ref = glance_stubs.FakeGlance.IMAGE_RAW | ||||
|         self.fake_instance.kernel_id = None | ||||
|         self.assert_disk_type(vm_utils.ImageType.DISK_RAW) | ||||
| @@ -848,7 +827,6 @@ class XenAPIDetermineDiskImageTestCase(test.TestCase): | ||||
|         If we're using Glance, then defer to the image_type field, which in | ||||
|         this case will be 'raw'. | ||||
|         """ | ||||
|         FLAGS.image_service = 'nova.image.glance.GlanceImageService' | ||||
|         self.fake_instance.image_ref = glance_stubs.FakeGlance.IMAGE_RAW | ||||
|         self.fake_instance.kernel_id = None | ||||
|         self.assert_disk_type(vm_utils.ImageType.DISK_RAW) | ||||
| @@ -858,7 +836,6 @@ class XenAPIDetermineDiskImageTestCase(test.TestCase): | ||||
|         If we're using Glance, then defer to the image_type field, which in | ||||
|         this case will be 'vhd'. | ||||
|         """ | ||||
|         FLAGS.image_service = 'nova.image.glance.GlanceImageService' | ||||
|         self.fake_instance.image_ref = glance_stubs.FakeGlance.IMAGE_VHD | ||||
|         self.fake_instance.kernel_id = None | ||||
|         self.assert_disk_type(vm_utils.ImageType.DISK_VHD) | ||||
|   | ||||
| @@ -423,13 +423,8 @@ class VMHelper(HelperBase): | ||||
|         """ | ||||
|         access = AuthManager().get_access_key(user, project) | ||||
|  | ||||
|         if FLAGS.image_service == 'nova.image.glance.GlanceImageService': | ||||
|             return cls._fetch_image_glance(session, instance_id, image, | ||||
|                                            access, image_type) | ||||
|         else: | ||||
|             return cls._fetch_image_objectstore(session, instance_id, image, | ||||
|                                                 access, user.secret, | ||||
|                                                 image_type) | ||||
|         return cls._fetch_image_glance(session, instance_id, image, | ||||
|                                        access, image_type) | ||||
|  | ||||
|     @classmethod | ||||
|     def _fetch_image_glance_vhd(cls, session, instance_id, image, access, | ||||
| @@ -603,10 +598,7 @@ class VMHelper(HelperBase): | ||||
|             else: | ||||
|                 return ImageType.DISK_RAW | ||||
|  | ||||
|         if FLAGS.image_service == 'nova.image.glance.GlanceImageService': | ||||
|             image_type = determine_from_glance() | ||||
|         else: | ||||
|             image_type = determine_from_instance() | ||||
|         image_type = determine_from_glance() | ||||
|  | ||||
|         log_disk_format(image_type) | ||||
|         return image_type | ||||
| @@ -626,42 +618,6 @@ class VMHelper(HelperBase): | ||||
|             return cls._fetch_image_glance_disk( | ||||
|                 session, instance_id, image, access, image_type) | ||||
|  | ||||
|     @classmethod | ||||
|     def _fetch_image_objectstore(cls, session, instance_id, image, access, | ||||
|                                  secret, image_type): | ||||
|         """Fetch an image from objectstore. | ||||
|  | ||||
|         Returns: A single filename if image_type is KERNEL or RAMDISK | ||||
|                  A list of dictionaries that describe VDIs, otherwise | ||||
|         """ | ||||
|         url = "http://%s:%s/_images/%s/image" % (FLAGS.s3_host, FLAGS.s3_port, | ||||
|                                                  image) | ||||
|         LOG.debug(_("Asking xapi to fetch %(url)s as %(access)s") % locals()) | ||||
|         if image_type in (ImageType.KERNEL, ImageType.RAMDISK): | ||||
|             fn = 'get_kernel' | ||||
|         else: | ||||
|             fn = 'get_vdi' | ||||
|         args = {} | ||||
|         args['src_url'] = url | ||||
|         args['username'] = access | ||||
|         args['password'] = secret | ||||
|         args['add_partition'] = 'false' | ||||
|         args['raw'] = 'false' | ||||
|         if not image_type in (ImageType.KERNEL, ImageType.RAMDISK): | ||||
|             args['add_partition'] = 'true' | ||||
|             if image_type == ImageType.DISK_RAW: | ||||
|                 args['raw'] = 'true' | ||||
|         task = session.async_call_plugin('objectstore', fn, args) | ||||
|         vdi_uuid = None | ||||
|         filename = None | ||||
|         if image_type in (ImageType.KERNEL, ImageType.RAMDISK): | ||||
|             filename = session.wait_for_task(task, instance_id) | ||||
|         else: | ||||
|             vdi_uuid = session.wait_for_task(task, instance_id) | ||||
|         return [dict(vdi_type=ImageType.to_string(image_type), | ||||
|                      vdi_uuid=vdi_uuid, | ||||
|                      file=filename)] | ||||
|  | ||||
|     @classmethod | ||||
|     def determine_is_pv(cls, session, instance_id, vdi_ref, disk_image_type, | ||||
|                         os_type): | ||||
| @@ -669,68 +625,26 @@ class VMHelper(HelperBase): | ||||
|         Determine whether the VM will use a paravirtualized kernel or if it | ||||
|         will use hardware virtualization. | ||||
|  | ||||
|             1. Objectstore (any image type): | ||||
|                We use plugin to figure out whether the VDI uses PV | ||||
|             1. Glance (VHD): then we use `os_type`, raise if not set | ||||
|  | ||||
|             2. Glance (VHD): then we use `os_type`, raise if not set | ||||
|  | ||||
|             3. Glance (DISK_RAW): use Pygrub to figure out if pv kernel is | ||||
|             2. Glance (DISK_RAW): use Pygrub to figure out if pv kernel is | ||||
|                available | ||||
|  | ||||
|             4. Glance (DISK): pv is assumed | ||||
|         """ | ||||
|         if FLAGS.image_service == 'nova.image.glance.GlanceImageService': | ||||
|             # 2, 3, 4: Glance | ||||
|             return cls._determine_is_pv_glance( | ||||
|               session, vdi_ref, disk_image_type, os_type) | ||||
|         else: | ||||
|             # 1. Objecstore | ||||
|             return cls._determine_is_pv_objectstore(session, instance_id, | ||||
|                                                     vdi_ref) | ||||
|  | ||||
|     @classmethod | ||||
|     def _determine_is_pv_objectstore(cls, session, instance_id, vdi_ref): | ||||
|         LOG.debug(_("Looking up vdi %s for PV kernel"), vdi_ref) | ||||
|         fn = "is_vdi_pv" | ||||
|         args = {} | ||||
|         args['vdi-ref'] = vdi_ref | ||||
|         task = session.async_call_plugin('objectstore', fn, args) | ||||
|         pv_str = session.wait_for_task(task, instance_id) | ||||
|         pv = None | ||||
|         if pv_str.lower() == 'true': | ||||
|             pv = True | ||||
|         elif pv_str.lower() == 'false': | ||||
|             pv = False | ||||
|         LOG.debug(_("PV Kernel in VDI:%s"), pv) | ||||
|         return pv | ||||
|  | ||||
|     @classmethod | ||||
|     def _determine_is_pv_glance(cls, session, vdi_ref, disk_image_type, | ||||
|                                 os_type): | ||||
|         """ | ||||
|         For a Glance image, determine if we need paravirtualization. | ||||
|  | ||||
|         The relevant scenarios are: | ||||
|             2. Glance (VHD): then we use `os_type`, raise if not set | ||||
|  | ||||
|             3. Glance (DISK_RAW): use Pygrub to figure out if pv kernel is | ||||
|                available | ||||
|  | ||||
|             4. Glance (DISK): pv is assumed | ||||
|             3. Glance (DISK): pv is assumed | ||||
|         """ | ||||
|  | ||||
|         LOG.debug(_("Looking up vdi %s for PV kernel"), vdi_ref) | ||||
|         if disk_image_type == ImageType.DISK_VHD: | ||||
|             # 2. VHD | ||||
|             # 1. VHD | ||||
|             if os_type == 'windows': | ||||
|                 is_pv = False | ||||
|             else: | ||||
|                 is_pv = True | ||||
|         elif disk_image_type == ImageType.DISK_RAW: | ||||
|             # 3. RAW | ||||
|             # 2. RAW | ||||
|             is_pv = with_vdi_attached_here(session, vdi_ref, True, _is_vdi_pv) | ||||
|         elif disk_image_type == ImageType.DISK: | ||||
|             # 4. Disk | ||||
|             # 3. Disk | ||||
|             is_pv = True | ||||
|         else: | ||||
|             raise exception.Error(_("Unknown image format %(disk_image_type)s") | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Brian Waldon
					Brian Waldon