2016-01-27 2 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).

Смежные вопросы