diff --git a/.changes/next-release/bugfix-DLMEMR-99146.json b/.changes/next-release/bugfix-DLMEMR-99146.json new file mode 100644 index 000000000000..812d7fcc21e0 --- /dev/null +++ b/.changes/next-release/bugfix-DLMEMR-99146.json @@ -0,0 +1,5 @@ +{ + "type": "bugfix", + "category": "DLM, EMR", + "description": "Dynamically load AWS partition information using partitions.json instead of hardcoded region mappings. Affects ``dlm create-default-role``, ``emr create-default-roles``, ``emr-containers create-role-associations``, and ``emr-containers update-role-trust-policy`` commands." +} diff --git a/awscli/customizations/utils.py b/awscli/customizations/utils.py index fd135a8714a2..8761b32bd1fa 100644 --- a/awscli/customizations/utils.py +++ b/awscli/customizations/utils.py @@ -21,6 +21,8 @@ import xml from botocore.exceptions import ClientError +from botocore.loaders import Loader +from botocore.endpoint_provider import RuleSetStandardLibary from awscli.customizations.exceptions import ParamValidationError @@ -207,13 +209,11 @@ def uni_print(statement, out_file=None): def get_policy_arn_suffix(region): """Method to return region value as expected by policy arn""" - region_string = region.lower() - if region_string.startswith("cn-"): - return "aws-cn" - elif region_string.startswith("us-gov"): - return "aws-us-gov" - else: - return "aws" + loader = Loader() + partitions_data = loader.load_data('partitions') + rule_lib = RuleSetStandardLibary(partitions_data) + partition_result = rule_lib.aws_partition(region.lower()) + return partition_result['name'] def get_shape_doc_overview(shape): diff --git a/tests/unit/customizations/test_utils.py b/tests/unit/customizations/test_utils.py index f6c5a2bed071..19cdbc6d2f10 100644 --- a/tests/unit/customizations/test_utils.py +++ b/tests/unit/customizations/test_utils.py @@ -263,6 +263,7 @@ def test_get_policy_arn_suffix(self): self.assertEqual("aws", utils.get_policy_arn_suffix("us-east-1")) self.assertEqual("aws", utils.get_policy_arn_suffix("sa-east-1")) self.assertEqual("aws", utils.get_policy_arn_suffix("ap-south-1")) + self.assertEqual("aws-eusc", utils.get_policy_arn_suffix("eusc-de-east-1")) class TestGetShapeDocOverview(unittest.TestCase):