Я сделал скрипт на ruby, который извлекает информацию из виртуальной машины, используя Vsphere API с драгоценным камнем Fog.
Я хочу получить доступ к VirtualMachine:VirtualMachineRuntimeInfo:runtime в Vsphere API.
Моя проблема в том, что для доступа к этому ресурсу мне нужно получить объект виртуальной машины. Я должен использовать метод «get_vm_ref» в файле get_virtual_machine.rb, но это защищенный метод.
Я использовал патч обезьяны, чтобы использовать эту защищенную функцию, но я хотел бы знать, есть ли другой способ (правильный способ) сделать это?
Я не нашел другого способа в библиотеке vsphere получить 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