summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nova/tests/virt/libvirt/test_libvirt.py17
-rw-r--r--nova/virt/libvirt/driver.py12
2 files changed, 24 insertions, 5 deletions
diff --git a/nova/tests/virt/libvirt/test_libvirt.py b/nova/tests/virt/libvirt/test_libvirt.py
index 2478e8eea7..5a3f414a99 100644
--- a/nova/tests/virt/libvirt/test_libvirt.py
+++ b/nova/tests/virt/libvirt/test_libvirt.py
@@ -1445,7 +1445,8 @@ class LibvirtConnTestCase(test.TestCase):
self.assertEqual("none", cfg.devices[7].action)
- def test_get_guest_config_with_watchdog_action_through_flavor(self):
+ def _test_get_guest_config_with_watchdog_action_flavor(self,
+ hw_watchdog_action="hw:watchdog_action"):
self.flags(virt_type='kvm', group='libvirt')
conn = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)
@@ -1455,7 +1456,7 @@ class LibvirtConnTestCase(test.TestCase):
db.flavor_extra_specs_update_or_create(
self.context,
flavor['flavorid'],
- {'hw_watchdog_action': 'none'})
+ {hw_watchdog_action: 'none'})
instance_ref = db.instance_create(self.context, self.test_instance)
@@ -1466,7 +1467,7 @@ class LibvirtConnTestCase(test.TestCase):
db.flavor_extra_specs_delete(self.context,
flavor['flavorid'],
- 'hw_watchdog_action')
+ hw_watchdog_action)
self.assertEqual(8, len(cfg.devices))
self.assertIsInstance(cfg.devices[0],
@@ -1488,6 +1489,16 @@ class LibvirtConnTestCase(test.TestCase):
self.assertEqual("none", cfg.devices[7].action)
+ def test_get_guest_config_with_watchdog_action_through_flavor(self):
+ self._test_get_guest_config_with_watchdog_action_flavor()
+
+ # TODO(pkholkin): the test accepting old property name 'hw_watchdog_action'
+ # should be removed in L release
+ def test_get_guest_config_with_watchdog_action_through_flavor_no_scope(
+ self):
+ self._test_get_guest_config_with_watchdog_action_flavor(
+ hw_watchdog_action="hw_watchdog_action")
+
def test_get_guest_config_with_watchdog_action_meta_overrides_flavor(self):
self.flags(virt_type='kvm', group='libvirt')
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py
index 43f4762163..8a0b82d9a9 100644
--- a/nova/virt/libvirt/driver.py
+++ b/nova/virt/libvirt/driver.py
@@ -3441,8 +3441,16 @@ class LibvirtDriver(driver.ComputeDriver):
raise exception.PciDeviceUnsupportedHypervisor(
type=CONF.libvirt.virt_type)
- watchdog_action = flavor.extra_specs.get('hw_watchdog_action',
- 'disabled')
+ if 'hw_watchdog_action' in flavor.extra_specs:
+ LOG.warn(_LW('Old property name "hw_watchdog_action" is now '
+ 'deprecated and will be removed in L release. '
+ 'Use updated property name '
+ '"hw:watchdog_action" instead'))
+ # TODO(pkholkin): accepting old property name 'hw_watchdog_action'
+ # should be removed in L release
+ watchdog_action = (flavor.extra_specs.get('hw_watchdog_action') or
+ flavor.extra_specs.get('hw:watchdog_action')
+ or 'disabled')
if (image_meta is not None and
image_meta.get('properties', {}).get('hw_watchdog_action')):
watchdog_action = image_meta['properties']['hw_watchdog_action']