summaryrefslogtreecommitdiff
path: root/nova/network/neutron.py
diff options
context:
space:
mode:
Diffstat (limited to 'nova/network/neutron.py')
-rw-r--r--nova/network/neutron.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/nova/network/neutron.py b/nova/network/neutron.py
index 6c9f19f010..eef2abe364 100644
--- a/nova/network/neutron.py
+++ b/nova/network/neutron.py
@@ -222,13 +222,15 @@ def _get_auth_plugin(context, admin=False):
# support some services (metadata API) where an admin context is used
# without an auth token.
global _ADMIN_AUTH
+ user_auth = None
if admin or (context.is_admin and not context.auth_token):
if not _ADMIN_AUTH:
_ADMIN_AUTH = _load_auth_plugin(CONF)
- return _ADMIN_AUTH
+ user_auth = _ADMIN_AUTH
- if context.auth_token:
- return service_auth.get_auth_plugin(context)
+ if context.auth_token or user_auth:
+ # When user_auth = None, user_auth will be extracted from the context.
+ return service_auth.get_auth_plugin(context, user_auth=user_auth)
# We did not get a user token and we should not be using
# an admin token so log an error
@@ -3907,7 +3909,7 @@ class API:
'Failed to get segment IDs for network %s' % network_id) from e
# The segment field of an unconfigured subnet could be None
return [subnet['segment_id'] for subnet in subnets
- if subnet['segment_id'] is not None]
+ if subnet.get('segment_id') is not None]
def get_segment_id_for_subnet(
self,