2013-02-05 41 views
1

嘗試並嘗試在霧1.9中用vsphere提供程序做一些非常簡單的事情。那些小文檔中的例子並不適合我。VSphere和霧

我想列出文件夾中的所有虛擬機。簡單的呃?

試過......

credentials = { 
    :provider => "vsphere", 
    :vsphere_username => user, 
    :vsphere_password=> pass, 
    :vsphere_server => "vc_name", 
    :vsphere_ssl => true, 
    :vsphere_expected_pubkey_hash => "1466f20c1b3f990a2a018dc2ca22a79fc2d0284ab4aac534c47blah" 
} 

compute = Fog::Compute.new(credentials) 
vms = compute.servers.all('folder' => '/Datacenters/Ewl/Self-Service') 

pp vms 

這個連接並攪動離開並返回所有虛擬機在數據中心,而不僅僅是文件夾。格兒。

我試過很多變化的文件夾變量,例如

vms = compute.servers.all('folder' => '/Hosts & Clusters/Ewl1_vm/Self-Service') 
vms = compute.servers.all('folder' => 'Self-Service') 
vms = compute.servers.all('folder' => 'Self-Service','datacenter' => 'Ewl') 

但都做同樣的事情。

我已經通過代碼工作,它並沒有真正幫助我。

幫助!

回答

1

如果我理解你的數據中心和文件夾的名稱相同,那麼簡單的方法來做到這一點是:

vms = compute.list_virtual_machines(datacenter: 'Ewl', folder: 'Self-Service') 
在.servers.all過濾

「文件夾」假設應該工作,但你必然會發現帶有隱藏路徑的驚喜,超過1個數據中心等。

+0

感謝您的回覆@greymouser。當我看到你的定義散列時,我感到震驚。我以爲我弄錯了!然後嘗試它並得到這個... 'test1.rb:36:語法錯誤,意外':',期待')' ... t_virtual_machines(數據中心:'Ewl',文件夾:'自助服務'。 ... ^ test1.rb:36:語法錯誤,意外的',',期待$結束 ... al_machines(數據中心:'Ewl',文件夾:'自助服務')' 示例使用火箭=> – jimmyjamesd

+0

是的,只要使用舊式哈希,如果這是你的Ruby版本支持。除此之外,上面的代碼應該爲你工作。 – greymouser

+0

** YAY **使用1.9現在,它的工作!乾杯@greymouser 1- – jimmyjamesd