Skip to content

Commit c1904f5

Browse files
committed
also add cadf service name, initiator project domain id, initiator user domain id to environ
1 parent 258fdf4 commit c1904f5

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

watcher/watcher.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,8 @@ def __call__(self, environ, start_response):
136136
req = Request(environ)
137137

138138
# determine initiator based on token
139-
initiator_project_id, initiator_domain_id, initiator_user_id = \
140-
self.get_initiator_project_domain_user_uid_from_environ(environ)
139+
initiator_project_id, initiator_project_domain_id, initiator_domain_id, initiator_user_id, \
140+
initiator_user_domain_id = self.get_initiator_project_domain_user_uid_from_environ(environ)
141141
initiator_host_address = req.client_addr or taxonomy.UNKNOWN
142142

143143
# determine target based on request path or keystone.token_info
@@ -164,15 +164,20 @@ def __call__(self, environ, start_response):
164164

165165
# set environ for initiator
166166
environ['WATCHER.INITIATOR_PROJECT_ID'] = initiator_project_id
167+
environ['WATCHER.INITIATOR_PROJECT_DOMAIN_ID'] = initiator_project_domain_id
167168
environ['WATCHER.INITIATOR_DOMAIN_ID'] = initiator_domain_id
168169
environ['WATCHER.INITIATOR_USER_ID'] = initiator_user_id
170+
environ['WATCHER.INITIATOR_USER_DOMAIN_ID'] = initiator_user_domain_id
169171
environ['WATCHER.INITIATOR_HOST_ADDRESS'] = initiator_host_address
170172

171173
# set environ for target
172174
environ['WATCHER.TARGET_PROJECT_ID'] = target_project_id
173175
environ['WATCHER.TARGET_TYPE_URI'] = target_type_uri
176+
177+
# general cadf attributes
174178
environ['WATCHER.ACTION'] = cadf_action
175179
environ['WATCHER.SERVICE_TYPE'] = self.service_type
180+
environ['WATCHER.CADF_SERVICE_NAME'] = self.strategy.get_cadf_service_name()
176181

177182
# labels applied to all metrics emitted by this middleware
178183
labels = [
@@ -245,19 +250,21 @@ def _start_response_wrapper(status, headers, exc_info=None):
245250

246251
def get_initiator_project_domain_user_uid_from_environ(self, environ):
247252
"""
248-
get the project uid, domain uid, user uid from the environ
253+
get the project uid, project domain uid, domain uid, user uid, user domain uid from the environ
249254
as parsed by the keystone.auth_token middleware
250255
251256
:param environ: the request's environ
252-
:return: project, domain, user uid
257+
:return: project id, project domain id, domain id, user uid, user domain id
253258
"""
254-
project_id = domain_id = user_id = taxonomy.UNKNOWN
259+
project_id = project_domain_id = domain_id = user_id = user_domain_id = taxonomy.UNKNOWN
255260
try:
256261
project_id = environ.get('HTTP_X_PROJECT_ID')
262+
project_domain_id = environ.get('HTTP_X_PROJECT_DOMAIN_ID')
257263
domain_id = environ.get('HTTP_X_DOMAIN_ID')
258264
user_id = environ.get('HTTP_X_USER_ID')
265+
user_domain_id = environ.get('HTTP_X_USER_DOMAIN_ID')
259266
finally:
260-
return project_id, domain_id, user_id
267+
return project_id, project_domain_id, domain_id, user_id, user_domain_id
261268

262269
def get_target_project_uid_from_path(self, path):
263270
"""

0 commit comments

Comments
 (0)