1
我试图红宝石雾的vSphere例如:红宝石雾的vSphere输出上市进程内对象
#!/usr/bin/env ruby
require 'rubygems'
require 'pp'
require 'fog'
require 'highline/import'
def get_password(prompt="Enter password:")
ask(prompt) {|q| q.echo = false}
end
#user = gets.chomp
pass = get_password()
credentials = {
:provider => "vsphere",
:vsphere_username => "user.name",
:vsphere_password => pass,
:vsphere_server => "my_vcserver",
:vsphere_ssl => true,
:vsphere_expected_pubkey_hash => "my_hash",
:vsphere_rev => "4.0"
}
connection = Fog::Compute.new(credentials)
# MUST BE Ruby v 1.9 to use this hash style
vms = connection.list_virtual_machines(datacenter: 'my_dc', folder: 'my_folder')
pp vms
它连接并报告数据,但也有几个属性,不显示正确的数据,相反,它说明了什么看起来像一个Proc对象。我对mac_addresses属性感兴趣。如何从该对象中获取数据?
{"id"=>"52e9592f-4da9-c5b4-a78e-92d39705d900",
"name"=>"a41",
"uuid"=>"784d4e21-e4a7-e059-cdef-4ff1453f093d",
"template"=>false,
"parent"=>Folder("group-v16163"),
"hostname"=>nil,
"operatingsystem"=>nil,
"ipaddress"=>nil,
"power_state"=>"poweredOn",
"connection_state"=>"connected",
"hypervisor"=>
#<Proc:[email protected]/opt/rh/ruby193/root/usr/local/share/gems/gems/fog-1.22.0/lib/fog/vsphere/compute.rb:150>,
"tools_state"=>"toolsNotInstalled",
"tools_version"=>"guestToolsNotInstalled",
"memory_mb"=>8192,
"cpus"=>2,
"corespersocket"=>2,
"overall_status"=>"green",
"guest_id"=>"centos64Guest",
"mo_ref"=>"vm-16217",
"datacenter"=>
#<Proc:[email protected]/opt/rh/ruby193/root/usr/local/share/gems/gems/fog-1.22.0/lib/fog/vsphere/compute.rb:148>,
"cluster"=>
#<Proc:[email protected]/opt/rh/ruby193/root/usr/local/share/gems/gems/fog-1.22.0/lib/fog/vsphere/compute.rb:149>,
"resource_pool"=>
#<Proc:[email protected]/opt/rh/ruby193/root/usr/local/share/gems/gems/fog-1.22.0/lib/fog/vsphere/compute.rb:151>,
"mac_addresses"=>
#<Proc:[email protected]/opt/rh/ruby193/root/usr/local/share/gems/gems/fog-1.22.0/lib/fog/vsphere/compute.rb:155>,
"path"=>"/Datacenters/DEV/vm",
"relative_path"=>"DEV"}