diff options
Diffstat (limited to 'designate/api/middleware.py')
-rw-r--r-- | designate/api/middleware.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/designate/api/middleware.py b/designate/api/middleware.py index b888746e..9451b842 100644 --- a/designate/api/middleware.py +++ b/designate/api/middleware.py @@ -101,6 +101,14 @@ class ContextMiddleware(base.Middleware): if hasattr(request, 'client_addr'): ctxt.client_addr = request.client_addr + @staticmethod + def _extract_delete_shares(ctxt, request): + ctxt.delete_shares = False + if request.headers.get('X-Designate-Delete-Shares'): + ctxt.delete_shares = strutils.bool_from_string( + request.headers.get('X-Designate-Delete-Shares') + ) + def make_context(self, request, *args, **kwargs): req_id = request.environ.get(request_id.ENV_REQUEST_ID) kwargs.setdefault('request_id', req_id) @@ -114,6 +122,7 @@ class ContextMiddleware(base.Middleware): self._extract_hard_delete(ctxt, request) self._extract_dns_hide_counts(ctxt, request) self._extract_client_addr(ctxt, request) + self._extract_delete_shares(ctxt, request) finally: request.environ['context'] = ctxt return ctxt |