2016-01-27 68 views
0

我需要獲取特定租戶可用的服務器列表。Openstack - Nova客戶端 - 爲特定租戶檢索服務器

即考慮租戶的tenant_id如下:

ee13ef5e10644f3782179bbfac1cdab5 

現在我需要它僅適用於特定租戶的服務器。

我試過的代碼如下:

我無法得到結果。

它只是當我嘗試相同時顯示一個空列表。

from novaclient import client 
import json 


kwargs = { 
    "tenant_name":'admin', 
    "auth_url":'http://127.0.0.1:5000/v2.0', 
    "username":'admin', 
    "password":'password', 
} 

# Establish the connection Keystone 
keystone = client.Client('2', 'admin', 'sop52maw', 'admin', 'http://127.0.0.1:5000/v2.0') 

server_list = keystone.servers.list(search_opts={'tenant_id':'ee13ef5e10644f3782179bbfac1cdab5'}) 
print server_list 

有人看看,並指導我排序這一個。

回答

3

默認情況下,nova只返回與撥打電話的租戶相關聯的實例,在這種情況下,它是admin租戶。通知新星從所有住戶返回實例,那麼你可以添加到search_opts

nova = client.Client('2', 'admin', 'sop52maw', 'admin', 'http://127.0.0.1:5000/v2.0') 
search_opts = {'tenant_id':'ee13ef5e10644f3782179bbfac1cdab5', 'all_tenants': 1} 
server_list = nova.servers.list(search_opts=search_opts) 

注:不知道你爲什麼叫新星客戶keystone但混淆了地獄了我。 Keystone是身份服務,你顯然正在與計算服務(Nova)交談。