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(
|
||||
region_name=self.app.options.os_region_name,
|
||||
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:
|
||||
return super(Command, self).run(parsed_args)
|
||||
|
@ -234,9 +234,7 @@ class DesignateShell(App):
|
||||
user_domain_name=self.options.os_user_domain_name,
|
||||
token=self.options.os_token,
|
||||
insecure=self.options.insecure,
|
||||
cacert=self.options.os_cacert,
|
||||
all_tenants=self.options.all_tenants,
|
||||
edit_managed=self.options.edit_managed
|
||||
cacert=self.options.os_cacert
|
||||
)
|
||||
|
||||
def run(self, argv):
|
||||
|
@ -101,7 +101,7 @@ def get_columns(data):
|
||||
def get_session(auth_url, endpoint, domain_id, domain_name, project_id,
|
||||
project_name, project_domain_name, project_domain_id, username,
|
||||
user_id, password, user_domain_id, user_domain_name, token,
|
||||
insecure, cacert, all_tenants, edit_managed):
|
||||
insecure, cacert):
|
||||
session = ks_session.Session()
|
||||
|
||||
# Build + Attach Authentication Plugin
|
||||
@ -139,8 +139,6 @@ def get_session(auth_url, endpoint, domain_id, domain_name, project_id,
|
||||
session.verify = False
|
||||
else:
|
||||
session.verify = cacert
|
||||
session.all_tenants = all_tenants
|
||||
session.edit_managed = edit_managed
|
||||
|
||||
return session
|
||||
|
||||
|
@ -62,11 +62,12 @@ class Client(object):
|
||||
user_domain_name=user_domain_name,
|
||||
token=token,
|
||||
insecure=insecure,
|
||||
cacert=cacert,
|
||||
all_tenants=all_tenants,
|
||||
edit_managed=edit_managed,
|
||||
cacert=cacert
|
||||
)
|
||||
|
||||
self.all_tenants = all_tenants
|
||||
self.edit_managed = edit_managed
|
||||
|
||||
# Since we have to behave nicely like a legacy client/bindings we use
|
||||
# an adapter around the session to not modify it's state.
|
||||
interface = endpoint_type.rstrip('URL')
|
||||
@ -99,9 +100,9 @@ class Client(object):
|
||||
kw['raise_exc'] = False
|
||||
kw.setdefault('headers', {})
|
||||
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'})
|
||||
if self.session.session.edit_managed:
|
||||
if self.edit_managed:
|
||||
kw['headers'].update({'X-Designate-Edit-Managed-Records': 'true'})
|
||||
|
||||
# Trigger the request
|
||||
|
Loading…
x
Reference in New Issue
Block a user