Add no nat cidrs network extension
Change-Id: I65ecfc1737eaddc0c3f2bc2157dcf21d3c7e971b
(cherry picked from commit b4119d9e3a)
			
			
This commit is contained in:
		
				
					committed by
					
						
						Muhammed Sufair
					
				
			
			
				
	
			
			
			
						parent
						
							d757541ac3
						
					
				
				
					commit
					d94928c921
				
			@@ -88,6 +88,11 @@ def _get_attrs_network_extension(client_manager, parsed_args):
 | 
			
		||||
    if parsed_args.apic_policy_enforcement_pref:
 | 
			
		||||
        attrs['apic:policy_enforcement_pref'
 | 
			
		||||
              ] = parsed_args.apic_policy_enforcement_pref
 | 
			
		||||
    if parsed_args.apic_no_nat_cidrs:
 | 
			
		||||
        attrs['apic:no_nat_cidrs'] = parsed_args.apic_no_nat_cidrs.split(",")
 | 
			
		||||
    if ('no_apic_no_nat_cidrs' in parsed_args and
 | 
			
		||||
        parsed_args.no_apic_no_nat_cidrs):
 | 
			
		||||
        attrs['apic:no_nat_cidrs'] = []
 | 
			
		||||
    if parsed_args.external:
 | 
			
		||||
        if ('apic_nat_type' in parsed_args and
 | 
			
		||||
            parsed_args.apic_nat_type is not None):
 | 
			
		||||
@@ -133,6 +138,7 @@ network_sdk.Network.apic_policy_enforcement_pref = resource.Body(
 | 
			
		||||
    'apic:policy_enforcement_pref')
 | 
			
		||||
network_sdk.Network.apic_nat_type = resource.Body('apic:nat_type')
 | 
			
		||||
network_sdk.Network.apic_external_cidrs = resource.Body('apic:external_cidrs')
 | 
			
		||||
network_sdk.Network.apic_no_nat_cidrs = resource.Body('apic:no_nat_cidrs')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CreateNetworkExtension(hooks.CommandHook):
 | 
			
		||||
@@ -299,6 +305,16 @@ class CreateNetworkExtension(hooks.CommandHook):
 | 
			
		||||
                   "Syntax Example: 10.10.10.0/24 "
 | 
			
		||||
                   "or 10.10.10.0/24,20.20.20.0/24 ")
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--apic-no-nat-cidrs',
 | 
			
		||||
            metavar="<subnet1,subnet2>",
 | 
			
		||||
            dest='apic_no_nat_cidrs',
 | 
			
		||||
            help=_("APIC CIDRS for a network to config no NAT routing\n"
 | 
			
		||||
                   "Data is passed as comma separated valid ip subnets\n"
 | 
			
		||||
                   "Default value is []\n"
 | 
			
		||||
                   "Syntax Example: 10.10.10.0/24 "
 | 
			
		||||
                   "or 10.10.10.0/24,20.20.20.0/24 ")
 | 
			
		||||
        )
 | 
			
		||||
        return parser
 | 
			
		||||
 | 
			
		||||
    def get_epilog(self):
 | 
			
		||||
@@ -447,6 +463,23 @@ class SetNetworkExtension(hooks.CommandHook):
 | 
			
		||||
                   "Need to pass the --external argument wth this field\n"
 | 
			
		||||
                   "Resets the apic:external_cidrs field to 0.0.0.0/0 ")
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--apic-no-nat-cidrs',
 | 
			
		||||
            metavar="<subnet1,subnet2>",
 | 
			
		||||
            dest='apic_no_nat_cidrs',
 | 
			
		||||
            help=_("APIC CIDRS for a network to config no NAT routing\n"
 | 
			
		||||
                   "Data is passed as comma separated valid ip subnets\n"
 | 
			
		||||
                   "Default value is []\n"
 | 
			
		||||
                   "Syntax Example: 10.10.10.0/24 "
 | 
			
		||||
                   "or 10.10.10.0/24,20.20.20.0/24 ")
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '--no-apic-no-nat-cidrs',
 | 
			
		||||
            dest='no_apic_no_nat_cidrs',
 | 
			
		||||
            action='store_true',
 | 
			
		||||
            help=_("Reset APIC no NAT CIDRS for a network\n"
 | 
			
		||||
                   "Resets the apic:no_nat_cidrs field to []")
 | 
			
		||||
        )
 | 
			
		||||
        return parser
 | 
			
		||||
 | 
			
		||||
    def get_epilog(self):
 | 
			
		||||
 
 | 
			
		||||
@@ -54,6 +54,7 @@ class TestNetworkCreate(test_network.TestNetwork, test_cli20.CLITestV20Base):
 | 
			
		||||
            ('apic_extra_provided_contracts', None),
 | 
			
		||||
            ('apic_extra_consumed_contracts', None),
 | 
			
		||||
            ('apic_policy_enforcement_pref', None),
 | 
			
		||||
            ('apic_no_nat_cidrs', None),
 | 
			
		||||
        ]
 | 
			
		||||
        create_ext = network_ext.CreateNetworkExtension(self.app)
 | 
			
		||||
        parsed_args = self.check_parser_ext(
 | 
			
		||||
@@ -86,6 +87,7 @@ class TestNetworkCreate(test_network.TestNetwork, test_cli20.CLITestV20Base):
 | 
			
		||||
            "--apic-extra-provided-contracts", 'pcontest1',
 | 
			
		||||
            "--apic-extra-consumed-contracts", 'contest1',
 | 
			
		||||
            "--apic-policy-enforcement-pref", 'enforced',
 | 
			
		||||
            "--apic-no-nat-cidrs", '10.10.10.0/24',
 | 
			
		||||
        ]
 | 
			
		||||
        verifylist = [
 | 
			
		||||
            ('name', self._network.name),
 | 
			
		||||
@@ -106,6 +108,7 @@ class TestNetworkCreate(test_network.TestNetwork, test_cli20.CLITestV20Base):
 | 
			
		||||
            ('apic_extra_provided_contracts', 'pcontest1'),
 | 
			
		||||
            ('apic_extra_consumed_contracts', 'contest1'),
 | 
			
		||||
            ('apic_policy_enforcement_pref', 'enforced'),
 | 
			
		||||
            ('apic_no_nat_cidrs', '10.10.10.0/24'),
 | 
			
		||||
        ]
 | 
			
		||||
        create_ext = network_ext.CreateNetworkExtension(self.app)
 | 
			
		||||
        parsed_args = self.check_parser_ext(
 | 
			
		||||
@@ -133,6 +136,7 @@ class TestNetworkCreate(test_network.TestNetwork, test_cli20.CLITestV20Base):
 | 
			
		||||
            'apic:nested_domain_node_network_vlan': '4',
 | 
			
		||||
            'apic:nested_domain_service_vlan': '3',
 | 
			
		||||
            'apic:policy_enforcement_pref': 'enforced',
 | 
			
		||||
            'apic:no_nat_cidrs': ['10.10.10.0/24'],
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
    def test_create_empty_contracts(self):
 | 
			
		||||
@@ -165,6 +169,7 @@ class TestNetworkCreate(test_network.TestNetwork, test_cli20.CLITestV20Base):
 | 
			
		||||
            "--apic-distinguished-names", 'ExternalNetwork=test1',
 | 
			
		||||
            "--apic-nat-type", "",
 | 
			
		||||
            "--apic-external-cidrs", '20.20.20.0/8',
 | 
			
		||||
            "--apic-no-nat-cidrs", '10.10.10.0/24',
 | 
			
		||||
        ]
 | 
			
		||||
        verifylist = [
 | 
			
		||||
            ('name', self._network.name),
 | 
			
		||||
@@ -172,6 +177,7 @@ class TestNetworkCreate(test_network.TestNetwork, test_cli20.CLITestV20Base):
 | 
			
		||||
            ('apic_distinguished_names', [{'ExternalNetwork': 'test1'}]),
 | 
			
		||||
            ('apic_nat_type', ""),
 | 
			
		||||
            ('apic_external_cidrs', '20.20.20.0/8'),
 | 
			
		||||
            ('apic_no_nat_cidrs', '10.10.10.0/24'),
 | 
			
		||||
        ]
 | 
			
		||||
        create_ext = network_ext.CreateNetworkExtension(self.app)
 | 
			
		||||
        parsed_args = self.check_parser_ext(
 | 
			
		||||
@@ -185,6 +191,7 @@ class TestNetworkCreate(test_network.TestNetwork, test_cli20.CLITestV20Base):
 | 
			
		||||
            'apic:distinguished_names': {"ExternalNetwork": "test1"},
 | 
			
		||||
            'apic:external_cidrs': ['20.20.20.0/8'],
 | 
			
		||||
            'apic:nat_type': '',
 | 
			
		||||
            'apic:no_nat_cidrs': ['10.10.10.0/24'],
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -219,6 +226,7 @@ class TestNetworkSet(test_network.TestNetwork, test_cli20.CLITestV20Base):
 | 
			
		||||
            ('apic_extra_provided_contracts', None),
 | 
			
		||||
            ('apic_extra_consumed_contracts', None),
 | 
			
		||||
            ('apic_policy_enforcement_pref', None),
 | 
			
		||||
            ('apic_no_nat_cidrs', None),
 | 
			
		||||
        ]
 | 
			
		||||
        set_ext = network_ext.SetNetworkExtension(self.app)
 | 
			
		||||
        parsed_args = self.check_parser_ext(
 | 
			
		||||
@@ -245,6 +253,7 @@ class TestNetworkSet(test_network.TestNetwork, test_cli20.CLITestV20Base):
 | 
			
		||||
            "--apic-extra-provided-contracts", 'pcontest1,pcontest11',
 | 
			
		||||
            "--apic-extra-consumed-contracts", 'contest1,contest11',
 | 
			
		||||
            "--apic-policy-enforcement-pref", 'enforced',
 | 
			
		||||
            "--apic-no-nat-cidrs", '10.10.10.0/24',
 | 
			
		||||
        ]
 | 
			
		||||
        verifylist = [
 | 
			
		||||
            ('network', self._network.name),
 | 
			
		||||
@@ -262,6 +271,7 @@ class TestNetworkSet(test_network.TestNetwork, test_cli20.CLITestV20Base):
 | 
			
		||||
            ('apic_extra_provided_contracts', 'pcontest1,pcontest11'),
 | 
			
		||||
            ('apic_extra_consumed_contracts', 'contest1,contest11'),
 | 
			
		||||
            ('apic_policy_enforcement_pref', 'enforced'),
 | 
			
		||||
            ('apic_no_nat_cidrs', '10.10.10.0/24'),
 | 
			
		||||
        ]
 | 
			
		||||
        set_ext = network_ext.SetNetworkExtension(self.app)
 | 
			
		||||
        parsed_args = self.check_parser_ext(
 | 
			
		||||
@@ -284,6 +294,7 @@ class TestNetworkSet(test_network.TestNetwork, test_cli20.CLITestV20Base):
 | 
			
		||||
            'apic:nested_domain_node_network_vlan': '5',
 | 
			
		||||
            'apic:nested_domain_service_vlan': '4',
 | 
			
		||||
            'apic:policy_enforcement_pref': 'enforced',
 | 
			
		||||
            'apic:no_nat_cidrs': ['10.10.10.0/24'],
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        self.network.update_network.assert_called_once_with(
 | 
			
		||||
@@ -295,6 +306,7 @@ class TestNetworkSet(test_network.TestNetwork, test_cli20.CLITestV20Base):
 | 
			
		||||
            self._network.name,
 | 
			
		||||
            "--external",
 | 
			
		||||
            "--apic-no-external-cidrs",
 | 
			
		||||
            "--no-apic-no-nat-cidrs",
 | 
			
		||||
        ]
 | 
			
		||||
        verifylist = [
 | 
			
		||||
            ('network', self._network.name),
 | 
			
		||||
@@ -313,6 +325,7 @@ class TestNetworkSet(test_network.TestNetwork, test_cli20.CLITestV20Base):
 | 
			
		||||
            ('apic_extra_provided_contracts', None),
 | 
			
		||||
            ('apic_extra_consumed_contracts', None),
 | 
			
		||||
            ('apic_policy_enforcement_pref', None),
 | 
			
		||||
            ('no_apic_no_nat_cidrs', True),
 | 
			
		||||
        ]
 | 
			
		||||
        set_ext = network_ext.SetNetworkExtension(self.app)
 | 
			
		||||
        parsed_args = self.check_parser_ext(
 | 
			
		||||
@@ -322,6 +335,7 @@ class TestNetworkSet(test_network.TestNetwork, test_cli20.CLITestV20Base):
 | 
			
		||||
        attrs = {
 | 
			
		||||
            'router:external': True,
 | 
			
		||||
            'apic:external_cidrs': [],
 | 
			
		||||
            'apic:no_nat_cidrs': [],
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        self.network.update_network.assert_called_once_with(
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user