On 04/23/2014 12:50 AM, Aline Manera wrote:
On 04/21/2014 03:22 AM, shaohef(a)linux.vnet.ibm.com wrote:
> From: ShaoHe Feng<shaohef(a)linux.vnet.ibm.com>
>
> define domain just edit the persistent xml.
> So we should get user and group from persistent xml instead of live xml
> when domain is living.
>
> Signed-off-by: ShaoHe Feng<shaohef(a)linux.vnet.ibm.com>
> Signed-off-by: Royce Lv<lvroyce(a)linux.vnet.ibm.com>
> ---
> src/kimchi/model/vms.py | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/src/kimchi/model/vms.py b/src/kimchi/model/vms.py
> index 90e9537..2b9bf56 100644
> --- a/src/kimchi/model/vms.py
> +++ b/src/kimchi/model/vms.py
> @@ -258,9 +258,11 @@ class VMModel(object):
>
> old_xml = new_xml = dom.XMLDesc(0)
>
> + meta_xml = (dom.XMLDesc(libvirt.VIR_DOMAIN_XML_INACTIVE)
> + if dom.isPersistent() else old_xml)
From libvirt doc
(
http://libvirt.org/html/libvirt-libvirt.html#virDomainGetXMLDesc):
"If @flags includes VIR_DOMAIN_XML_INACTIVE
<
http://libvirt.org/html/libvirt-libvirt.html#VIR_DOMAIN_XML_INACTIVE>, then
the XML represents the configuration that will be
used on the next boot of a persistent domain; otherwise, the
configuration represents the currently running domain"
So you don't need to add the 'if' statement there (if dom.isPersistent())
And call direclty:
meta_xml = (dom.XMLDesc(libvirt.VIR_DOMAIN_XML_INACTIVE)
Actually libvirt support
to create a dom without define it.
some other tools may keep the vm configure by itself, and just let
libvirt create it.
So no configure xml and dom.XMLDesc(libvirt.VIR_DOMAIN_XML_INACTIVE)
will raise an error.
> metadata_xpath = "/domain/metadata/kimchi/access/%s"
> - users = xpath_get_text(old_xml, metadata_xpath % "user")
> - groups = xpath_get_text(old_xml, metadata_xpath % "group")
> + users = xpath_get_text(meta_xml, metadata_xpath % "user")
> + groups = xpath_get_text(meta_xml, metadata_xpath % "group")
>
> for key, val in params.items():
> if key == 'users':
--
Thanks and best regards!
Sheldon Feng(???)<shaohef(a)linux.vnet.ibm.com>
IBM Linux Technology Center