[libvirt] [Ruby]How to retrieve nodes in <devices> ?

Teto mattator at gmail.com
Sun Jan 12 23:09:54 UTC 2014


Hi,
Thanks to your advice, I was able to make it work using nokogiri.
I am now trying to attach new devices (shared folders) via my custom function:
=====
        def attach_device(uuid , device)
          puts "CAlled with uuid #{uuid}"

          client.lookup_domain_by_uuid(uuid).update_device(device.to_s, 0)
        end
=====
"device.to_s" returns a correct xml for <filesystem>. I then have the
following error:

>CAlled with uuid 8cc185ef-4bf1-4b78-9caa-cd14c70cd1b3
>/home/teto/fog/lib/fog/libvirt/requests/compute/attach_device.rb:38:in `update_device': Call to virDomainUpdateDeviceFlags failed: >Operation not supported: persistent update of device 'filesystem' is not supported (Libvirt::Error)

Does that mean I need to undefine my domain and then recreate it if I
want to keep the update persistent ?

Regards

Matt


2014/1/9 Chris Lalancette <clalancette at gmail.com>:
> On Thu, Jan 9, 2014 at 11:04 AM, Teto <mattator at gmail.com> wrote:
>> Hi,
>>
>> I would like to list devices (for instance I would like to retrieve
>> the <filesystem> part in <devices><filesystem
>> type="mount">...</filesystem></devices>) embedded in a domain via the
>> ruby bindings ?
>
> The steps are roughly:
> 1.  require 'libvirt'
> 2.  Connect to libvirt using the open method
> 3.  Find the domain you care about using lookup_domain_by_name
> 4.  Get the XML for the domain
> 5.  Parse the domain XML using nokogiri or similar
>
> It would look something like this (the details will be somewhat
> different depending on which connection URI and domain you are using):
>
> require 'libvirt'
>
> conn = Libvirt::open('qemu:///system')
>
> dom = conn.lookup_domain_by_name('f19')
>
> xml_doc = Nokogiri::XML(dom.xml_desc)
>
> devs = xml_doc.xpath('/domain/devices')
>
> After that last line, you'll have the ability to iterate over the
> devices, and do whatever you want with them.  Hope this helps!
>
> Chris




More information about the libvir-list mailing list