diff --git a/moto/rds2/models.py b/moto/rds2/models.py
index bc52bdcbf..eb4159025 100644
--- a/moto/rds2/models.py
+++ b/moto/rds2/models.py
@@ -9,7 +9,8 @@ from boto3 import Session
from jinja2 import Template
from re import compile as re_compile
from moto.compat import OrderedDict
-from moto.core import BaseBackend, BaseModel, CloudFormationModel
+from moto.core import BaseBackend, BaseModel, CloudFormationModel, ACCOUNT_ID
+
from moto.core.utils import iso_8601_datetime_with_milliseconds
from moto.ec2.models import ec2_backends
from .exceptions import (
@@ -157,6 +158,7 @@ class Database(CloudFormationModel):
family=db_family,
description=description,
tags={},
+ region=self.region,
)
]
else:
@@ -1172,7 +1174,7 @@ class RDS2Backend(BaseBackend):
"InvalidParameterValue",
"The parameter DBParameterGroupName must be provided and must not be blank.",
)
-
+ db_parameter_group_kwargs["region"] = self.region
db_parameter_group = DBParameterGroup(**db_parameter_group_kwargs)
self.db_parameter_groups[db_parameter_group_id] = db_parameter_group
return db_parameter_group
@@ -1471,13 +1473,18 @@ class OptionGroupOptionSetting(object):
return template.render(option_group_option_setting=self)
+def make_rds_arn(region, name):
+ return "arn:aws:rds:{0}:{1}:pg:{2}".format(region, ACCOUNT_ID, name)
+
+
class DBParameterGroup(CloudFormationModel):
- def __init__(self, name, description, family, tags):
+ def __init__(self, name, description, family, tags, region):
self.name = name
self.description = description
self.family = family
self.tags = tags
self.parameters = defaultdict(dict)
+ self.arn = make_rds_arn(region, name)
def to_xml(self):
template = Template(
@@ -1485,6 +1492,7 @@ class DBParameterGroup(CloudFormationModel):
{{ param_group.name }}
{{ param_group.family }}
{{ param_group.description }}
+ {{ param_group.arn }}
"""
)
return template.render(param_group=self)
diff --git a/tests/test_rds2/test_rds2.py b/tests/test_rds2/test_rds2.py
index fd2ffb9d0..96ec378db 100644
--- a/tests/test_rds2/test_rds2.py
+++ b/tests/test_rds2/test_rds2.py
@@ -4,6 +4,7 @@ from botocore.exceptions import ClientError, ParamValidationError
import boto3
import sure # noqa
from moto import mock_ec2, mock_kms, mock_rds2
+from moto.core import ACCOUNT_ID
@mock_rds2
@@ -1504,7 +1505,9 @@ def test_create_database_with_encrypted_storage():
@mock_rds2
def test_create_db_parameter_group():
- conn = boto3.client("rds", region_name="us-west-2")
+ region = "us-west-2"
+ pg_name = "test"
+ conn = boto3.client("rds", region_name=region)
db_parameter_group = conn.create_db_parameter_group(
DBParameterGroupName="test",
DBParameterGroupFamily="mysql5.6",
@@ -1518,6 +1521,9 @@ def test_create_db_parameter_group():
db_parameter_group["DBParameterGroup"]["Description"].should.equal(
"test parameter group"
)
+ db_parameter_group["DBParameterGroup"]["DBParameterGroupArn"].should.equal(
+ "arn:aws:rds:{0}:{1}:pg:{2}".format(region, ACCOUNT_ID, pg_name)
+ )
@mock_rds2
@@ -1629,9 +1635,11 @@ def test_create_db_parameter_group_duplicate():
@mock_rds2
def test_describe_db_parameter_group():
- conn = boto3.client("rds", region_name="us-west-2")
+ region = "us-west-2"
+ pg_name = "test"
+ conn = boto3.client("rds", region_name=region)
conn.create_db_parameter_group(
- DBParameterGroupName="test",
+ DBParameterGroupName=pg_name,
DBParameterGroupFamily="mysql5.6",
Description="test parameter group",
)
@@ -1639,6 +1647,9 @@ def test_describe_db_parameter_group():
db_parameter_groups["DBParameterGroups"][0]["DBParameterGroupName"].should.equal(
"test"
)
+ db_parameter_groups["DBParameterGroups"][0]["DBParameterGroupArn"].should.equal(
+ "arn:aws:rds:{0}:{1}:pg:{2}".format(region, ACCOUNT_ID, pg_name)
+ )
@mock_rds2