2015-05-12 9 views
0

Я создал скрипт в рубине, который извлекает информацию из виртуальной машины с помощью Vsphere API с помощью Fog gem.Извлечь runtimeInfo из виртуальной машины с помощью Vsphere in Fog (Ruby)

Я хотел бы получить доступ к VirtualMachine: VirtualMachineRuntimeInfo: runtime в API Vsphere.

Моя проблема заключается в том, что для доступа к этому ресурсу мне нужно получить объект VM. Мне нужно использовать метод get_vm_ref в файле get_virtual_machine.rb, но это защищенный метод.

Я использовал патч обезьяны, чтобы использовать эту защищенную функцию, но я хотел бы знать, есть ли другой способ (правильный способ) сделать это?

Я не нашел другого способа в vsphere lib для извлечения runtimeInfo из виртуальной машины.

Вот мой код:

#Load credentials 
config_par1 = YAML.load_file('config_par1.yml') 
#Connexion 
vsphere = Fog::Compute.new(config_par1.merge({:provider => 'Vsphere'})) 
#Retrieve VM id 
vm_id = vsphere.list_virtual_machines.first['id'] 
#Here is the problem, I use a protected method in Fog to access runtimeInfo 
vm = vsphere.get_vm_ref(vm_id) 
#Examples 
maxCpu = vm.runtime.maxCpuUsage 
maxMemory = vm.runtime.maxMemoryUsage 

ответ

0

я найти способ обойти «защищенным», я не думаю, что это хорошая практика, но она работает без использования обезьяны патч:

vm = vsphere.send :get_vm_ref, vm_id 

 Смежные вопросы

  • Нет связанных вопросов^_^