From 813ed1b61de925f0385527aac096e88ea87c8802 Mon Sep 17 00:00:00 2001 From: Devananda van der Veen Date: Mon, 4 Mar 2013 11:03:40 -0800 Subject: Read baremetal images from extra_specs namespace. Baremetal PXE driver should read deploy_kernel_id & deploy_ramdisk_id from the 'baremetal:' namespace within instance_type['extra_specs'] so that it doesn't conflict with ComputeCapabilitiesFilter any more. Fixes bug 1129485. Change-Id: I84b3acb2ed83dc2b1ff8f1a21ca1d95f7d25751a --- nova/tests/baremetal/test_pxe.py | 25 +++++++++++++------------ nova/virt/baremetal/pxe.py | 9 +++++---- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/nova/tests/baremetal/test_pxe.py b/nova/tests/baremetal/test_pxe.py index fd82625ef..dffecf9cd 100644 --- a/nova/tests/baremetal/test_pxe.py +++ b/nova/tests/baremetal/test_pxe.py @@ -202,8 +202,8 @@ class PXEClassMethodsTestCase(BareMetalPXETestCase): def test_get_instance_deploy_ids(self): self.instance['extra_specs'] = { - 'deploy_kernel_id': 'aaaa', - 'deploy_ramdisk_id': 'bbbb', + 'baremetal:deploy_kernel_id': 'aaaa', + 'baremetal:deploy_ramdisk_id': 'bbbb', } self.flags(deploy_kernel="fail", group='baremetal') self.flags(deploy_ramdisk="fail", group='baremetal') @@ -289,8 +289,8 @@ class PXEClassMethodsTestCase(BareMetalPXETestCase): # Note that it is passed on the 'instance' object, despite being # inherited from the instance_types_extra_specs table. extra_specs = { - 'deploy_kernel_id': 'eeee', - 'deploy_ramdisk_id': 'ffff', + 'baremetal:deploy_kernel_id': 'eeee', + 'baremetal:deploy_ramdisk_id': 'ffff', } instance_type['extra_specs'] = extra_specs res = pxe.get_tftp_image_info(self.instance, instance_type) @@ -300,8 +300,8 @@ class PXEClassMethodsTestCase(BareMetalPXETestCase): # However, if invalid values are passed on the image extra_specs, # this should still raise an exception. extra_specs = { - 'deploy_kernel_id': '', - 'deploy_ramdisk_id': '', + 'baremetal:deploy_kernel_id': '', + 'baremetal:deploy_ramdisk_id': '', } instance_type['extra_specs'] = extra_specs self.assertRaises(exception.NovaException, @@ -324,8 +324,8 @@ class PXEPrivateMethodsTestCase(BareMetalPXETestCase): self.instance['ramdisk_id'] = 'bbbb' instance_type = utils.get_test_instance_type() extra_specs = { - 'deploy_kernel_id': 'cccc', - 'deploy_ramdisk_id': 'dddd', + 'baremetal:deploy_kernel_id': 'cccc', + 'baremetal:deploy_ramdisk_id': 'dddd', } instance_type['extra_specs'] = extra_specs image_info = pxe.get_tftp_image_info(self.instance, instance_type) @@ -477,8 +477,8 @@ class PXEPublicMethodsTestCase(BareMetalPXETestCase): self._create_node() instance_type = { 'extra_specs': { - 'deploy_kernel_id': 'eeee', - 'deploy_ramdisk_id': 'ffff', + 'baremetal:deploy_kernel_id': 'eeee', + 'baremetal:deploy_ramdisk_id': 'ffff', } } self.instance['uuid'] = 'fake-uuid' @@ -540,8 +540,9 @@ class PXEPublicMethodsTestCase(BareMetalPXETestCase): self.mox.StubOutWithMock(pxe, 'get_tftp_image_info') self.mox.StubOutWithMock(self.driver, '_collect_mac_addresses') - extra_specs = dict(extra_specs=dict(deploy_ramdisk_id='ignore', - deploy_kernel_id='ignore')) + extra_specs = dict(extra_specs={ + 'baremetal:deploy_ramdisk_id': 'ignore', + 'baremetal:deploy_kernel_id': 'ignore'}) pxe.get_tftp_image_info(self.instance, extra_specs).\ AndRaise(exception.NovaException) bm_utils.unlink_without_raise(pxe_path) diff --git a/nova/virt/baremetal/pxe.py b/nova/virt/baremetal/pxe.py index fe92399ca..5d97298ca 100644 --- a/nova/virt/baremetal/pxe.py +++ b/nova/virt/baremetal/pxe.py @@ -150,12 +150,12 @@ def build_network_config(network_info): def get_deploy_aki_id(instance_type): return instance_type.get('extra_specs', {}).\ - get('deploy_kernel_id', CONF.baremetal.deploy_kernel) + get('baremetal:deploy_kernel_id', CONF.baremetal.deploy_kernel) def get_deploy_ari_id(instance_type): return instance_type.get('extra_specs', {}).\ - get('deploy_ramdisk_id', CONF.baremetal.deploy_ramdisk) + get('baremetal:deploy_ramdisk_id', CONF.baremetal.deploy_ramdisk) def get_image_dir_path(instance): @@ -423,8 +423,9 @@ class PXE(base.NodeDriver): # NOTE(danms): the instance_type extra_specs do not need to be # present/correct at deactivate time, so pass something empty # to avoid an extra lookup - instance_type = dict(extra_specs=dict(deploy_ramdisk_id='ignore', - deploy_kernel_id='ignore')) + instance_type = dict(extra_specs={ + 'baremetal:deploy_ramdisk_id': 'ignore', + 'baremetal:deploy_kernel_id': 'ignore'}) try: image_info = get_tftp_image_info(instance, instance_type) except exception.NovaException: -- cgit