diff --git a/nova/tests/unit/virt/ironic/utils.py b/nova/tests/unit/virt/ironic/utils.py
index 185cbbf173..a521635197 100644
--- a/nova/tests/unit/virt/ironic/utils.py
+++ b/nova/tests/unit/virt/ironic/utils.py
@@ -31,6 +31,7 @@ TEST_IMAGE_UUID = "cccccccc-cccc-cccc-cccc-cccccccccccc"
TEST_IMAGE_NAME = "test-image"
TEST_FLAVOR_ID = 1
TEST_FLAVOR_NAME = "fake.flavor"
+TEST_FLAVOR_FLAVORID = "iiiiiiii-iiii-iiii-iiii-iiiiiiiiiiii"
TEST_FLAVOR_EXTRA_SPECS = {
'baremetal:deploy_kernel_id': 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa',
'baremetal:deploy_ramdisk_id': 'bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb'}
@@ -226,6 +227,8 @@ def get_test_instance_driver_metadata(**kw):
properties={})
default_flavor_meta = driver.FlavorMeta(
name=kw.get('flavor_name', TEST_FLAVOR_NAME),
+ flavorid=kw.get('flavor_flavorid',
+ TEST_FLAVOR_FLAVORID),
memory_mb=kw.get('flavor_memorymb',
TEST_FLAVOR_MEMORYMB),
vcpus=kw.get('flavor_vcpus', TEST_FLAVOR_VCPUS),
diff --git a/nova/tests/unit/virt/libvirt/test_config.py b/nova/tests/unit/virt/libvirt/test_config.py
index 1d772f5432..90be09354e 100644
--- a/nova/tests/unit/virt/libvirt/test_config.py
+++ b/nova/tests/unit/virt/libvirt/test_config.py
@@ -4117,6 +4117,7 @@ class LibvirtConfigGuestMetadataNovaTest(LibvirtConfigBaseTest):
flavor = config.LibvirtConfigGuestMetaNovaFlavor()
flavor.name = "m1.lowgravity"
+ flavor.id = "f719a0dd-4b43-4efe-8336-48ef74099ad4"
flavor.vcpus = 8
flavor.memory = 2048
flavor.swap = 10
@@ -4152,12 +4153,102 @@ class LibvirtConfigGuestMetadataNovaTest(LibvirtConfigBaseTest):
moonbuggy
2009-02-13 23:31:30
-
+
2048
50
10
10
8
+
+
+
+ buzz
+ moonshot
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ """)
+
+ def test_config_metadata_flavor_extra_specs(self):
+ meta = config.LibvirtConfigGuestMetaNovaInstance()
+ meta.package = "2014.2.3"
+ meta.name = "moonbuggy"
+ meta.creationTime = 1234567890
+ meta.roottype = "image"
+ meta.rootid = "fe55c69a-8b2e-4bbc-811a-9ad2023a0426"
+
+ owner = config.LibvirtConfigGuestMetaNovaOwner()
+ owner.userid = "3472c2a6-de91-4fb5-b618-42bc781ef670"
+ owner.username = "buzz"
+ owner.projectid = "f241e906-010e-4917-ae81-53f4fb8aa021"
+ owner.projectname = "moonshot"
+
+ meta.owner = owner
+
+ flavor = config.LibvirtConfigGuestMetaNovaFlavor()
+ flavor.name = "m1.lowgravity"
+ flavor.id = "f719a0dd-4b43-4efe-8336-48ef74099ad4"
+ flavor.vcpus = 8
+ flavor.memory = 2048
+ flavor.swap = 10
+ flavor.disk = 50
+ flavor.ephemeral = 10
+ flavor.extra_specs = {"hw_rng:allowed": "true"}
+
+ meta.flavor = flavor
+
+ meta.ports = config.LibvirtConfigGuestMetaNovaPorts(
+ ports=[
+ config.LibvirtConfigGuestMetaNovaPort(
+ '567a4527-b0e4-4d0a-bcc2-71fda37897f7',
+ ips=[
+ config.LibvirtConfigGuestMetaNovaIp(
+ 'fixed', '192.168.1.1', '4'),
+ config.LibvirtConfigGuestMetaNovaIp(
+ 'fixed', 'fe80::f95c:b030:7094', '6'),
+ config.LibvirtConfigGuestMetaNovaIp(
+ 'floating', '11.22.33.44', '4')]),
+ config.LibvirtConfigGuestMetaNovaPort(
+ 'a3ca97e2-0cf9-4159-9bfc-afd55bc13ead',
+ ips=[
+ config.LibvirtConfigGuestMetaNovaIp(
+ 'fixed', '10.0.0.1', '4'),
+ config.LibvirtConfigGuestMetaNovaIp(
+ 'fixed', 'fdf8:f53b:82e4::52', '6'),
+ config.LibvirtConfigGuestMetaNovaIp(
+ 'floating', '1.2.3.4', '4')])])
+
+ xml = meta.to_xml()
+ self.assertXmlEqual(xml, """
+
+
+ moonbuggy
+ 2009-02-13 23:31:30
+
+ 2048
+ 50
+ 10
+ 10
+ 8
+
+ true
+