fix: can't get authentication with os-token and os-url

Currently, there is no way to authenticate a user
through Neutron CLI by just using endpoint and token
authentication. This simple fix will at least allow
for that to be permitted.

Change-Id: Ia7d285af224ef225aa20f83d7d4c87b81aac58ed
Closes-Bug: 1450414
This commit is contained in:
Jaspinder
2016-01-04 05:08:41 -06:00
committed by Jas
parent 561ced8402
commit 0740766467
2 changed files with 24 additions and 4 deletions

View File

@@ -898,11 +898,22 @@ class NeutronShell(app.App):
cloud=self.options.os_cloud, argparse=self.options, cloud=self.options.os_cloud, argparse=self.options,
network_api_version=self.api_version) network_api_version=self.api_version)
verify, cert = cloud_config.get_requests_verify_args() verify, cert = cloud_config.get_requests_verify_args()
auth = cloud_config.get_auth()
auth_session = session.Session( # TODO(singhj): Remove dependancy on HTTPClient
auth=auth, verify=verify, cert=cert, # for the case of token-endpoint authentication
timeout=self.options.http_timeout)
# When using token-endpoint authentication legacy
# HTTPClient will be used, otherwise SessionClient
# will be used.
if self.options.os_token and self.options.os_url:
auth = None
auth_session = None
else:
auth = cloud_config.get_auth()
auth_session = session.Session(
auth=auth, verify=verify, cert=cert,
timeout=self.options.http_timeout)
interface = self.options.os_endpoint_type or self.endpoint_type interface = self.options.os_endpoint_type or self.endpoint_type
if interface.endswith('URL'): if interface.endswith('URL'):
@@ -911,6 +922,8 @@ class NeutronShell(app.App):
retries=self.options.retries, retries=self.options.retries,
raise_errors=False, raise_errors=False,
session=auth_session, session=auth_session,
url=self.options.os_url,
token=self.options.os_token,
region_name=cloud_config.get_region_name(), region_name=cloud_config.get_region_name(),
api_version=cloud_config.get_api_version('network'), api_version=cloud_config.get_api_version('network'),
service_type=cloud_config.get_service_type('network'), service_type=cloud_config.get_service_type('network'),

View File

@@ -0,0 +1,7 @@
---
features:
- |
CLI support for token-endpoint authentication.
* Allows for authentication via ``--os-token`` and ``--os-url`` options
or the ``OS_TOKEN`` and ``OS_URL`` environment variables, respectively