Openstack - Nova客户端 - 检索特定租户的服务器

时间:2016-01-27 08:47:15

标签: python openstack 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

有人看看并指导我对此进行排序。

1 个答案:

答案 0 :(得分:3)

默认情况下,nova仅返回与进行调用的租户关联的实例,在这种情况下,它是admin租户。要通知nova从所有租户返回实例,您可以将其添加到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)

注意:不确定为什么你打电话给nova客户keystone,但这让我很困惑。 Keystone是身份服务,你显然是在谈论计算服务(Nova)。