neutronclient Python API

Basic Usage

First create a client instance using a keystoneauth Session. For more information on this keystoneauth API, see Using Sessions.

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)

If you are using Identity v2.0 API (DEPRECATED), create an auth plugin using the appropriate parameters and keystoneauth1.identity will handle Identity API version discovery. Then you can create a Session and a Neutronclient just like the previous example.

auth = identity.Password(auth_url=auth_url,
                         username=username,
                         password=password,
                         project_name=project_name)
# create a Session and a Neutronclient

Now you can call various methods on the client instance.

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)

Alternatively, you can create a client instance using an auth token and a service endpoint URL directly.

from neutronclient.v2_0 import client
neutron = client.Client(endpoint_url='http://192.168.206.130:9696/',
                        token='d3f9226f27774f338019aa2611112ef6')

You can get X-Openstack-Request-Id as request_ids from the result.

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']