Skip to content

Commit 53dc2e5

Browse files
committed
Allow override session for AWS Objetcts
1 parent 6985e80 commit 53dc2e5

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

ecs_files_composer/aws_mgmt.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ class AwsResourceHandler(object):
3838
Class to handle all AWS related credentials init.
3939
"""
4040

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+
):
4244
"""
4345
:param str role_arn:
4446
:param str external_id:
@@ -47,7 +49,9 @@ def __init__(self, role_arn=None, external_id=None, region=None, iam_config_obje
4749
"""
4850
self.session = session.Session()
4951
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):
5155
if role_arn and not iam_config_object:
5256
params = {"RoleArn": role_arn, "RoleSessionName": "EcsConfigComposer@AwsResourceHandlerInit"}
5357
if external_id:
@@ -70,8 +74,10 @@ class S3Fetcher(AwsResourceHandler):
7074
Class to handle S3 actions
7175
"""
7276

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)
7581
self.client = self.client_session.client("s3")
7682

7783
def get_content(self, s3_uri=None, s3_bucket=None, s3_key=None):
@@ -103,8 +109,10 @@ class SsmFetcher(AwsResourceHandler):
103109

104110
arn_re = re.compile(r"(?:^arn:aws(?:-[a-z]+)?:ssm:[\S]+:[0-9]+:parameter)(?P<name>/[\S]+)$")
105111

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)
108116
self.client = self.client_session.client("ssm")
109117

110118
def get_content(self, parameter_name):
@@ -131,8 +139,10 @@ class SecretFetcher(AwsResourceHandler):
131139
Class to handle Secret Manager actions
132140
"""
133141

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)
136146
self.client = self.client_session.client("secretsmanager")
137147

138148
def get_content(self, secret):

0 commit comments

Comments
 (0)