Я создал скрипт в рубине, который извлекает информацию из виртуальной машины с помощью 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