[one-users] listing images and its vms

João Pagaime joao.pagaime at gmail.com
Wed Feb 5 05:22:17 PST 2014


thanks, you answer was very useful!

--joão

Em 05-02-2014 11:38, Javier Fontan escreveu:
> "img" does not have a method called vms. You can get the IDs of the
> VMs using the retrieve_elements method [1]:
>
> vm_ids=img.retrieve_elements("VMS/ID")
>
> As an example you can check the code for oneimage show [2].
>
> [1] http://docs.opennebula.org/doc/4.4/oca/ruby/OpenNebula/XMLElement.html#retrieve_elements-instance_method
> [2] https://github.com/OpenNebula/one/blob/one-4.4/src/cli/one_helper/oneimage_helper.rb#L301
>
>
> On Wed, Feb 5, 2014 at 9:44 AM, João Pagaime <joao.pagaime at gmail.com> wrote:
>> Hello all
>>
>> I'm trying to put together a very simple ruby script that outputs
>> opennebula's images and its vms
>>
>> as far as listing opennebula's images, everything is fine, but I get an
>> error when trying, for each image, to lists its vms
>>
>> acording to the 4.2 API documentation the  image class should have a "vms"
>> list/array member, but I get an error when I try to instantiate that
>>
>> where's the script. The offending statement in red. Any help would be
>> appreciated
>>
>> thanks
>> joão
>>
>> -------------------------- (snatched from openneb examples and then
>> adapted...)
>>
>> #!/usr/bin/env ruby
>>
>> ##############################################################################
>> # Environment Configuration
>> ##############################################################################
>> ONE_LOCATION=ENV["ONE_LOCATION"]
>>
>> if !ONE_LOCATION
>>      RUBY_LIB_LOCATION="/usr/lib/one/ruby"
>> else
>>      RUBY_LIB_LOCATION=ONE_LOCATION+"/lib/ruby"
>> end
>>
>> $: << RUBY_LIB_LOCATION
>>
>> ##############################################################################
>> # Required libraries
>> ##############################################################################
>> require 'opennebula'
>>
>> include OpenNebula
>>
>> # OpenNebula credentials
>> CREDENTIALS = "oneadmin:(REMOVED)"
>> # XML_RPC endpoint where OpenNebula is listening
>> ENDPOINT    = "http://localhost:2633/RPC2"
>>
>> client = Client.new(CREDENTIALS, ENDPOINT)
>>
>> img_pool = ImagePool.new(client, -1)
>>
>> rc2 = img_pool.info
>> if OpenNebula.is_error?(rc2)
>>       puts rc2.message
>>       exit -1
>> end
>>
>> img_pool.each do |img|
>>         puts "img id=#{img.id},#{img.name}"
>>         img.vms.each do |vm|
>>         end
>> end
>>
>>
>> ---------------------------
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opennebula.org
>> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>>
>
>




More information about the Users mailing list