@@ -38,7 +38,9 @@ class AwsResourceHandler(object):
38
38
Class to handle all AWS related credentials init.
39
39
"""
40
40
41
- def __init__ (self , role_arn = None , external_id = None , region = None , iam_config_object = None ):
41
+ def __init__ (
42
+ self , role_arn = None , external_id = None , region = None , iam_config_object = None , client_session_override = None
43
+ ):
42
44
"""
43
45
:param str role_arn:
44
46
:param str external_id:
@@ -47,7 +49,9 @@ def __init__(self, role_arn=None, external_id=None, region=None, iam_config_obje
47
49
"""
48
50
self .session = session .Session ()
49
51
self .client_session = session .Session ()
50
- if role_arn or iam_config_object :
52
+ if client_session_override :
53
+ self .client_session = client_session_override
54
+ elif not client_session_override and (role_arn or iam_config_object ):
51
55
if role_arn and not iam_config_object :
52
56
params = {"RoleArn" : role_arn , "RoleSessionName" : "EcsConfigComposer@AwsResourceHandlerInit" }
53
57
if external_id :
@@ -70,8 +74,10 @@ class S3Fetcher(AwsResourceHandler):
70
74
Class to handle S3 actions
71
75
"""
72
76
73
- def __init__ (self , role_arn = None , external_id = None , region = None , iam_config_object = None ):
74
- super ().__init__ (role_arn , external_id , region , iam_config_object )
77
+ def __init__ (
78
+ self , role_arn = None , external_id = None , region = None , iam_config_object = None , client_session_override = None
79
+ ):
80
+ super ().__init__ (role_arn , external_id , region , iam_config_object , client_session_override )
75
81
self .client = self .client_session .client ("s3" )
76
82
77
83
def get_content (self , s3_uri = None , s3_bucket = None , s3_key = None ):
@@ -103,8 +109,10 @@ class SsmFetcher(AwsResourceHandler):
103
109
104
110
arn_re = re .compile (r"(?:^arn:aws(?:-[a-z]+)?:ssm:[\S]+:[0-9]+:parameter)(?P<name>/[\S]+)$" )
105
111
106
- def __init__ (self , role_arn = None , external_id = None , region = None , iam_config_object = None ):
107
- super ().__init__ (role_arn , external_id , region , iam_config_object )
112
+ def __init__ (
113
+ self , role_arn = None , external_id = None , region = None , iam_config_object = None , client_session_override = None
114
+ ):
115
+ super ().__init__ (role_arn , external_id , region , iam_config_object , client_session_override )
108
116
self .client = self .client_session .client ("ssm" )
109
117
110
118
def get_content (self , parameter_name ):
@@ -131,8 +139,10 @@ class SecretFetcher(AwsResourceHandler):
131
139
Class to handle Secret Manager actions
132
140
"""
133
141
134
- def __init__ (self , role_arn = None , external_id = None , region = None , iam_config_object = None ):
135
- super ().__init__ (role_arn , external_id , region , iam_config_object )
142
+ def __init__ (
143
+ self , role_arn = None , external_id = None , region = None , iam_config_object = None , client_session_override = None
144
+ ):
145
+ super ().__init__ (role_arn , external_id , region , iam_config_object , client_session_override )
136
146
self .client = self .client_session .client ("secretsmanager" )
137
147
138
148
def get_content (self , secret ):
0 commit comments