On 10/16/2012 05:26 PM, Marcus Karlsson wrote: > Since 0.9.10 libvirt supports editing a domain's metadata using the > SetMetadata API. Using that API the description of a domain can be > edited as it is running. > > Make virt-manager edit the description of a domain using SetMetadata > when available. > --- > src/virtManager/details.py | 11 +---------- > src/virtManager/domain.py | 17 +++++++++++++++++ > 2 files changed, 18 insertions(+), 10 deletions(-) > Thanks Markus, applied now: http://git.fedorahosted.org/cgit/virt-manager.git/commit/?id=248cb89c1c6786d856d597f7c837c33545f43c8f - Cole > diff --git a/src/virtManager/details.py b/src/virtManager/details.py > index 35dc833..e57903a 100644 > --- a/src/virtManager/details.py > +++ b/src/virtManager/details.py > @@ -2033,16 +2033,7 @@ class vmmDetails(vmmGObjectUI): > desc_widget = self.widget("overview-description") > desc = desc_widget.get_buffer().get_property("text") or "" > add_define(self.vm.define_description, desc) > - > - # Hack so that we don't get a warning that > - # 'changes take effect after reboot' > - # We already fake hotplug like behavior, by reading the > - # description from the inactive XML from a running VM > - # > - # libvirt since 0.9.10 provides a SetMetadata API that provides > - # actual <description> 'hotplug', but using that means checking > - # for support, version, etc, so let's stick with the easy way > - add_hotplug(lambda d: d, desc) > + add_hotplug(self.vm.hotplug_description, desc) > > return self._change_config_helper(df, da, hf, ha) > > diff --git a/src/virtManager/domain.py b/src/virtManager/domain.py > index d536f77..cc446c4 100644 > --- a/src/virtManager/domain.py > +++ b/src/virtManager/domain.py > @@ -813,6 +813,23 @@ class vmmDomain(vmmLibvirtObject): > devobj.passwd = newval or None > self.update_device(devobj) > > + def hotplug_description(self, desc): > + # We already fake hotplug like behavior, by reading the > + # description from the inactive XML from a running VM > + # > + # libvirt since 0.9.10 provides a SetMetadata API that provides > + # actual <description> 'hotplug', and using that means checkig > + # for support, version, etc. > + if not virtinst.support.check_domain_support(self._backend, > + virtinst.support.SUPPORT_DOMAIN_SET_METADATA): > + return > + > + flags = (libvirt.VIR_DOMAIN_AFFECT_LIVE | > + libvirt.VIR_DOMAIN_AFFECT_CONFIG) > + self._backend.setMetadata( > + libvirt.VIR_DOMAIN_METADATA_DESCRIPTION, > + desc, None, None, flags) > + > > ######################## > # Libvirt API wrappers # >