def format_dom(self):
sysinfo = super(LibvirtConfigGuestSysinfo, self).format_dom()
...
system = etree.Element("system")
...
if self.system_product is not None: system.append(self._text_node("entry", self.system_product, name="product"))
...
if len(list(system)) > 0: sysinfo.append(system)
return sysinfo
So the difference seems to be that KVM/etc uses DMI tag at `domain/sysinfo/system/entry[name='product']` and LXC should use env var tag at `domain/os/initenv[name='product_name']` which is handled in another private member function of the driver.
I dug a bit more and I think I found it. That "OpenStack Nova" string is defined here:
nova/version.py:
----------------
NOVA_PRODUCT = "OpenStack Nova"
def product_string():
_load_config()
return NOVA_PRODUCT
and used in the driver to setup 'system_product'
nova/virt/ libvirt/ driver. py: ------- ------- -------
-------
def _get_guest_ config_ sysinfo( self, instance): LibvirtConfigGu estSysinfo( )
sysinfo. system_ product = version. product_ string( )
sysinfo = vconfig.
...
which is translated again to Libvirt XML schema (https:/ /libvirt. org/formatdomai n.html# elementsSysinfo) in charge of DMI entries of the VM.
nova/virt/ libvirt/ config. py: ------- ------- -------
-------
def format_dom(self): nfigGuestSysinf o, self).format_dom() "system" )
system. append( self._text_ node("entry" , self.system_ product,
name="product" ))
sysinfo. append( system)
sysinfo = super(LibvirtCo
...
system = etree.Element(
...
if self.system_product is not None:
...
if len(list(system)) > 0:
return sysinfo
So the difference seems to be that KVM/etc uses DMI tag at `domain/ sysinfo/ system/ entry[name= 'product' ]` and LXC should use env var tag at `domain/ os/initenv[ name='product_ name']` which is handled in another private member function of the driver.