Move all_tenants and edit_managed attributes to designate Client
Initializing designate client with a pre-existing keystone session won't work as designate expects keystone session to have the 'all_tenants' and 'edit_managed' attributes: Example code: keystone_session = ksc_session.Session( auth=keystone_auth, verify=True, cert=my_cert ) than later: self._designate_client = designate_client( session=keystone_session, region_name=region_name ) with that code, wrap_api_call() will raise an exception: AttributeError: 'Session' object has no attribute 'all_tenants' Same goes for 'edit_managed'. This patch moves both attributes from Keystone session to designate Client. Closes-Bug: 1457821 Change-Id: I13d6c9ed46406fefc8cfa5de46811e4be009f1af
This commit is contained in:
parent
af7bdadf43
commit
34d14b06d9
designateclient
@ -31,7 +31,9 @@ class Command(CliffCommand):
|
|||||||
self.client = Client(
|
self.client = Client(
|
||||||
region_name=self.app.options.os_region_name,
|
region_name=self.app.options.os_region_name,
|
||||||
service_type=self.app.options.os_service_type,
|
service_type=self.app.options.os_service_type,
|
||||||
session=self.app.session)
|
session=self.app.session,
|
||||||
|
all_tenants=self.app.options.all_tenants,
|
||||||
|
edit_managed=self.app.options.edit_managed)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return super(Command, self).run(parsed_args)
|
return super(Command, self).run(parsed_args)
|
||||||
|
@ -234,9 +234,7 @@ class DesignateShell(App):
|
|||||||
user_domain_name=self.options.os_user_domain_name,
|
user_domain_name=self.options.os_user_domain_name,
|
||||||
token=self.options.os_token,
|
token=self.options.os_token,
|
||||||
insecure=self.options.insecure,
|
insecure=self.options.insecure,
|
||||||
cacert=self.options.os_cacert,
|
cacert=self.options.os_cacert
|
||||||
all_tenants=self.options.all_tenants,
|
|
||||||
edit_managed=self.options.edit_managed
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def run(self, argv):
|
def run(self, argv):
|
||||||
|
@ -101,7 +101,7 @@ def get_columns(data):
|
|||||||
def get_session(auth_url, endpoint, domain_id, domain_name, project_id,
|
def get_session(auth_url, endpoint, domain_id, domain_name, project_id,
|
||||||
project_name, project_domain_name, project_domain_id, username,
|
project_name, project_domain_name, project_domain_id, username,
|
||||||
user_id, password, user_domain_id, user_domain_name, token,
|
user_id, password, user_domain_id, user_domain_name, token,
|
||||||
insecure, cacert, all_tenants, edit_managed):
|
insecure, cacert):
|
||||||
session = ks_session.Session()
|
session = ks_session.Session()
|
||||||
|
|
||||||
# Build + Attach Authentication Plugin
|
# Build + Attach Authentication Plugin
|
||||||
@ -139,8 +139,6 @@ def get_session(auth_url, endpoint, domain_id, domain_name, project_id,
|
|||||||
session.verify = False
|
session.verify = False
|
||||||
else:
|
else:
|
||||||
session.verify = cacert
|
session.verify = cacert
|
||||||
session.all_tenants = all_tenants
|
|
||||||
session.edit_managed = edit_managed
|
|
||||||
|
|
||||||
return session
|
return session
|
||||||
|
|
||||||
|
@ -62,11 +62,12 @@ class Client(object):
|
|||||||
user_domain_name=user_domain_name,
|
user_domain_name=user_domain_name,
|
||||||
token=token,
|
token=token,
|
||||||
insecure=insecure,
|
insecure=insecure,
|
||||||
cacert=cacert,
|
cacert=cacert
|
||||||
all_tenants=all_tenants,
|
|
||||||
edit_managed=edit_managed,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.all_tenants = all_tenants
|
||||||
|
self.edit_managed = edit_managed
|
||||||
|
|
||||||
# Since we have to behave nicely like a legacy client/bindings we use
|
# Since we have to behave nicely like a legacy client/bindings we use
|
||||||
# an adapter around the session to not modify it's state.
|
# an adapter around the session to not modify it's state.
|
||||||
interface = endpoint_type.rstrip('URL')
|
interface = endpoint_type.rstrip('URL')
|
||||||
@ -99,9 +100,9 @@ class Client(object):
|
|||||||
kw['raise_exc'] = False
|
kw['raise_exc'] = False
|
||||||
kw.setdefault('headers', {})
|
kw.setdefault('headers', {})
|
||||||
kw['headers'].setdefault('Content-Type', 'application/json')
|
kw['headers'].setdefault('Content-Type', 'application/json')
|
||||||
if self.session.session.all_tenants:
|
if self.all_tenants:
|
||||||
kw['headers'].update({'X-Auth-All-Projects': 'true'})
|
kw['headers'].update({'X-Auth-All-Projects': 'true'})
|
||||||
if self.session.session.edit_managed:
|
if self.edit_managed:
|
||||||
kw['headers'].update({'X-Designate-Edit-Managed-Records': 'true'})
|
kw['headers'].update({'X-Designate-Edit-Managed-Records': 'true'})
|
||||||
|
|
||||||
# Trigger the request
|
# Trigger the request
|
||||||
|
Loading…
x
Reference in New Issue
Block a user