| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | import boto3 | 
					
						
							|  |  |  | from freezegun import freeze_time | 
					
						
							| 
									
										
										
										
											2021-10-18 19:44:29 +00:00
										 |  |  | import sure  # noqa # pylint: disable=unused-import | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | import re | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from moto import mock_opsworks | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @freeze_time("2015-01-01") | 
					
						
							|  |  |  | @mock_opsworks | 
					
						
							|  |  |  | def test_create_layer_response(): | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client = boto3.client("opsworks", region_name="us-east-1") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     stack_id = client.create_stack( | 
					
						
							|  |  |  |         Name="test_stack_1", | 
					
						
							|  |  |  |         Region="us-east-1", | 
					
						
							|  |  |  |         ServiceRoleArn="service_arn", | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         DefaultInstanceProfileArn="profile_arn", | 
					
						
							|  |  |  |     )["StackId"] | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     response = client.create_layer( | 
					
						
							|  |  |  |         StackId=stack_id, | 
					
						
							|  |  |  |         Type="custom", | 
					
						
							|  |  |  |         Name="TestLayer", | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         Shortname="TestLayerShortName", | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     response.should.contain("LayerId") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     second_stack_id = client.create_stack( | 
					
						
							|  |  |  |         Name="test_stack_2", | 
					
						
							|  |  |  |         Region="us-east-1", | 
					
						
							|  |  |  |         ServiceRoleArn="service_arn", | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         DefaultInstanceProfileArn="profile_arn", | 
					
						
							|  |  |  |     )["StackId"] | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     response = client.create_layer( | 
					
						
							|  |  |  |         StackId=second_stack_id, | 
					
						
							|  |  |  |         Type="custom", | 
					
						
							|  |  |  |         Name="TestLayer", | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         Shortname="TestLayerShortName", | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     response.should.contain("LayerId") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # ClientError | 
					
						
							|  |  |  |     client.create_layer.when.called_with( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         StackId=stack_id, Type="custom", Name="TestLayer", Shortname="_" | 
					
						
							|  |  |  |     ).should.throw(Exception, re.compile(r'already a layer named "TestLayer"')) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     # ClientError | 
					
						
							|  |  |  |     client.create_layer.when.called_with( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         StackId=stack_id, Type="custom", Name="_", Shortname="TestLayerShortName" | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     ).should.throw( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         Exception, re.compile(r'already a layer with shortname "TestLayerShortName"') | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     ) | 
					
						
							|  |  |  |     # ClientError | 
					
						
							|  |  |  |     client.create_layer.when.called_with( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         StackId="nothere", Type="custom", Name="TestLayer", Shortname="_" | 
					
						
							|  |  |  |     ).should.throw(Exception, "nothere") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @freeze_time("2015-01-01") | 
					
						
							|  |  |  | @mock_opsworks | 
					
						
							|  |  |  | def test_describe_layers(): | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client = boto3.client("opsworks", region_name="us-east-1") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     stack_id = client.create_stack( | 
					
						
							|  |  |  |         Name="test_stack_1", | 
					
						
							|  |  |  |         Region="us-east-1", | 
					
						
							|  |  |  |         ServiceRoleArn="service_arn", | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         DefaultInstanceProfileArn="profile_arn", | 
					
						
							|  |  |  |     )["StackId"] | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     layer_id = client.create_layer( | 
					
						
							|  |  |  |         StackId=stack_id, | 
					
						
							|  |  |  |         Type="custom", | 
					
						
							|  |  |  |         Name="TestLayer", | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         Shortname="TestLayerShortName", | 
					
						
							|  |  |  |     )["LayerId"] | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     rv1 = client.describe_layers(StackId=stack_id) | 
					
						
							|  |  |  |     rv2 = client.describe_layers(LayerIds=[layer_id]) | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     rv1["Layers"].should.equal(rv2["Layers"]) | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     rv1["Layers"][0]["Name"].should.equal("TestLayer") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # ClientError | 
					
						
							|  |  |  |     client.describe_layers.when.called_with( | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |         StackId=stack_id, LayerIds=[layer_id] | 
					
						
							|  |  |  |     ).should.throw(Exception, "Please provide one or more layer IDs or a stack ID") | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |     # ClientError | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client.describe_layers.when.called_with(StackId="nothere").should.throw( | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |         Exception, "Unable to find stack with ID nothere" | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |     # ClientError | 
					
						
							| 
									
										
										
										
											2019-12-23 08:38:53 +01:00
										 |  |  |     client.describe_layers.when.called_with(LayerIds=["nothere"]).should.throw( | 
					
						
							| 
									
										
										
										
											2018-12-21 12:28:56 +01:00
										 |  |  |         Exception, "nothere" | 
					
						
							|  |  |  |     ) |