parent
2052a07ff7
commit
55f207050e
@ -136,3 +136,10 @@ class SnapshotCopyAlreadyEnabledFaultError(RedshiftClientError):
|
|||||||
cluster_identifier
|
cluster_identifier
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class ClusterAlreadyExistsFaultError(RedshiftClientError):
|
||||||
|
def __init__(self):
|
||||||
|
super(ClusterAlreadyExistsFaultError, self).__init__(
|
||||||
|
"ClusterAlreadyExists", "Cluster already exists"
|
||||||
|
)
|
||||||
|
@ -10,6 +10,7 @@ from moto.core import BaseBackend, BaseModel
|
|||||||
from moto.core.utils import iso_8601_datetime_with_milliseconds
|
from moto.core.utils import iso_8601_datetime_with_milliseconds
|
||||||
from moto.ec2 import ec2_backends
|
from moto.ec2 import ec2_backends
|
||||||
from .exceptions import (
|
from .exceptions import (
|
||||||
|
ClusterAlreadyExistsFaultError,
|
||||||
ClusterNotFoundError,
|
ClusterNotFoundError,
|
||||||
ClusterParameterGroupNotFoundError,
|
ClusterParameterGroupNotFoundError,
|
||||||
ClusterSecurityGroupNotFoundError,
|
ClusterSecurityGroupNotFoundError,
|
||||||
@ -580,6 +581,8 @@ class RedshiftBackend(BaseBackend):
|
|||||||
|
|
||||||
def create_cluster(self, **cluster_kwargs):
|
def create_cluster(self, **cluster_kwargs):
|
||||||
cluster_identifier = cluster_kwargs["cluster_identifier"]
|
cluster_identifier = cluster_kwargs["cluster_identifier"]
|
||||||
|
if cluster_identifier in self.clusters:
|
||||||
|
raise ClusterAlreadyExistsFaultError()
|
||||||
cluster = Cluster(self, **cluster_kwargs)
|
cluster = Cluster(self, **cluster_kwargs)
|
||||||
self.clusters[cluster_identifier] = cluster
|
self.clusters[cluster_identifier] = cluster
|
||||||
return cluster
|
return cluster
|
||||||
|
@ -915,6 +915,11 @@ def test_create_cluster_from_snapshot():
|
|||||||
ClusterIdentifier=original_cluster_identifier,
|
ClusterIdentifier=original_cluster_identifier,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
client.restore_from_cluster_snapshot.when.called_with(
|
||||||
|
ClusterIdentifier=original_cluster_identifier,
|
||||||
|
SnapshotIdentifier=original_snapshot_identifier,
|
||||||
|
).should.throw(ClientError, "ClusterAlreadyExists")
|
||||||
|
|
||||||
response = client.restore_from_cluster_snapshot(
|
response = client.restore_from_cluster_snapshot(
|
||||||
ClusterIdentifier=new_cluster_identifier,
|
ClusterIdentifier=new_cluster_identifier,
|
||||||
SnapshotIdentifier=original_snapshot_identifier,
|
SnapshotIdentifier=original_snapshot_identifier,
|
||||||
@ -1333,3 +1338,20 @@ def test_modify_snapshot_copy_retention_period():
|
|||||||
response = client.describe_clusters(ClusterIdentifier="test")
|
response = client.describe_clusters(ClusterIdentifier="test")
|
||||||
cluster_snapshot_copy_status = response["Clusters"][0]["ClusterSnapshotCopyStatus"]
|
cluster_snapshot_copy_status = response["Clusters"][0]["ClusterSnapshotCopyStatus"]
|
||||||
cluster_snapshot_copy_status["RetentionPeriod"].should.equal(5)
|
cluster_snapshot_copy_status["RetentionPeriod"].should.equal(5)
|
||||||
|
|
||||||
|
|
||||||
|
@mock_redshift
|
||||||
|
def test_create_duplicate_cluster_fails():
|
||||||
|
kwargs = {
|
||||||
|
"ClusterIdentifier": "test",
|
||||||
|
"ClusterType": "single-node",
|
||||||
|
"DBName": "test",
|
||||||
|
"MasterUsername": "user",
|
||||||
|
"MasterUserPassword": "password",
|
||||||
|
"NodeType": "ds2.xlarge",
|
||||||
|
}
|
||||||
|
client = boto3.client("redshift", region_name="us-east-1")
|
||||||
|
client.create_cluster(**kwargs)
|
||||||
|
client.create_cluster.when.called_with(**kwargs).should.throw(
|
||||||
|
ClientError, "ClusterAlreadyExists"
|
||||||
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user