Skip to content

Commit dee233b

Browse files
author
Andre Moeller
committed
try to get_role, but fall back to role from regex
1 parent 704cd31 commit dee233b

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

src/sagemaker/session.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,10 @@ def get_caller_identity_arn(self):
763763

764764
# Call IAM to get the role's path
765765
role_name = role[role.rfind('/') + 1:]
766-
role = self.boto_session.client('iam').get_role(RoleName=role_name)['Role']['Arn']
766+
try:
767+
role = self.boto_session.client('iam').get_role(RoleName=role_name)['Role']['Arn']
768+
except ClientError:
769+
LOGGER.warning("Couldn't call 'get_role' to get Role ARN from role name {}.".format(role_name))
767770

768771
return role
769772

tests/unit/test_session.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,16 @@ def test_get_caller_identity_arn_from_an_user(boto_session):
6969
assert actual == 'arn:aws:iam::369233609183:user/mia'
7070

7171

72+
def test_get_caller_identity_arn_from_an_user_without_permissions(boto_session):
73+
sess = Session(boto_session)
74+
arn = 'arn:aws:iam::369233609183:user/mia'
75+
sess.boto_session.client('sts').get_caller_identity.return_value = {'Arn': arn}
76+
sess.boto_session.client('iam').get_role.side_effect = ClientError('Bad permissions!', {})
77+
78+
actual = sess.get_caller_identity_arn()
79+
assert actual == 'arn:aws:iam::369233609183:user/mia'
80+
81+
7282
def test_get_caller_identity_arn_from_a_role(boto_session):
7383
sess = Session(boto_session)
7484
arn = 'arn:aws:sts::369233609183:assumed-role/SageMakerRole/6d009ef3-5306-49d5-8efc-78db644d8122'

0 commit comments

Comments
 (0)