如何让使用python
问题描述:
从OpenStack的服务器列表我非常新的OpenStack和Python如何让使用python
我试图摆脱OpenStack的服务器列表..这里是代码
credentials.py
import os
def get_nova_credentials_v2():
d = {}
d['version'] = '2'
d['username'] = os.environ['billing']
d['password'] = os.environ['mypassword']
d['auth_url'] = os.environ['my auth url']
d['project_id'] = os.environ['projectname']
return d
instance.py
from credentials import get_nova_credentials_v2
from novaclient.client import Client
credentials = get_nova_credentials_v2()
nova_client = Client(**credentials)
print(nova_client.servers.list())
我得到的错误
C:\Python27\python.exe C:/Users/ICEClenovos/PycharmProjects/billing/instance.py
Traceback (most recent call last):
File "C:/Users/ICEClenovos/PycharmProjects/billing/instance.py", line 5, in <module>
credentials = get_nova_credentials_v2()
File "C:\Users\ICEClenovos\PycharmProjects\billing\credentials.py", line 7, in
get_nova_credentials_v2
d['username'] = os.environ['billing']
File "C:\Python27\lib\os.py", line 423, in __getitem__
return self.data[key.upper()]
KeyError: 'BILLING'
Process finished with exit code 1
不知道我在做wrong..Please帮助
答
如果你正试图获得来自OpenStack的服务器的详细信息,你不需要源碧玲细节。获取“stackrc/openrc”文件中可用的凭证。
我们使用nova对象调用servers.list()。同样你可以玩弄实例细节,并获得更多有关实例的信息here
from novaclient import client as novaclient
nova = novaclient.Client(version='2.0',username='xxxx',api_key='xxxx',project_id='xxxx',auth_url='http://192.168.12.3:5000/v2.0/',insecure='True')
for server in nova.servers.list():
print server.id, server.name
+0
你能否给你的代码添加一些上下文? – ppperry 2016-09-04 14:29:37
是否设置了您的环境变量BILLING?根据你的Python脚本,no:该错误意味着在字典os.environ中没有设置键'BILLING'。 – mgaido 2014-11-04 16:51:35