18d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoifrom tests.unit import unittest
28d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoifrom tests.unit import AWSMockServiceTestCase
38d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
48d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoifrom boto.vpc import VPCConnection
58d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
68d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
78d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoiclass TestDescribeNetworkAcls(AWSMockServiceTestCase):
88d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
98d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    connection_class = VPCConnection
108d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
118d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def default_body(self):
128d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        return b"""
138d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <DescribeNetworkAclsResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
148d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
158d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <networkAclSet>
168d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <item>
178d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <networkAclId>acl-5566953c</networkAclId>
188d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <vpcId>vpc-5266953b</vpcId>
198d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <default>true</default>
208d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <entrySet>
218d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   <item>
228d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleNumber>100</ruleNumber>
238d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <protocol>all</protocol>
248d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleAction>allow</ruleAction>
258d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <egress>true</egress>
268d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <cidrBlock>0.0.0.0/0</cidrBlock>
278d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   </item>
288d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   <item>
298d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleNumber>32767</ruleNumber>
308d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <protocol>all</protocol>
318d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleAction>deny</ruleAction>
328d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <egress>true</egress>
338d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <cidrBlock>0.0.0.0/0</cidrBlock>
348d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   </item>
358d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   <item>
368d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleNumber>100</ruleNumber>
378d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <protocol>all</protocol>
388d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleAction>allow</ruleAction>
398d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <egress>false</egress>
408d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <cidrBlock>0.0.0.0/0</cidrBlock>
418d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   </item>
428d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   <item>
438d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleNumber>32767</ruleNumber>
448d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <protocol>all</protocol>
458d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleAction>deny</ruleAction>
468d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <egress>false</egress>
478d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <cidrBlock>0.0.0.0/0</cidrBlock>
488d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   </item>
498d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 </entrySet>
508d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <associationSet/>
518d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <tagSet/>
528d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               </item>
538d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <item>
548d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <networkAclId>acl-5d659634</networkAclId>
558d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <vpcId>vpc-5266953b</vpcId>
568d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <default>false</default>
578d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <entrySet>
588d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   <item>
598d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleNumber>110</ruleNumber>
608d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <protocol>6</protocol>
618d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleAction>allow</ruleAction>
628d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <egress>true</egress>
638d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <cidrBlock>0.0.0.0/0</cidrBlock>
648d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <portRange>
658d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                       <from>49152</from>
668d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                       <to>65535</to>
678d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     </portRange>
688d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   </item>
698d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   <item>
708d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleNumber>32767</ruleNumber>
718d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <protocol>all</protocol>
728d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleAction>deny</ruleAction>
738d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <egress>true</egress>
748d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <cidrBlock>0.0.0.0/0</cidrBlock>
758d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   </item>
768d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   <item>
778d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleNumber>110</ruleNumber>
788d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <protocol>6</protocol>
798d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleAction>allow</ruleAction>
808d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <egress>false</egress>
818d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <cidrBlock>0.0.0.0/0</cidrBlock>
828d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <portRange>
838d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                       <from>80</from>
848d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                       <to>80</to>
858d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     </portRange>
868d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   </item>
878d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   <item>
888d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleNumber>120</ruleNumber>
898d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <protocol>6</protocol>
908d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleAction>allow</ruleAction>
918d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <egress>false</egress>
928d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <cidrBlock>0.0.0.0/0</cidrBlock>
938d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <portRange>
948d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                       <from>443</from>
958d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                       <to>443</to>
968d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     </portRange>
978d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   </item>
988d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   <item>
998d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleNumber>32767</ruleNumber>
1008d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <protocol>all</protocol>
1018d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <ruleAction>deny</ruleAction>
1028d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <egress>false</egress>
1038d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <cidrBlock>0.0.0.0/0</cidrBlock>
1048d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   </item>
1058d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 </entrySet>
1068d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <associationSet>
1078d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   <item>
1088d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <networkAclAssociationId>aclassoc-5c659635</networkAclAssociationId>
1098d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <networkAclId>acl-5d659634</networkAclId>
1108d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <subnetId>subnet-ff669596</subnetId>
1118d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   </item>
1128d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   <item>
1138d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <networkAclAssociationId>aclassoc-c26596ab</networkAclAssociationId>
1148d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <networkAclId>acl-5d659634</networkAclId>
1158d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <subnetId>subnet-f0669599</subnetId>
1168d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                   </item>
1178d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 </associationSet>
1188d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <tagSet/>
1198d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               </item>
1208d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi             </networkAclSet>
1218d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            </DescribeNetworkAclsResponse>
1228d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        """
1238d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1248d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_get_all_network_acls(self):
1258d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.set_http_response(status_code=200)
1268d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        response = self.service_connection.get_all_network_acls(['acl-5566953c', 'acl-5d659634'],
1278d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                                                [('vpc-id', 'vpc-5266953b')])
1288d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assert_request_parameters({
1298d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Action': 'DescribeNetworkAcls',
1308d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'NetworkAclId.1': 'acl-5566953c',
1318d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'NetworkAclId.2': 'acl-5d659634',
1328d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Filter.1.Name': 'vpc-id',
1338d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Filter.1.Value.1': 'vpc-5266953b'},
1348d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
1358d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'SignatureVersion', 'Timestamp',
1368d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'Version'])
1378d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEqual(len(response), 2)
1388d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1398d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1408d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoiclass TestReplaceNetworkAclAssociation(AWSMockServiceTestCase):
1418d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1428d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    connection_class = VPCConnection
1438d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1448d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    get_all_network_acls_vpc_body = b"""
1458d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        <DescribeNetworkAclsResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
1468d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi           <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
1478d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi           <networkAclSet>
1488d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi           <item>
1498d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi             <networkAclId>acl-5566953c</networkAclId>
1508d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi             <vpcId>vpc-5266953b</vpcId>
1518d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi             <default>true</default>
1528d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi             <entrySet>
1538d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <item>
1548d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <ruleNumber>100</ruleNumber>
1558d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <protocol>all</protocol>
1568d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <ruleAction>allow</ruleAction>
1578d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <egress>true</egress>
1588d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <cidrBlock>0.0.0.0/0</cidrBlock>
1598d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               </item>
1608d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <item>
1618d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <ruleNumber>32767</ruleNumber>
1628d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <protocol>all</protocol>
1638d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <ruleAction>deny</ruleAction>
1648d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <egress>true</egress>
1658d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <cidrBlock>0.0.0.0/0</cidrBlock>
1668d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               </item>
1678d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <item>
1688d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <ruleNumber>100</ruleNumber>
1698d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <protocol>all</protocol>
1708d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <ruleAction>allow</ruleAction>
1718d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <egress>false</egress>
1728d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <cidrBlock>0.0.0.0/0</cidrBlock>
1738d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               </item>
1748d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <item>
1758d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <ruleNumber>32767</ruleNumber>
1768d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <protocol>all</protocol>
1778d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <ruleAction>deny</ruleAction>
1788d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <egress>false</egress>
1798d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                 <cidrBlock>0.0.0.0/0</cidrBlock>
1808d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               </item>
1818d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi             </entrySet>
1828d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi             <associationSet/>
1838d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi             <tagSet/>
1848d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi           </item>
1858d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1868d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi         </networkAclSet>
1878d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        </DescribeNetworkAclsResponse>
1888d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    """
1898d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
1908d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    get_all_network_acls_subnet_body = b"""
1918d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        <DescribeNetworkAclsResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
1928d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
1938d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <networkAclSet>
1948d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <item>
1958d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              <networkAclId>acl-5d659634</networkAclId>
1968d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              <vpcId>vpc-5266953b</vpcId>
1978d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              <default>false</default>
1988d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              <entrySet>
1998d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                <item>
2008d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <ruleNumber>110</ruleNumber>
2018d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <protocol>6</protocol>
2028d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <ruleAction>allow</ruleAction>
2038d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <egress>true</egress>
2048d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <cidrBlock>0.0.0.0/0</cidrBlock>
2058d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <portRange>
2068d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                    <from>49152</from>
2078d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                    <to>65535</to>
2088d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  </portRange>
2098d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                </item>
2108d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              </entrySet>
2118d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              <associationSet>
2128d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                <item>
2138d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <networkAclAssociationId>aclassoc-c26596ab</networkAclAssociationId>
2148d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <networkAclId>acl-5d659634</networkAclId>
2158d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <subnetId>subnet-f0669599</subnetId>
2168d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                </item>
2178d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                <item>
2188d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <networkAclAssociationId>aclassoc-5c659635</networkAclAssociationId>
2198d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <networkAclId>acl-5d659634</networkAclId>
2208d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <subnetId>subnet-ff669596</subnetId>
2218d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                </item>
2228d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              </associationSet>
2238d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              <tagSet/>
2248d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            </item>
2258d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi          </networkAclSet>
2268d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        </DescribeNetworkAclsResponse>
2278d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    """
2288d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
2298d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def default_body(self):
2308d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        return b"""
2318d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <ReplaceNetworkAclAssociationResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
2328d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
2338d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <newAssociationId>aclassoc-17b85d7e</newAssociationId>
2348d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            </ReplaceNetworkAclAssociationResponse>
2358d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        """
2368d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
2378d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_associate_network_acl(self):
2388d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.https_connection.getresponse.side_effect = [
2398d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            self.create_response(status_code=200, body=self.get_all_network_acls_subnet_body),
2408d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            self.create_response(status_code=200)
2418d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        ]
2428d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        response = self.service_connection.associate_network_acl('acl-5fb85d36', 'subnet-ff669596')
2438d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        # Note: Not testing proper call to get_all_network_acls!
2448d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assert_request_parameters({
2458d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Action': 'ReplaceNetworkAclAssociation',
2468d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'NetworkAclId': 'acl-5fb85d36',
2478d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'AssociationId': 'aclassoc-5c659635'},
2488d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
2498d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'SignatureVersion', 'Timestamp',
2508d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'Version'])
2518d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEqual(response, 'aclassoc-17b85d7e')
2528d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
2538d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_disassociate_network_acl(self):
2548d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.https_connection.getresponse.side_effect = [
2558d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            self.create_response(status_code=200, body=self.get_all_network_acls_vpc_body),
2568d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            self.create_response(status_code=200, body=self.get_all_network_acls_subnet_body),
2578d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            self.create_response(status_code=200)
2588d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        ]
2598d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        response = self.service_connection.disassociate_network_acl('subnet-ff669596',
2608d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                                                    'vpc-5266953b')
2618d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        # Note: Not testing proper call to either call to get_all_network_acls!
2628d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assert_request_parameters({
2638d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Action': 'ReplaceNetworkAclAssociation',
2648d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'NetworkAclId': 'acl-5566953c',
2658d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'AssociationId': 'aclassoc-5c659635'},
2668d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
2678d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'SignatureVersion', 'Timestamp',
2688d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'Version'])
2698d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEqual(response, 'aclassoc-17b85d7e')
2708d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
2718d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
2728d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoiclass TestCreateNetworkAcl(AWSMockServiceTestCase):
2738d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
2748d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    connection_class = VPCConnection
2758d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
2768d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def default_body(self):
2778d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        return b"""
2788d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <CreateNetworkAclResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
2798d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
2808d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <networkAcl>
2818d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <networkAclId>acl-5fb85d36</networkAclId>
2828d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <vpcId>vpc-11ad4878</vpcId>
2838d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <default>false</default>
2848d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <entrySet>
2858d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <item>
2868d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                        <ruleNumber>32767</ruleNumber>
2878d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                        <protocol>all</protocol>
2888d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                        <ruleAction>deny</ruleAction>
2898d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                        <egress>true</egress>
2908d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                        <cidrBlock>0.0.0.0/0</cidrBlock>
2918d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     </item>
2928d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     <item>
2938d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                        <ruleNumber>32767</ruleNumber>
2948d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                        <protocol>all</protocol>
2958d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                        <ruleAction>deny</ruleAction>
2968d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                        <egress>false</egress>
2978d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                        <cidrBlock>0.0.0.0/0</cidrBlock>
2988d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                     </item>
2998d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  </entrySet>
3008d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <associationSet/>
3018d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <tagSet/>
3028d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               </networkAcl>
3038d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            </CreateNetworkAclResponse>
3048d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        """
3058d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3068d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_create_network_acl(self):
3078d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.set_http_response(status_code=200)
3088d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        response = self.service_connection.create_network_acl('vpc-11ad4878')
3098d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assert_request_parameters({
3108d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Action': 'CreateNetworkAcl',
3118d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'VpcId': 'vpc-11ad4878'},
3128d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
3138d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'SignatureVersion', 'Timestamp',
3148d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'Version'])
3158d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEqual(response.id, 'acl-5fb85d36')
3168d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3178d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3188d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoiclass DeleteCreateNetworkAcl(AWSMockServiceTestCase):
3198d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3208d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    connection_class = VPCConnection
3218d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3228d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def default_body(self):
3238d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        return b"""
3248d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <DeleteNetworkAclResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
3258d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
3268d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <return>true</return>
3278d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            </DeleteNetworkAclResponse>
3288d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        """
3298d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3308d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_delete_network_acl(self):
3318d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.set_http_response(status_code=200)
3328d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        response = self.service_connection.delete_network_acl('acl-2cb85d45')
3338d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assert_request_parameters({
3348d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Action': 'DeleteNetworkAcl',
3358d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'NetworkAclId': 'acl-2cb85d45'},
3368d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
3378d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'SignatureVersion', 'Timestamp',
3388d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'Version'])
3398d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEqual(response, True)
3408d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3418d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3428d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoiclass TestCreateNetworkAclEntry(AWSMockServiceTestCase):
3438d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3448d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    connection_class = VPCConnection
3458d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3468d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def default_body(self):
3478d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        return b"""
3488d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <CreateNetworkAclEntryResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
3498d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
3508d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <return>true</return>
3518d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            </CreateNetworkAclEntryResponse>
3528d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        """
3538d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3548d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_create_network_acl(self):
3558d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.set_http_response(status_code=200)
3568d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        response = self.service_connection.create_network_acl_entry(
3578d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'acl-2cb85d45', 110, 'udp', 'allow', '0.0.0.0/0', egress=False,
3588d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            port_range_from=53, port_range_to=53)
3598d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assert_request_parameters({
3608d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Action': 'CreateNetworkAclEntry',
3618d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'NetworkAclId': 'acl-2cb85d45',
3628d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'RuleNumber': 110,
3638d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Protocol': 'udp',
3648d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'RuleAction': 'allow',
3658d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Egress': 'false',
3668d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'CidrBlock': '0.0.0.0/0',
3678d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'PortRange.From': 53,
3688d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'PortRange.To': 53},
3698d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
3708d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'SignatureVersion', 'Timestamp',
3718d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'Version'])
3728d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEqual(response, True)
3738d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3748d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_create_network_acl_icmp(self):
3758d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.set_http_response(status_code=200)
3768d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        response = self.service_connection.create_network_acl_entry(
3778d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'acl-2cb85d45', 110, 'udp', 'allow', '0.0.0.0/0', egress='true',
3788d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            icmp_code=-1, icmp_type=8)
3798d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assert_request_parameters({
3808d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Action': 'CreateNetworkAclEntry',
3818d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'NetworkAclId': 'acl-2cb85d45',
3828d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'RuleNumber': 110,
3838d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Protocol': 'udp',
3848d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'RuleAction': 'allow',
3858d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Egress': 'true',
3868d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'CidrBlock': '0.0.0.0/0',
3878d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Icmp.Code': -1,
3888d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Icmp.Type': 8},
3898d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
3908d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'SignatureVersion', 'Timestamp',
3918d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'Version'])
3928d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEqual(response, True)
3938d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3948d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3958d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoiclass TestReplaceNetworkAclEntry(AWSMockServiceTestCase):
3968d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3978d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    connection_class = VPCConnection
3988d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
3998d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def default_body(self):
4008d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        return b"""
4018d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <ReplaceNetworkAclEntryResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
4028d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
4038d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <return>true</return>
4048d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            </ReplaceNetworkAclEntryResponse>
4058d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        """
4068d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
4078d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_replace_network_acl(self):
4088d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.set_http_response(status_code=200)
4098d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        response = self.service_connection.replace_network_acl_entry(
4108d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'acl-2cb85d45', 110, 'tcp', 'deny', '0.0.0.0/0', egress=False,
4118d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            port_range_from=139, port_range_to=139)
4128d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assert_request_parameters({
4138d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Action': 'ReplaceNetworkAclEntry',
4148d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'NetworkAclId': 'acl-2cb85d45',
4158d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'RuleNumber': 110,
4168d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Protocol': 'tcp',
4178d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'RuleAction': 'deny',
4188d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Egress': 'false',
4198d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'CidrBlock': '0.0.0.0/0',
4208d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'PortRange.From': 139,
4218d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'PortRange.To': 139},
4228d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
4238d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'SignatureVersion', 'Timestamp',
4248d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'Version'])
4258d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEqual(response, True)
4268d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
4278d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_replace_network_acl_icmp(self):
4288d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.set_http_response(status_code=200)
4298d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        response = self.service_connection.replace_network_acl_entry(
4308d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'acl-2cb85d45', 110, 'tcp', 'deny', '0.0.0.0/0',
4318d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            icmp_code=-1, icmp_type=8)
4328d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assert_request_parameters({
4338d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Action': 'ReplaceNetworkAclEntry',
4348d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'NetworkAclId': 'acl-2cb85d45',
4358d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'RuleNumber': 110,
4368d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Protocol': 'tcp',
4378d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'RuleAction': 'deny',
4388d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'CidrBlock': '0.0.0.0/0',
4398d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Icmp.Code': -1,
4408d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Icmp.Type': 8},
4418d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
4428d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'SignatureVersion', 'Timestamp',
4438d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'Version'])
4448d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEqual(response, True)
4458d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
4468d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
4478d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoiclass TestDeleteNetworkAclEntry(AWSMockServiceTestCase):
4488d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
4498d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    connection_class = VPCConnection
4508d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
4518d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def default_body(self):
4528d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        return b"""
4538d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <DeleteNetworkAclEntryResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
4548d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
4558d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi               <return>true</return>
4568d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            </DeleteNetworkAclEntryResponse>
4578d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        """
4588d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
4598d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_delete_network_acl(self):
4608d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.set_http_response(status_code=200)
4618d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        response = self.service_connection.delete_network_acl_entry('acl-2cb85d45', 100,
4628d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                                                    egress=False)
4638d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assert_request_parameters({
4648d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Action': 'DeleteNetworkAclEntry',
4658d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'NetworkAclId': 'acl-2cb85d45',
4668d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'RuleNumber': 100,
4678d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            'Egress': 'false'},
4688d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
4698d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'SignatureVersion', 'Timestamp',
4708d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                                  'Version'])
4718d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEqual(response, True)
4728d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
4738d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
4748d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoiclass TestGetNetworkAclAssociations(AWSMockServiceTestCase):
4758d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
4768d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    connection_class = VPCConnection
4778d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
4788d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def default_body(self):
4798d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        return b"""
4808d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        <DescribeNetworkAclsResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
4818d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
4828d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <networkAclSet>
4838d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            <item>
4848d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              <networkAclId>acl-5d659634</networkAclId>
4858d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              <vpcId>vpc-5266953b</vpcId>
4868d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              <default>false</default>
4878d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              <entrySet>
4888d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                <item>
4898d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <ruleNumber>110</ruleNumber>
4908d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <protocol>6</protocol>
4918d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <ruleAction>allow</ruleAction>
4928d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <egress>true</egress>
4938d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <cidrBlock>0.0.0.0/0</cidrBlock>
4948d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <portRange>
4958d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                    <from>49152</from>
4968d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                    <to>65535</to>
4978d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  </portRange>
4988d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                </item>
4998d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              </entrySet>
5008d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              <associationSet>
5018d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                <item>
5028d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <networkAclAssociationId>aclassoc-c26596ab</networkAclAssociationId>
5038d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <networkAclId>acl-5d659634</networkAclId>
5048d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                  <subnetId>subnet-f0669599</subnetId>
5058d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi                </item>
5068d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              </associationSet>
5078d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi              <tagSet/>
5088d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi            </item>
5098d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi          </networkAclSet>
5108d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        </DescribeNetworkAclsResponse>
5118d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    """
5128d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
5138d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    def test_get_network_acl_associations(self):
5148d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.set_http_response(status_code=200)
5158d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        api_response = self.service_connection.get_all_network_acls()
5168d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        association = api_response[0].associations[0]
5178d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi        self.assertEqual(association.network_acl_id, 'acl-5d659634')
5188d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
5198d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi
5208d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoiif __name__ == '__main__':
5218d2b206a675ec20ea07100c35df34e65ee1e45e8Ruchi Kandoi    unittest.main()
522