From 605677ca57961b5edbb2e89abb15d0f34ca93678 Mon Sep 17 00:00:00 2001 From: Mark McLoughlin Date: Wed, 19 Feb 2014 07:24:17 +0000 Subject: [PATCH] libvirt: remove explicit /dev/random rng default libvirt (or rather qemu) will default to /dev/random if no rng device path is specified i.e. It's preferable for us to not duplicate this default to allow for a future where libvirt or the hypervisor needs to make more intelligent decisions about the default device to use. Also, improve the unit tests to catch this issue. Change-Id: Ia0f922f7de575496972b4dfa9d56aa22205f1758 --- nova/tests/virt/libvirt/test_libvirt.py | 9 +++++++++ nova/tests/virt/libvirt/test_libvirt_config.py | 3 ++- nova/virt/libvirt/config.py | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/nova/tests/virt/libvirt/test_libvirt.py b/nova/tests/virt/libvirt/test_libvirt.py index 1d8b80756c22..3275d1e57571 100644 --- a/nova/tests/virt/libvirt/test_libvirt.py +++ b/nova/tests/virt/libvirt/test_libvirt.py @@ -1387,6 +1387,10 @@ class LibvirtConnTestCase(test.TestCase): vconfig.LibvirtConfigGuestVideo) self.assertIsInstance(cfg.devices[6], vconfig.LibvirtConfigGuestRng) + self.assertEqual(cfg.devices[6].model, 'random') + self.assertIsNone(cfg.devices[6].backend) + self.assertIsNone(cfg.devices[6].rate_bytes) + self.assertIsNone(cfg.devices[6].rate_period) def test_get_guest_config_with_rng_not_allowed(self): self.flags(virt_type='kvm', @@ -1453,6 +1457,8 @@ class LibvirtConnTestCase(test.TestCase): vconfig.LibvirtConfigGuestVideo) self.assertIsInstance(cfg.devices[6], vconfig.LibvirtConfigGuestRng) + self.assertEqual(cfg.devices[6].model, 'random') + self.assertIsNone(cfg.devices[6].backend) self.assertEqual(cfg.devices[6].rate_bytes, 1024) self.assertEqual(cfg.devices[6].rate_period, 2) @@ -1495,7 +1501,10 @@ class LibvirtConnTestCase(test.TestCase): vconfig.LibvirtConfigGuestVideo) self.assertIsInstance(cfg.devices[6], vconfig.LibvirtConfigGuestRng) + self.assertEqual(cfg.devices[6].model, 'random') self.assertEqual(cfg.devices[6].backend, '/dev/hw_rng') + self.assertIsNone(cfg.devices[6].rate_bytes) + self.assertIsNone(cfg.devices[6].rate_period) def test_get_guest_config_with_rng_dev_not_present(self): self.flags(virt_type='kvm', diff --git a/nova/tests/virt/libvirt/test_libvirt_config.py b/nova/tests/virt/libvirt/test_libvirt_config.py index 3bd45e25e3a9..8da799762d03 100644 --- a/nova/tests/virt/libvirt/test_libvirt_config.py +++ b/nova/tests/virt/libvirt/test_libvirt_config.py @@ -1616,11 +1616,12 @@ class LibvirtConfigGuestRngTest(LibvirtConfigBaseTest): xml = obj.to_xml() self.assertXmlEqual(xml, """ - /dev/random + """) def test_config_rng_driver_with_rate(self): obj = config.LibvirtConfigGuestRng() + obj.backend = '/dev/random' obj.rate_period = '12' obj.rate_bytes = '34' diff --git a/nova/virt/libvirt/config.py b/nova/virt/libvirt/config.py index 7fb5c844a6c4..3602da8f5b9b 100644 --- a/nova/virt/libvirt/config.py +++ b/nova/virt/libvirt/config.py @@ -1371,7 +1371,7 @@ class LibvirtConfigGuestRng(LibvirtConfigGuestDevice): **kwargs) self.model = 'random' - self.backend = '/dev/random' + self.backend = None self.rate_period = None self.rate_bytes = None