Merge pull request #1030 from JackDanger/boto3-redshift

Allow boto3 redshift cluster subnet group creation
This commit is contained in:
Jack Danger 2017-08-02 13:42:09 -07:00 committed by GitHub
commit 1dcddf3a7e
2 changed files with 34 additions and 1 deletions

View File

@ -122,6 +122,10 @@ class RedshiftResponse(BaseResponse):
cluster_subnet_group_name = self._get_param('ClusterSubnetGroupName') cluster_subnet_group_name = self._get_param('ClusterSubnetGroupName')
description = self._get_param('Description') description = self._get_param('Description')
subnet_ids = self._get_multi_param('SubnetIds.member') subnet_ids = self._get_multi_param('SubnetIds.member')
# There's a bug in boto3 where the subnet ids are not passed
# according to the AWS documentation
if not subnet_ids:
subnet_ids = self._get_multi_param('SubnetIds.SubnetIdentifier')
subnet_group = self.redshift_backend.create_cluster_subnet_group( subnet_group = self.redshift_backend.create_cluster_subnet_group(
cluster_subnet_group_name=cluster_subnet_group_name, cluster_subnet_group_name=cluster_subnet_group_name,

View File

@ -11,7 +11,10 @@ from boto.redshift.exceptions import (
) )
import sure # noqa import sure # noqa
from moto import mock_ec2_deprecated, mock_redshift_deprecated, mock_redshift from moto import mock_ec2
from moto import mock_ec2_deprecated
from moto import mock_redshift
from moto import mock_redshift_deprecated
@mock_redshift @mock_redshift
@ -153,6 +156,32 @@ def test_create_cluster_in_subnet_group():
cluster['ClusterSubnetGroupName'].should.equal('my_subnet_group') cluster['ClusterSubnetGroupName'].should.equal('my_subnet_group')
@mock_redshift
@mock_ec2
def test_create_cluster_in_subnet_group_boto3():
ec2 = boto3.resource('ec2', region_name='us-east-1')
vpc = ec2.create_vpc(CidrBlock='10.0.0.0/16')
subnet = ec2.create_subnet(VpcId=vpc.id, CidrBlock='10.0.0.0/24')
client = boto3.client('redshift', region_name='us-east-1')
client.create_cluster_subnet_group(
ClusterSubnetGroupName='my_subnet_group',
Description='This is my subnet group',
SubnetIds=[subnet.id]
)
client.create_cluster(
ClusterIdentifier="my_cluster",
NodeType="dw.hs1.xlarge",
MasterUsername="username",
MasterUserPassword="password",
ClusterSubnetGroupName='my_subnet_group',
)
cluster_response = client.describe_clusters(ClusterIdentifier="my_cluster")
cluster = cluster_response['Clusters'][0]
cluster['ClusterSubnetGroupName'].should.equal('my_subnet_group')
@mock_redshift_deprecated @mock_redshift_deprecated
def test_create_cluster_with_security_group(): def test_create_cluster_with_security_group():
conn = boto.redshift.connect_to_region("us-east-1") conn = boto.redshift.connect_to_region("us-east-1")