From 7599fd5dc00d54c80d29bcfab368ca5b40a78b05 Mon Sep 17 00:00:00 2001 From: Loukas Leontopoulos Date: Mon, 25 Sep 2017 14:31:29 +0300 Subject: [PATCH 1/2] Add test_case for layer per stack Add a new test case for creating a layer with the same name under a different stack. --- tests/test_opsworks/test_layers.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/test_opsworks/test_layers.py b/tests/test_opsworks/test_layers.py index 31fdeae8..4bfdd5a6 100644 --- a/tests/test_opsworks/test_layers.py +++ b/tests/test_opsworks/test_layers.py @@ -24,6 +24,22 @@ def test_create_layer_response(): Name="TestLayer", Shortname="TestLayerShortName" ) + + response.should.contain("LayerId") + + second_stack_id = client.create_stack( + Name="test_stack_2", + Region="us-east-1", + ServiceRoleArn="service_arn", + DefaultInstanceProfileArn="profile_arn" + )['StackId'] + + response = client.create_layer( + StackId=second_stack_id, + Type="custom", + Name="TestLayer", + Shortname="TestLayerShortName" + ) response.should.contain("LayerId") From 4393a4f76c0f4616c17b1e8e8da161ac3b26985f Mon Sep 17 00:00:00 2001 From: Loukas Leontopoulos Date: Mon, 25 Sep 2017 14:49:08 +0300 Subject: [PATCH 2/2] Change checks for handling same layer name un different stack --- moto/opsworks/models.py | 4 ++-- tests/test_opsworks/test_layers.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/moto/opsworks/models.py b/moto/opsworks/models.py index 3adfd332..fe8c882a 100644 --- a/moto/opsworks/models.py +++ b/moto/opsworks/models.py @@ -422,11 +422,11 @@ class OpsWorksBackend(BaseBackend): stackid = kwargs['stack_id'] if stackid not in self.stacks: raise ResourceNotFoundException(stackid) - if name in [l.name for l in self.layers.values()]: + if name in [l.name for l in self.stacks[stackid].layers]: raise ValidationException( 'There is already a layer named "{0}" ' 'for this stack'.format(name)) - if shortname in [l.shortname for l in self.layers.values()]: + if shortname in [l.shortname for l in self.stacks[stackid].layers]: raise ValidationException( 'There is already a layer with shortname "{0}" ' 'for this stack'.format(shortname)) diff --git a/tests/test_opsworks/test_layers.py b/tests/test_opsworks/test_layers.py index 4bfdd5a6..03224feb 100644 --- a/tests/test_opsworks/test_layers.py +++ b/tests/test_opsworks/test_layers.py @@ -24,16 +24,16 @@ def test_create_layer_response(): Name="TestLayer", Shortname="TestLayerShortName" ) - + response.should.contain("LayerId") - + second_stack_id = client.create_stack( Name="test_stack_2", Region="us-east-1", ServiceRoleArn="service_arn", DefaultInstanceProfileArn="profile_arn" )['StackId'] - + response = client.create_layer( StackId=second_stack_id, Type="custom",