from keystoneclient.session import Session as KeystoneSession from keystoneclient.auth.identity.v3 import Password as KeystonePassword from neutronclient.v2_0 import client as neutronclient def get_keystone_session(project): return KeystoneSession(auth=KeystonePassword( auth_url="http://cloudcontrol1003.wikimedia.org:5000/v3", username="novaobserver", password='Fs6Dq2RtG8KwmM2Z', # read-only guest account, password is public project_name=project, user_domain_name='default', project_domain_name='default' )) session = get_keystone_session('bastion') client = neutronclient.Client(session=session, region_name='eqiad1-r') print(client) print(client.list_quotas())
Gives this:
<neutronclient.v2_0.client.Client object at 0x7f0d975d3510> Traceback (most recent call last): File "testNeutronStuff.py", line 18, in <module> print(client.list_quotas()) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 97, in with_params ret = self.function(instance, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 612, in list_quotas return self.get(self.quotas_path, params=_params) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 358, in get headers=headers, params=params) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 335, in retry_request headers=headers, params=params) File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 286, in do_request resp, replybody = self.httpclient.do_request(action, method, body=body) File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 306, in do_request return self.request(url, method, **kwargs) File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 294, in request resp = super(SessionClient, self).request(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/keystoneauth1/adapter.py", line 98, in request return self.session.request(url, method, **kwargs) File "/usr/lib/python2.7/dist-packages/positional/__init__.py", line 94, in inner return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/keystoneclient/session.py", line 405, in request resp = send(**kwargs) File "/usr/lib/python2.7/dist-packages/keystoneclient/session.py", line 449, in _send_request raise exceptions.ConnectionRefused(msg) keystoneauth1.exceptions.connection.ConnectFailure: Unable to establish connection to http://cloudcontrol1003.wikimedia.org:9696/v2.0/quotas.json
I'm guessing either the neutron API is not properly exposed, or keystone is telling us the wrong port for neutron, or something.