| 
									
										
										
										
											2014-08-27 11:17:06 -04:00
										 |  |  | from __future__ import unicode_literals | 
					
						
							| 
									
										
										
										
											2013-02-21 23:13:01 -05:00
										 |  |  | import boto | 
					
						
							| 
									
										
										
										
											2013-08-03 17:21:25 -04:00
										 |  |  | import sure  # noqa | 
					
						
							| 
									
										
										
										
											2013-02-21 23:13:01 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-15 22:35:45 -05:00
										 |  |  | from moto import mock_ec2_deprecated | 
					
						
							| 
									
										
										
										
											2013-02-21 23:13:01 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-15 22:35:45 -05:00
										 |  |  | @mock_ec2_deprecated | 
					
						
							| 
									
										
										
										
											2014-11-14 17:23:56 -06:00
										 |  |  | def test_default_network_acl_created_with_vpc(): | 
					
						
							|  |  |  |     conn = boto.connect_vpc('the_key', 'the secret') | 
					
						
							|  |  |  |     vpc = conn.create_vpc("10.0.0.0/16") | 
					
						
							|  |  |  |     all_network_acls = conn.get_all_network_acls() | 
					
						
							| 
									
										
										
										
											2017-01-11 17:37:57 -08:00
										 |  |  |     all_network_acls.should.have.length_of(2) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-14 17:23:56 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-15 22:35:45 -05:00
										 |  |  | @mock_ec2_deprecated | 
					
						
							| 
									
										
										
										
											2013-02-21 23:13:01 -05:00
										 |  |  | def test_network_acls(): | 
					
						
							| 
									
										
										
										
											2014-11-12 15:33:31 -06:00
										 |  |  |     conn = boto.connect_vpc('the_key', 'the secret') | 
					
						
							|  |  |  |     vpc = conn.create_vpc("10.0.0.0/16") | 
					
						
							|  |  |  |     network_acl = conn.create_network_acl(vpc.id) | 
					
						
							| 
									
										
										
										
											2014-11-14 17:23:56 -06:00
										 |  |  |     all_network_acls = conn.get_all_network_acls() | 
					
						
							| 
									
										
										
										
											2017-01-11 17:37:57 -08:00
										 |  |  |     all_network_acls.should.have.length_of(3) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-14 17:23:56 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-15 22:35:45 -05:00
										 |  |  | @mock_ec2_deprecated | 
					
						
							| 
									
										
										
										
											2014-11-14 17:23:56 -06:00
										 |  |  | def test_new_subnet_associates_with_default_network_acl(): | 
					
						
							|  |  |  |     conn = boto.connect_vpc('the_key', 'the secret') | 
					
						
							| 
									
										
										
										
											2017-01-11 17:37:57 -08:00
										 |  |  |     vpc = conn.get_all_vpcs()[0] | 
					
						
							| 
									
										
										
										
											2014-11-14 17:23:56 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |     subnet = conn.create_subnet(vpc.id, "10.0.0.0/18") | 
					
						
							| 
									
										
										
										
											2014-11-12 15:33:31 -06:00
										 |  |  |     all_network_acls = conn.get_all_network_acls() | 
					
						
							|  |  |  |     all_network_acls.should.have.length_of(1) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-14 17:23:56 -06:00
										 |  |  |     acl = all_network_acls[0] | 
					
						
							| 
									
										
										
										
											2017-01-11 17:37:57 -08:00
										 |  |  |     acl.associations.should.have.length_of(4) | 
					
						
							|  |  |  |     [a.subnet_id for a in acl.associations].should.contain(subnet.id) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-12 15:33:31 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-15 22:35:45 -05:00
										 |  |  | @mock_ec2_deprecated | 
					
						
							| 
									
										
										
										
											2014-11-12 15:33:31 -06:00
										 |  |  | def test_network_acl_entries(): | 
					
						
							|  |  |  |     conn = boto.connect_vpc('the_key', 'the secret') | 
					
						
							|  |  |  |     vpc = conn.create_vpc("10.0.0.0/16") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     network_acl = conn.create_network_acl(vpc.id) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     network_acl_entry = conn.create_network_acl_entry( | 
					
						
							|  |  |  |         network_acl.id, 110, 6, | 
					
						
							|  |  |  |         'ALLOW', '0.0.0.0/0', False, | 
					
						
							|  |  |  |         port_range_from='443', | 
					
						
							|  |  |  |         port_range_to='443' | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     all_network_acls = conn.get_all_network_acls() | 
					
						
							| 
									
										
										
										
											2017-01-11 17:37:57 -08:00
										 |  |  |     all_network_acls.should.have.length_of(3) | 
					
						
							| 
									
										
										
										
											2014-11-12 15:33:31 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-14 17:23:56 -06:00
										 |  |  |     test_network_acl = next(na for na in all_network_acls | 
					
						
							|  |  |  |                             if na.id == network_acl.id) | 
					
						
							|  |  |  |     entries = test_network_acl.network_acl_entries | 
					
						
							| 
									
										
										
										
											2014-11-12 15:33:31 -06:00
										 |  |  |     entries.should.have.length_of(1) | 
					
						
							|  |  |  |     entries[0].rule_number.should.equal('110') | 
					
						
							|  |  |  |     entries[0].protocol.should.equal('6') | 
					
						
							|  |  |  |     entries[0].rule_action.should.equal('ALLOW') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-14 13:03:43 +01:00
										 |  |  | @mock_ec2_deprecated | 
					
						
							|  |  |  | def test_delete_network_acl_entry(): | 
					
						
							|  |  |  |     conn = boto.connect_vpc('the_key', 'the secret') | 
					
						
							|  |  |  |     vpc = conn.create_vpc("10.0.0.0/16") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     network_acl = conn.create_network_acl(vpc.id) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     conn.create_network_acl_entry( | 
					
						
							|  |  |  |         network_acl.id, 110, 6, | 
					
						
							|  |  |  |         'ALLOW', '0.0.0.0/0', False, | 
					
						
							|  |  |  |         port_range_from='443', | 
					
						
							|  |  |  |         port_range_to='443' | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |     conn.delete_network_acl_entry( | 
					
						
							|  |  |  |         network_acl.id, 110, False | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     all_network_acls = conn.get_all_network_acls() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     test_network_acl = next(na for na in all_network_acls | 
					
						
							|  |  |  |                             if na.id == network_acl.id) | 
					
						
							|  |  |  |     entries = test_network_acl.network_acl_entries | 
					
						
							|  |  |  |     entries.should.have.length_of(0) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @mock_ec2_deprecated | 
					
						
							|  |  |  | def test_replace_network_acl_entry(): | 
					
						
							|  |  |  |     conn = boto.connect_vpc('the_key', 'the secret') | 
					
						
							|  |  |  |     vpc = conn.create_vpc("10.0.0.0/16") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     network_acl = conn.create_network_acl(vpc.id) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     conn.create_network_acl_entry( | 
					
						
							|  |  |  |         network_acl.id, 110, 6, | 
					
						
							|  |  |  |         'ALLOW', '0.0.0.0/0', False, | 
					
						
							|  |  |  |         port_range_from='443', | 
					
						
							|  |  |  |         port_range_to='443' | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |     conn.replace_network_acl_entry( | 
					
						
							|  |  |  |         network_acl.id, 110, -1, | 
					
						
							|  |  |  |         'DENY', '0.0.0.0/0', False, | 
					
						
							|  |  |  |         port_range_from='22', | 
					
						
							|  |  |  |         port_range_to='22' | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     all_network_acls = conn.get_all_network_acls() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     test_network_acl = next(na for na in all_network_acls | 
					
						
							|  |  |  |                             if na.id == network_acl.id) | 
					
						
							|  |  |  |     entries = test_network_acl.network_acl_entries | 
					
						
							|  |  |  |     entries.should.have.length_of(1) | 
					
						
							|  |  |  |     entries[0].rule_number.should.equal('110') | 
					
						
							|  |  |  |     entries[0].protocol.should.equal('-1') | 
					
						
							|  |  |  |     entries[0].rule_action.should.equal('DENY') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-15 22:35:45 -05:00
										 |  |  | @mock_ec2_deprecated | 
					
						
							| 
									
										
										
										
											2014-11-14 17:23:56 -06:00
										 |  |  | def test_associate_new_network_acl_with_subnet(): | 
					
						
							|  |  |  |     conn = boto.connect_vpc('the_key', 'the secret') | 
					
						
							|  |  |  |     vpc = conn.create_vpc("10.0.0.0/16") | 
					
						
							|  |  |  |     subnet = conn.create_subnet(vpc.id, "10.0.0.0/18") | 
					
						
							|  |  |  |     network_acl = conn.create_network_acl(vpc.id) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     conn.associate_network_acl(network_acl.id, subnet.id) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     all_network_acls = conn.get_all_network_acls() | 
					
						
							| 
									
										
										
										
											2017-01-11 17:37:57 -08:00
										 |  |  |     all_network_acls.should.have.length_of(3) | 
					
						
							| 
									
										
										
										
											2014-11-14 17:23:56 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |     test_network_acl = next(na for na in all_network_acls | 
					
						
							|  |  |  |                             if na.id == network_acl.id) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     test_network_acl.associations.should.have.length_of(1) | 
					
						
							|  |  |  |     test_network_acl.associations[0].subnet_id.should.equal(subnet.id) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-15 22:35:45 -05:00
										 |  |  | @mock_ec2_deprecated | 
					
						
							| 
									
										
										
										
											2014-11-14 17:23:56 -06:00
										 |  |  | def test_delete_network_acl(): | 
					
						
							|  |  |  |     conn = boto.connect_vpc('the_key', 'the secret') | 
					
						
							|  |  |  |     vpc = conn.create_vpc("10.0.0.0/16") | 
					
						
							|  |  |  |     subnet = conn.create_subnet(vpc.id, "10.0.0.0/18") | 
					
						
							|  |  |  |     network_acl = conn.create_network_acl(vpc.id) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     all_network_acls = conn.get_all_network_acls() | 
					
						
							| 
									
										
										
										
											2017-01-11 17:37:57 -08:00
										 |  |  |     all_network_acls.should.have.length_of(3) | 
					
						
							| 
									
										
										
										
											2014-11-14 17:23:56 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |     any(acl.id == network_acl.id for acl in all_network_acls).should.be.ok | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     conn.delete_network_acl(network_acl.id) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     updated_network_acls = conn.get_all_network_acls() | 
					
						
							| 
									
										
										
										
											2017-01-11 17:37:57 -08:00
										 |  |  |     updated_network_acls.should.have.length_of(2) | 
					
						
							| 
									
										
										
										
											2014-11-14 17:23:56 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |     any(acl.id == network_acl.id for acl in updated_network_acls).shouldnt.be.ok | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-15 22:35:45 -05:00
										 |  |  | @mock_ec2_deprecated | 
					
						
							| 
									
										
										
										
											2014-11-20 12:02:38 -06:00
										 |  |  | def test_network_acl_tagging(): | 
					
						
							|  |  |  |     conn = boto.connect_vpc('the_key', 'the secret') | 
					
						
							|  |  |  |     vpc = conn.create_vpc("10.0.0.0/16") | 
					
						
							|  |  |  |     network_acl = conn.create_network_acl(vpc.id) | 
					
						
							| 
									
										
										
										
											2014-11-14 17:23:56 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-20 12:02:38 -06:00
										 |  |  |     network_acl.add_tag("a key", "some value") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     tag = conn.get_all_tags()[0] | 
					
						
							|  |  |  |     tag.name.should.equal("a key") | 
					
						
							|  |  |  |     tag.value.should.equal("some value") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     all_network_acls = conn.get_all_network_acls() | 
					
						
							|  |  |  |     test_network_acl = next(na for na in all_network_acls | 
					
						
							|  |  |  |                             if na.id == network_acl.id) | 
					
						
							|  |  |  |     test_network_acl.tags.should.have.length_of(1) | 
					
						
							|  |  |  |     test_network_acl.tags["a key"].should.equal("some value") |