| Index: tools/telemetry/third_party/gsutilz/third_party/boto/tests/unit/vpc/test_networkacl.py
|
| diff --git a/tools/telemetry/third_party/gsutilz/third_party/boto/tests/unit/vpc/test_networkacl.py b/tools/telemetry/third_party/gsutilz/third_party/boto/tests/unit/vpc/test_networkacl.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d399b22d43cef47d5a98341171da0b03444d8dd5
|
| --- /dev/null
|
| +++ b/tools/telemetry/third_party/gsutilz/third_party/boto/tests/unit/vpc/test_networkacl.py
|
| @@ -0,0 +1,521 @@
|
| +from tests.unit import unittest
|
| +from tests.unit import AWSMockServiceTestCase
|
| +
|
| +from boto.vpc import VPCConnection
|
| +
|
| +
|
| +class TestDescribeNetworkAcls(AWSMockServiceTestCase):
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return b"""
|
| + <DescribeNetworkAclsResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
|
| + <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
|
| + <networkAclSet>
|
| + <item>
|
| + <networkAclId>acl-5566953c</networkAclId>
|
| + <vpcId>vpc-5266953b</vpcId>
|
| + <default>true</default>
|
| + <entrySet>
|
| + <item>
|
| + <ruleNumber>100</ruleNumber>
|
| + <protocol>all</protocol>
|
| + <ruleAction>allow</ruleAction>
|
| + <egress>true</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + </item>
|
| + <item>
|
| + <ruleNumber>32767</ruleNumber>
|
| + <protocol>all</protocol>
|
| + <ruleAction>deny</ruleAction>
|
| + <egress>true</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + </item>
|
| + <item>
|
| + <ruleNumber>100</ruleNumber>
|
| + <protocol>all</protocol>
|
| + <ruleAction>allow</ruleAction>
|
| + <egress>false</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + </item>
|
| + <item>
|
| + <ruleNumber>32767</ruleNumber>
|
| + <protocol>all</protocol>
|
| + <ruleAction>deny</ruleAction>
|
| + <egress>false</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + </item>
|
| + </entrySet>
|
| + <associationSet/>
|
| + <tagSet/>
|
| + </item>
|
| + <item>
|
| + <networkAclId>acl-5d659634</networkAclId>
|
| + <vpcId>vpc-5266953b</vpcId>
|
| + <default>false</default>
|
| + <entrySet>
|
| + <item>
|
| + <ruleNumber>110</ruleNumber>
|
| + <protocol>6</protocol>
|
| + <ruleAction>allow</ruleAction>
|
| + <egress>true</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + <portRange>
|
| + <from>49152</from>
|
| + <to>65535</to>
|
| + </portRange>
|
| + </item>
|
| + <item>
|
| + <ruleNumber>32767</ruleNumber>
|
| + <protocol>all</protocol>
|
| + <ruleAction>deny</ruleAction>
|
| + <egress>true</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + </item>
|
| + <item>
|
| + <ruleNumber>110</ruleNumber>
|
| + <protocol>6</protocol>
|
| + <ruleAction>allow</ruleAction>
|
| + <egress>false</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + <portRange>
|
| + <from>80</from>
|
| + <to>80</to>
|
| + </portRange>
|
| + </item>
|
| + <item>
|
| + <ruleNumber>120</ruleNumber>
|
| + <protocol>6</protocol>
|
| + <ruleAction>allow</ruleAction>
|
| + <egress>false</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + <portRange>
|
| + <from>443</from>
|
| + <to>443</to>
|
| + </portRange>
|
| + </item>
|
| + <item>
|
| + <ruleNumber>32767</ruleNumber>
|
| + <protocol>all</protocol>
|
| + <ruleAction>deny</ruleAction>
|
| + <egress>false</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + </item>
|
| + </entrySet>
|
| + <associationSet>
|
| + <item>
|
| + <networkAclAssociationId>aclassoc-5c659635</networkAclAssociationId>
|
| + <networkAclId>acl-5d659634</networkAclId>
|
| + <subnetId>subnet-ff669596</subnetId>
|
| + </item>
|
| + <item>
|
| + <networkAclAssociationId>aclassoc-c26596ab</networkAclAssociationId>
|
| + <networkAclId>acl-5d659634</networkAclId>
|
| + <subnetId>subnet-f0669599</subnetId>
|
| + </item>
|
| + </associationSet>
|
| + <tagSet/>
|
| + </item>
|
| + </networkAclSet>
|
| + </DescribeNetworkAclsResponse>
|
| + """
|
| +
|
| + def test_get_all_network_acls(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.service_connection.get_all_network_acls(['acl-5566953c', 'acl-5d659634'],
|
| + [('vpc-id', 'vpc-5266953b')])
|
| + self.assert_request_parameters({
|
| + 'Action': 'DescribeNetworkAcls',
|
| + 'NetworkAclId.1': 'acl-5566953c',
|
| + 'NetworkAclId.2': 'acl-5d659634',
|
| + 'Filter.1.Name': 'vpc-id',
|
| + 'Filter.1.Value.1': 'vpc-5266953b'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp',
|
| + 'Version'])
|
| + self.assertEqual(len(response), 2)
|
| +
|
| +
|
| +class TestReplaceNetworkAclAssociation(AWSMockServiceTestCase):
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + get_all_network_acls_vpc_body = b"""
|
| + <DescribeNetworkAclsResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
|
| + <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
|
| + <networkAclSet>
|
| + <item>
|
| + <networkAclId>acl-5566953c</networkAclId>
|
| + <vpcId>vpc-5266953b</vpcId>
|
| + <default>true</default>
|
| + <entrySet>
|
| + <item>
|
| + <ruleNumber>100</ruleNumber>
|
| + <protocol>all</protocol>
|
| + <ruleAction>allow</ruleAction>
|
| + <egress>true</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + </item>
|
| + <item>
|
| + <ruleNumber>32767</ruleNumber>
|
| + <protocol>all</protocol>
|
| + <ruleAction>deny</ruleAction>
|
| + <egress>true</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + </item>
|
| + <item>
|
| + <ruleNumber>100</ruleNumber>
|
| + <protocol>all</protocol>
|
| + <ruleAction>allow</ruleAction>
|
| + <egress>false</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + </item>
|
| + <item>
|
| + <ruleNumber>32767</ruleNumber>
|
| + <protocol>all</protocol>
|
| + <ruleAction>deny</ruleAction>
|
| + <egress>false</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + </item>
|
| + </entrySet>
|
| + <associationSet/>
|
| + <tagSet/>
|
| + </item>
|
| +
|
| + </networkAclSet>
|
| + </DescribeNetworkAclsResponse>
|
| + """
|
| +
|
| + get_all_network_acls_subnet_body = b"""
|
| + <DescribeNetworkAclsResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
|
| + <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
|
| + <networkAclSet>
|
| + <item>
|
| + <networkAclId>acl-5d659634</networkAclId>
|
| + <vpcId>vpc-5266953b</vpcId>
|
| + <default>false</default>
|
| + <entrySet>
|
| + <item>
|
| + <ruleNumber>110</ruleNumber>
|
| + <protocol>6</protocol>
|
| + <ruleAction>allow</ruleAction>
|
| + <egress>true</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + <portRange>
|
| + <from>49152</from>
|
| + <to>65535</to>
|
| + </portRange>
|
| + </item>
|
| + </entrySet>
|
| + <associationSet>
|
| + <item>
|
| + <networkAclAssociationId>aclassoc-c26596ab</networkAclAssociationId>
|
| + <networkAclId>acl-5d659634</networkAclId>
|
| + <subnetId>subnet-f0669599</subnetId>
|
| + </item>
|
| + <item>
|
| + <networkAclAssociationId>aclassoc-5c659635</networkAclAssociationId>
|
| + <networkAclId>acl-5d659634</networkAclId>
|
| + <subnetId>subnet-ff669596</subnetId>
|
| + </item>
|
| + </associationSet>
|
| + <tagSet/>
|
| + </item>
|
| + </networkAclSet>
|
| + </DescribeNetworkAclsResponse>
|
| + """
|
| +
|
| + def default_body(self):
|
| + return b"""
|
| + <ReplaceNetworkAclAssociationResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
|
| + <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
|
| + <newAssociationId>aclassoc-17b85d7e</newAssociationId>
|
| + </ReplaceNetworkAclAssociationResponse>
|
| + """
|
| +
|
| + def test_associate_network_acl(self):
|
| + self.https_connection.getresponse.side_effect = [
|
| + self.create_response(status_code=200, body=self.get_all_network_acls_subnet_body),
|
| + self.create_response(status_code=200)
|
| + ]
|
| + response = self.service_connection.associate_network_acl('acl-5fb85d36', 'subnet-ff669596')
|
| + # Note: Not testing proper call to get_all_network_acls!
|
| + self.assert_request_parameters({
|
| + 'Action': 'ReplaceNetworkAclAssociation',
|
| + 'NetworkAclId': 'acl-5fb85d36',
|
| + 'AssociationId': 'aclassoc-5c659635'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp',
|
| + 'Version'])
|
| + self.assertEqual(response, 'aclassoc-17b85d7e')
|
| +
|
| + def test_disassociate_network_acl(self):
|
| + self.https_connection.getresponse.side_effect = [
|
| + self.create_response(status_code=200, body=self.get_all_network_acls_vpc_body),
|
| + self.create_response(status_code=200, body=self.get_all_network_acls_subnet_body),
|
| + self.create_response(status_code=200)
|
| + ]
|
| + response = self.service_connection.disassociate_network_acl('subnet-ff669596',
|
| + 'vpc-5266953b')
|
| + # Note: Not testing proper call to either call to get_all_network_acls!
|
| + self.assert_request_parameters({
|
| + 'Action': 'ReplaceNetworkAclAssociation',
|
| + 'NetworkAclId': 'acl-5566953c',
|
| + 'AssociationId': 'aclassoc-5c659635'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp',
|
| + 'Version'])
|
| + self.assertEqual(response, 'aclassoc-17b85d7e')
|
| +
|
| +
|
| +class TestCreateNetworkAcl(AWSMockServiceTestCase):
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return b"""
|
| + <CreateNetworkAclResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
|
| + <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
|
| + <networkAcl>
|
| + <networkAclId>acl-5fb85d36</networkAclId>
|
| + <vpcId>vpc-11ad4878</vpcId>
|
| + <default>false</default>
|
| + <entrySet>
|
| + <item>
|
| + <ruleNumber>32767</ruleNumber>
|
| + <protocol>all</protocol>
|
| + <ruleAction>deny</ruleAction>
|
| + <egress>true</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + </item>
|
| + <item>
|
| + <ruleNumber>32767</ruleNumber>
|
| + <protocol>all</protocol>
|
| + <ruleAction>deny</ruleAction>
|
| + <egress>false</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + </item>
|
| + </entrySet>
|
| + <associationSet/>
|
| + <tagSet/>
|
| + </networkAcl>
|
| + </CreateNetworkAclResponse>
|
| + """
|
| +
|
| + def test_create_network_acl(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.service_connection.create_network_acl('vpc-11ad4878')
|
| + self.assert_request_parameters({
|
| + 'Action': 'CreateNetworkAcl',
|
| + 'VpcId': 'vpc-11ad4878'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp',
|
| + 'Version'])
|
| + self.assertEqual(response.id, 'acl-5fb85d36')
|
| +
|
| +
|
| +class DeleteCreateNetworkAcl(AWSMockServiceTestCase):
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return b"""
|
| + <DeleteNetworkAclResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
|
| + <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
|
| + <return>true</return>
|
| + </DeleteNetworkAclResponse>
|
| + """
|
| +
|
| + def test_delete_network_acl(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.service_connection.delete_network_acl('acl-2cb85d45')
|
| + self.assert_request_parameters({
|
| + 'Action': 'DeleteNetworkAcl',
|
| + 'NetworkAclId': 'acl-2cb85d45'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp',
|
| + 'Version'])
|
| + self.assertEqual(response, True)
|
| +
|
| +
|
| +class TestCreateNetworkAclEntry(AWSMockServiceTestCase):
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return b"""
|
| + <CreateNetworkAclEntryResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
|
| + <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
|
| + <return>true</return>
|
| + </CreateNetworkAclEntryResponse>
|
| + """
|
| +
|
| + def test_create_network_acl(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.service_connection.create_network_acl_entry(
|
| + 'acl-2cb85d45', 110, 'udp', 'allow', '0.0.0.0/0', egress=False,
|
| + port_range_from=53, port_range_to=53)
|
| + self.assert_request_parameters({
|
| + 'Action': 'CreateNetworkAclEntry',
|
| + 'NetworkAclId': 'acl-2cb85d45',
|
| + 'RuleNumber': 110,
|
| + 'Protocol': 'udp',
|
| + 'RuleAction': 'allow',
|
| + 'Egress': 'false',
|
| + 'CidrBlock': '0.0.0.0/0',
|
| + 'PortRange.From': 53,
|
| + 'PortRange.To': 53},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp',
|
| + 'Version'])
|
| + self.assertEqual(response, True)
|
| +
|
| + def test_create_network_acl_icmp(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.service_connection.create_network_acl_entry(
|
| + 'acl-2cb85d45', 110, 'udp', 'allow', '0.0.0.0/0', egress='true',
|
| + icmp_code=-1, icmp_type=8)
|
| + self.assert_request_parameters({
|
| + 'Action': 'CreateNetworkAclEntry',
|
| + 'NetworkAclId': 'acl-2cb85d45',
|
| + 'RuleNumber': 110,
|
| + 'Protocol': 'udp',
|
| + 'RuleAction': 'allow',
|
| + 'Egress': 'true',
|
| + 'CidrBlock': '0.0.0.0/0',
|
| + 'Icmp.Code': -1,
|
| + 'Icmp.Type': 8},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp',
|
| + 'Version'])
|
| + self.assertEqual(response, True)
|
| +
|
| +
|
| +class TestReplaceNetworkAclEntry(AWSMockServiceTestCase):
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return b"""
|
| + <ReplaceNetworkAclEntryResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
|
| + <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
|
| + <return>true</return>
|
| + </ReplaceNetworkAclEntryResponse>
|
| + """
|
| +
|
| + def test_replace_network_acl(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.service_connection.replace_network_acl_entry(
|
| + 'acl-2cb85d45', 110, 'tcp', 'deny', '0.0.0.0/0', egress=False,
|
| + port_range_from=139, port_range_to=139)
|
| + self.assert_request_parameters({
|
| + 'Action': 'ReplaceNetworkAclEntry',
|
| + 'NetworkAclId': 'acl-2cb85d45',
|
| + 'RuleNumber': 110,
|
| + 'Protocol': 'tcp',
|
| + 'RuleAction': 'deny',
|
| + 'Egress': 'false',
|
| + 'CidrBlock': '0.0.0.0/0',
|
| + 'PortRange.From': 139,
|
| + 'PortRange.To': 139},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp',
|
| + 'Version'])
|
| + self.assertEqual(response, True)
|
| +
|
| + def test_replace_network_acl_icmp(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.service_connection.replace_network_acl_entry(
|
| + 'acl-2cb85d45', 110, 'tcp', 'deny', '0.0.0.0/0',
|
| + icmp_code=-1, icmp_type=8)
|
| + self.assert_request_parameters({
|
| + 'Action': 'ReplaceNetworkAclEntry',
|
| + 'NetworkAclId': 'acl-2cb85d45',
|
| + 'RuleNumber': 110,
|
| + 'Protocol': 'tcp',
|
| + 'RuleAction': 'deny',
|
| + 'CidrBlock': '0.0.0.0/0',
|
| + 'Icmp.Code': -1,
|
| + 'Icmp.Type': 8},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp',
|
| + 'Version'])
|
| + self.assertEqual(response, True)
|
| +
|
| +
|
| +class TestDeleteNetworkAclEntry(AWSMockServiceTestCase):
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return b"""
|
| + <DeleteNetworkAclEntryResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
|
| + <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
|
| + <return>true</return>
|
| + </DeleteNetworkAclEntryResponse>
|
| + """
|
| +
|
| + def test_delete_network_acl(self):
|
| + self.set_http_response(status_code=200)
|
| + response = self.service_connection.delete_network_acl_entry('acl-2cb85d45', 100,
|
| + egress=False)
|
| + self.assert_request_parameters({
|
| + 'Action': 'DeleteNetworkAclEntry',
|
| + 'NetworkAclId': 'acl-2cb85d45',
|
| + 'RuleNumber': 100,
|
| + 'Egress': 'false'},
|
| + ignore_params_values=['AWSAccessKeyId', 'SignatureMethod',
|
| + 'SignatureVersion', 'Timestamp',
|
| + 'Version'])
|
| + self.assertEqual(response, True)
|
| +
|
| +
|
| +class TestGetNetworkAclAssociations(AWSMockServiceTestCase):
|
| +
|
| + connection_class = VPCConnection
|
| +
|
| + def default_body(self):
|
| + return b"""
|
| + <DescribeNetworkAclsResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-01/">
|
| + <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
|
| + <networkAclSet>
|
| + <item>
|
| + <networkAclId>acl-5d659634</networkAclId>
|
| + <vpcId>vpc-5266953b</vpcId>
|
| + <default>false</default>
|
| + <entrySet>
|
| + <item>
|
| + <ruleNumber>110</ruleNumber>
|
| + <protocol>6</protocol>
|
| + <ruleAction>allow</ruleAction>
|
| + <egress>true</egress>
|
| + <cidrBlock>0.0.0.0/0</cidrBlock>
|
| + <portRange>
|
| + <from>49152</from>
|
| + <to>65535</to>
|
| + </portRange>
|
| + </item>
|
| + </entrySet>
|
| + <associationSet>
|
| + <item>
|
| + <networkAclAssociationId>aclassoc-c26596ab</networkAclAssociationId>
|
| + <networkAclId>acl-5d659634</networkAclId>
|
| + <subnetId>subnet-f0669599</subnetId>
|
| + </item>
|
| + </associationSet>
|
| + <tagSet/>
|
| + </item>
|
| + </networkAclSet>
|
| + </DescribeNetworkAclsResponse>
|
| + """
|
| +
|
| + def test_get_network_acl_associations(self):
|
| + self.set_http_response(status_code=200)
|
| + api_response = self.service_connection.get_all_network_acls()
|
| + association = api_response[0].associations[0]
|
| + self.assertEqual(association.network_acl_id, 'acl-5d659634')
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + unittest.main()
|
|
|