<div dir="ltr">Hi,<div><br></div><div>Libvirt supports inserting <metadata> tag while generating XML to be pushed down. </div><div><br></div><div>In nova's libvirt driver code we dont have this today. Should we add it?</div>
<div><br></div><div>For ex in nova/nova/virt/libvirt/config.py:</div><div><br></div><div><div>class LibvirtConfigGuest(LibvirtConfigObject):</div><div><br></div><div>    def __init__(self, **kwargs):</div><div>        super(LibvirtConfigGuest, self).__init__(root_name="domain",</div>
<div>                                                 **kwargs)</div><div><br></div><div>        self.virt_type = None</div><div>        self.uuid = None</div><div>        <a href="http://self.name">self.name</a> = None</div>
<div>        self.memory = 1024 * 1024 * 500</div><div>        self.vcpus = 1</div><div>        self.cpu = None</div><div>        self.acpi = False</div><div>        self.apic = False</div><div>        self.clock = None</div>
<div>        self.sysinfo = None</div><div>        self.os_type = None</div><div>        self.os_loader = None</div><div>        self.os_kernel = None</div><div>        self.os_initrd = None</div><div>        self.os_cmdline = None</div>
<div>        self.os_root = None</div><div>        self.os_init_path = None</div><div>        self.os_boot_dev = None</div><div>        self.os_smbios = None</div><div><b>+        self.meta = None</b></div><div>        self.devices = []</div>
</div><div>....</div><div><br></div><div><br></div><div><div><b>+    def _format_meta(self, root):</b></div><div><b>+        metadata = etree.Element("metadata")</b></div><div><b>+        metadata.append(self.meta)</b></div>
<div><b>+        root.append(metadata)</b></div><div>        </div><div>    def format_dom(self):</div><div>        root = super(LibvirtConfigGuest, self).format_dom()</div><div><br></div><div>        root.set("type", self.virt_type)</div>
<div><br></div><div>        self._format_basic_props(root)</div><div><br></div><div>        if self.sysinfo is not None:</div><div>            root.append(self.sysinfo.format_dom())</div><div><br></div><div>        self._format_os(root)</div>
<div>        self._format_features(root)</div><div><br></div><div>        if self.clock is not None:</div><div>            root.append(self.clock.format_dom())</div><div><br></div><div>        if self.cpu is not None:</div>
<div>            root.append(self.cpu.format_dom())</div><div>        </div><div><b>+        if self.meta is not None:</b></div><div><b>+            self._format_meta(root)</b></div><div><br></div><div>        self._format_devices(root)</div>
<div><br></div><div>        return root</div></div><div><br></div><div><br></div><div>One can set meta in nova/nova/virt/libvirt/driver.py if they want to.</div><div><br></div><div><br></div><div>Please let me know your thoughts. I can make the necessary change if require.</div>
<div><br></div><div>Thanks,</div><div>Ronak</div><div><br></div></div>