@@ -486,6 +486,18 @@ def _get_missing_env_properties(
486486 )
487487 return {}
488488
489+ def _fetch_session_attributes_for_profiles (self , accesses ):
490+ session_attributes = {}
491+ unique_profile_ids = {profile_id for _ , _ , profile_id in accesses }
492+ for profile_id in unique_profile_ids :
493+ try :
494+ session_attrs = self .b .application_management .profiles .session_attributes .list (profile_id = profile_id )
495+ session_attributes [profile_id ] = session_attrs
496+ except Exception :
497+ session_attributes [profile_id ] = {}
498+
499+ return session_attributes
500+
489501 def _set_available_profiles (self , from_cache_command = False , profile_type : Optional [str ] = None ):
490502 if not self .available_profiles :
491503 data = []
@@ -503,6 +515,7 @@ def _set_available_profiles(self, from_cache_command=False, profile_type: Option
503515 accesses = [
504516 ([a ['appContainerId' ], a ['environmentId' ], a ['papId' ]]) for a in access_data .get ('accesses' , [])
505517 ]
518+ session_attributes = self ._fetch_session_attributes_for_profiles (accesses )
506519 access_output = []
507520 for app_id , env_id , profile_id in accesses :
508521 app = apps [app_id ]
@@ -522,6 +535,7 @@ def _set_available_profiles(self, from_cache_command=False, profile_type: Option
522535 'profile_allows_console' : app .get ('consoleAccess' , False ),
523536 'profile_allows_programmatic' : app .get ('programmaticAccess' , False ),
524537 'profile_description' : profile ['papDescription' ],
538+ 'session_attributes' : session_attributes .get (profile_id , []),
525539 '2_part_profile_format_allowed' : app ['requiresHierarchicalModel' ],
526540 'env_properties' : env ['profileEnvironmentProperties' ]
527541 or self ._get_missing_env_properties (
@@ -537,6 +551,7 @@ def _set_available_profiles(self, from_cache_command=False, profile_type: Option
537551 else :
538552 profiles = self .b .my_resources .list (size = resource_limit )
539553 profiles = profiles ['data' ]
554+ session_attributes = self ._fetch_session_attributes_for_profiles (accesses )
540555 for item in profiles :
541556 row = {
542557 'app_name' : None ,
@@ -551,6 +566,7 @@ def _set_available_profiles(self, from_cache_command=False, profile_type: Option
551566 'profile_id' : item ['profileId' ],
552567 'profile_allows_console' : False ,
553568 'profile_allows_programmatic' : True ,
569+ 'session_attributes' : session_attributes .get (profile_id , []),
554570 'profile_description' : None ,
555571 '2_part_profile_format_allowed' : False ,
556572 'env_properties' : item .get ('resourceLabels' , {}),
@@ -584,6 +600,7 @@ def construct_kube_config(self, from_cache_command=False):
584600 'profile' : p ['profile_name' ],
585601 'url' : url ,
586602 'cert' : cert ,
603+ 'session_attributes' : p ['session_attributes' ],
587604 }
588605 )
589606
0 commit comments