@@ -136,8 +136,8 @@ def __call__(self, environ, start_response):
136
136
req = Request (environ )
137
137
138
138
# 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 )
141
141
initiator_host_address = req .client_addr or taxonomy .UNKNOWN
142
142
143
143
# determine target based on request path or keystone.token_info
@@ -164,15 +164,20 @@ def __call__(self, environ, start_response):
164
164
165
165
# set environ for initiator
166
166
environ ['WATCHER.INITIATOR_PROJECT_ID' ] = initiator_project_id
167
+ environ ['WATCHER.INITIATOR_PROJECT_DOMAIN_ID' ] = initiator_project_domain_id
167
168
environ ['WATCHER.INITIATOR_DOMAIN_ID' ] = initiator_domain_id
168
169
environ ['WATCHER.INITIATOR_USER_ID' ] = initiator_user_id
170
+ environ ['WATCHER.INITIATOR_USER_DOMAIN_ID' ] = initiator_user_domain_id
169
171
environ ['WATCHER.INITIATOR_HOST_ADDRESS' ] = initiator_host_address
170
172
171
173
# set environ for target
172
174
environ ['WATCHER.TARGET_PROJECT_ID' ] = target_project_id
173
175
environ ['WATCHER.TARGET_TYPE_URI' ] = target_type_uri
176
+
177
+ # general cadf attributes
174
178
environ ['WATCHER.ACTION' ] = cadf_action
175
179
environ ['WATCHER.SERVICE_TYPE' ] = self .service_type
180
+ environ ['WATCHER.CADF_SERVICE_NAME' ] = self .strategy .get_cadf_service_name ()
176
181
177
182
# labels applied to all metrics emitted by this middleware
178
183
labels = [
@@ -245,19 +250,21 @@ def _start_response_wrapper(status, headers, exc_info=None):
245
250
246
251
def get_initiator_project_domain_user_uid_from_environ (self , environ ):
247
252
"""
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
249
254
as parsed by the keystone.auth_token middleware
250
255
251
256
: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
253
258
"""
254
- project_id = domain_id = user_id = taxonomy .UNKNOWN
259
+ project_id = project_domain_id = domain_id = user_id = user_domain_id = taxonomy .UNKNOWN
255
260
try :
256
261
project_id = environ .get ('HTTP_X_PROJECT_ID' )
262
+ project_domain_id = environ .get ('HTTP_X_PROJECT_DOMAIN_ID' )
257
263
domain_id = environ .get ('HTTP_X_DOMAIN_ID' )
258
264
user_id = environ .get ('HTTP_X_USER_ID' )
265
+ user_domain_id = environ .get ('HTTP_X_USER_DOMAIN_ID' )
259
266
finally :
260
- return project_id , domain_id , user_id
267
+ return project_id , project_domain_id , domain_id , user_id , user_domain_id
261
268
262
269
def get_target_project_uid_from_path (self , path ):
263
270
"""
0 commit comments