diff options
Diffstat (limited to 'designateclient/v2/client.py')
| -rw-r--r-- | designateclient/v2/client.py | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/designateclient/v2/client.py b/designateclient/v2/client.py index df8aebb..c466ead 100644 --- a/designateclient/v2/client.py +++ b/designateclient/v2/client.py @@ -40,6 +40,9 @@ class DesignateAdapter(adapter.LegacyJsonAdapter): """ def __init__(self, *args, **kwargs): self.timeout = kwargs.pop('timeout', None) + self.all_projects = kwargs.pop('all_projects', False) + self.edit_managed = kwargs.pop('edit_managed', False) + self.sudo_project_id = kwargs.pop('sudo_project_id', None) super(self.__class__, self).__init__(*args, **kwargs) def request(self, *args, **kwargs): @@ -48,7 +51,27 @@ class DesignateAdapter(adapter.LegacyJsonAdapter): if self.timeout is not None: kwargs.setdefault('timeout', self.timeout) - kwargs.setdefault('headers', {}).setdefault( + kwargs.setdefault('headers', {}) + + if self.all_projects: + kwargs['headers'].setdefault( + 'X-Auth-All-Projects', + self.all_projects + ) + + if self.edit_managed: + kwargs['headers'].setdefault( + 'X-Designate-Edit-Managed-Records', + self.edit_managed + ) + + if self.sudo_project_id is not None: + kwargs['headers'].setdefault( + 'X-Auth-Sudo-Project-ID', + self.sudo_project_id + ) + + kwargs['headers'].setdefault( 'Content-Type', 'application/json') response, body = super(self.__class__, self).request(*args, **kwargs) @@ -77,7 +100,8 @@ class Client(object): def __init__(self, region_name=None, endpoint_type='publicURL', extensions=None, service_type='dns', service_name=None, http_log_debug=False, session=None, auth=None, timeout=None, - endpoint_override=None): + endpoint_override=None, all_projects=False, + edit_managed=False, sudo_project_id=None): if session is None: raise ValueError("A session instance is required") @@ -90,7 +114,10 @@ class Client(object): user_agent='python-designateclient-%s' % version.version_info, version=('2'), endpoint_override=endpoint_override, - timeout=timeout + timeout=timeout, + all_projects=all_projects, + edit_managed=edit_managed, + sudo_project_id=sudo_project_id ) self.blacklists = BlacklistController(self) |
