neutronclient Python API¶
基本用法¶
首先,使用 keystoneauth Session 创建一个客户端实例。有关此 keystoneauth API 的更多信息,请参阅 使用 Session。
from keystoneauth1 import identity
from keystoneauth1 import session
from neutronclient.v2_0 import client
username='username'
password='password'
project_name='demo'
project_domain_id='default'
user_domain_id='default'
auth_url='http://auth.example.com:5000/v3'
auth = identity.Password(auth_url=auth_url,
username=username,
password=password,
project_name=project_name,
project_domain_id=project_domain_id,
user_domain_id=user_domain_id)
sess = session.Session(auth=auth)
neutron = client.Client(session=sess)
如果您使用的是 Identity v2.0 API(已弃用),请使用适当的参数和 keystoneauth1.identity 创建一个身份验证插件,它将处理 Identity API 版本发现。然后,您可以像前面的示例一样创建 Session 和 Neutronclient。
auth = identity.Password(auth_url=auth_url,
username=username,
password=password,
project_name=project_name)
# create a Session and a Neutronclient
现在,您可以调用客户端实例上的各种方法。
network = {'name': 'mynetwork', 'admin_state_up': True}
neutron.create_network({'network':network})
networks = neutron.list_networks(name='mynetwork')
print networks
network_id = networks['networks'][0]['id']
neutron.delete_network(network_id)
或者,您可以使用身份验证令牌和直接的服务端点 URL 创建客户端实例。
from neutronclient.v2_0 import client
neutron = client.Client(endpoint_url='http://192.168.206.130:9696/',
token='d3f9226f27774f338019aa2611112ef6')
您可以从结果中获取 X-Openstack-Request-Id 作为 request_ids。
network = {'name': 'mynetwork', 'admin_state_up': True}
neutron.create_network({'network':network})
networks = neutron.list_networks(name='mynetwork')
print networks.request_ids
# -> ['req-978a0160-7ab0-44f0-8a93-08e9a4e785fa']