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.
<rng model='virtio'>
<backend model='random'/>
</rng>
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
This commit is contained in:
@@ -1387,6 +1387,10 @@ class LibvirtConnTestCase(test.TestCase):
|
|||||||
vconfig.LibvirtConfigGuestVideo)
|
vconfig.LibvirtConfigGuestVideo)
|
||||||
self.assertIsInstance(cfg.devices[6],
|
self.assertIsInstance(cfg.devices[6],
|
||||||
vconfig.LibvirtConfigGuestRng)
|
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):
|
def test_get_guest_config_with_rng_not_allowed(self):
|
||||||
self.flags(virt_type='kvm',
|
self.flags(virt_type='kvm',
|
||||||
@@ -1453,6 +1457,8 @@ class LibvirtConnTestCase(test.TestCase):
|
|||||||
vconfig.LibvirtConfigGuestVideo)
|
vconfig.LibvirtConfigGuestVideo)
|
||||||
self.assertIsInstance(cfg.devices[6],
|
self.assertIsInstance(cfg.devices[6],
|
||||||
vconfig.LibvirtConfigGuestRng)
|
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_bytes, 1024)
|
||||||
self.assertEqual(cfg.devices[6].rate_period, 2)
|
self.assertEqual(cfg.devices[6].rate_period, 2)
|
||||||
|
|
||||||
@@ -1495,7 +1501,10 @@ class LibvirtConnTestCase(test.TestCase):
|
|||||||
vconfig.LibvirtConfigGuestVideo)
|
vconfig.LibvirtConfigGuestVideo)
|
||||||
self.assertIsInstance(cfg.devices[6],
|
self.assertIsInstance(cfg.devices[6],
|
||||||
vconfig.LibvirtConfigGuestRng)
|
vconfig.LibvirtConfigGuestRng)
|
||||||
|
self.assertEqual(cfg.devices[6].model, 'random')
|
||||||
self.assertEqual(cfg.devices[6].backend, '/dev/hw_rng')
|
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):
|
def test_get_guest_config_with_rng_dev_not_present(self):
|
||||||
self.flags(virt_type='kvm',
|
self.flags(virt_type='kvm',
|
||||||
|
|||||||
@@ -1616,11 +1616,12 @@ class LibvirtConfigGuestRngTest(LibvirtConfigBaseTest):
|
|||||||
xml = obj.to_xml()
|
xml = obj.to_xml()
|
||||||
self.assertXmlEqual(xml, """
|
self.assertXmlEqual(xml, """
|
||||||
<rng model='virtio'>
|
<rng model='virtio'>
|
||||||
<backend model='random'>/dev/random</backend>
|
<backend model='random'/>
|
||||||
</rng>""")
|
</rng>""")
|
||||||
|
|
||||||
def test_config_rng_driver_with_rate(self):
|
def test_config_rng_driver_with_rate(self):
|
||||||
obj = config.LibvirtConfigGuestRng()
|
obj = config.LibvirtConfigGuestRng()
|
||||||
|
obj.backend = '/dev/random'
|
||||||
obj.rate_period = '12'
|
obj.rate_period = '12'
|
||||||
obj.rate_bytes = '34'
|
obj.rate_bytes = '34'
|
||||||
|
|
||||||
|
|||||||
@@ -1371,7 +1371,7 @@ class LibvirtConfigGuestRng(LibvirtConfigGuestDevice):
|
|||||||
**kwargs)
|
**kwargs)
|
||||||
|
|
||||||
self.model = 'random'
|
self.model = 'random'
|
||||||
self.backend = '/dev/random'
|
self.backend = None
|
||||||
self.rate_period = None
|
self.rate_period = None
|
||||||
self.rate_bytes = None
|
self.rate_bytes = None
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user