Add support for Policy Enforcement Pref

Add APIC Policy Enforcement Pref attribute to
OpenStack CLI Network Extension.

Change-Id: I8df9c6adeada0eb647309a3ffa15dd4f010b5c6c
This commit is contained in:
Sayali Naval
2021-04-13 21:28:31 -07:00
parent ed8d9e8206
commit d50d16f697
2 changed files with 29 additions and 0 deletions

View File

@@ -78,6 +78,9 @@ def _get_attrs_network_extension(client_manager, parsed_args):
for element in parsed_args.apic_distinguished_names: for element in parsed_args.apic_distinguished_names:
result.update(element) result.update(element)
attrs['apic:distinguished_names'] = result attrs['apic:distinguished_names'] = result
if parsed_args.apic_policy_enforcement_pref:
attrs['apic:policy_enforcement_pref'
] = parsed_args.apic_policy_enforcement_pref
if parsed_args.external: if parsed_args.external:
if 'apic_nat_type' in parsed_args and \ if 'apic_nat_type' in parsed_args and \
parsed_args.apic_nat_type: parsed_args.apic_nat_type:
@@ -116,6 +119,8 @@ network_sdk.Network.apic_epg_contract_masters = resource.Body(
'apic:epg_contract_masters') 'apic:epg_contract_masters')
network_sdk.Network.apic_distinguished_names = resource.Body( network_sdk.Network.apic_distinguished_names = resource.Body(
'apic:distinguished_names') 'apic:distinguished_names')
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_nat_type = resource.Body('apic:nat_type')
network_sdk.Network.apic_external_cidrs = resource.Body('apic:external_cidrs') network_sdk.Network.apic_external_cidrs = resource.Body('apic:external_cidrs')
@@ -256,6 +261,14 @@ class CreateNetworkExtension(hooks.CommandHook):
"Syntax Example: BridgeDomain=aaa or ExternalNetwork=bbb " "Syntax Example: BridgeDomain=aaa or ExternalNetwork=bbb "
"or ExternalNetwork=aaa,BridgeDomain=bbb ") "or ExternalNetwork=aaa,BridgeDomain=bbb ")
) )
parser.add_argument(
'--apic-policy-enforcement-pref',
metavar="<string>",
dest='apic_policy_enforcement_pref',
help=_("APIC Policy Enforcement Pref\n"
"Default value is 'unenforced'\n"
"Valid values: unenforced, enforced, '' ")
)
parser.add_argument( parser.add_argument(
'--apic-nat-type', '--apic-nat-type',
metavar="<string>", metavar="<string>",
@@ -395,6 +408,14 @@ class SetNetworkExtension(hooks.CommandHook):
"Default value is []\n" "Default value is []\n"
"Syntax Example: foo or foo,bar ") "Syntax Example: foo or foo,bar ")
) )
parser.add_argument(
'--apic-policy-enforcement-pref',
metavar="<string>",
dest='apic_policy_enforcement_pref',
help=_("APIC Policy Enforcement Pref\n"
"Default value is 'unenforced'\n"
"Valid values: unenforced, enforced, '' ")
)
parser.add_argument( parser.add_argument(
'--apic-external-cidrs', '--apic-external-cidrs',
metavar="<subnet1,subnet2>", metavar="<subnet1,subnet2>",

View File

@@ -52,6 +52,7 @@ class TestNetworkCreate(test_network.TestNetwork, test_cli20.CLITestV20Base):
('apic_nested_domain_node_network_vlan', None), ('apic_nested_domain_node_network_vlan', None),
('apic_extra_provided_contracts', None), ('apic_extra_provided_contracts', None),
('apic_extra_consumed_contracts', None), ('apic_extra_consumed_contracts', None),
('apic_policy_enforcement_pref', None),
] ]
create_ext = network_ext.CreateNetworkExtension(self.app) create_ext = network_ext.CreateNetworkExtension(self.app)
parsed_args = self.check_parser_ext( parsed_args = self.check_parser_ext(
@@ -82,6 +83,7 @@ class TestNetworkCreate(test_network.TestNetwork, test_cli20.CLITestV20Base):
"--apic-nested-domain-node-network-vlan", '4', "--apic-nested-domain-node-network-vlan", '4',
"--apic-extra-provided-contracts", 'pcontest1', "--apic-extra-provided-contracts", 'pcontest1',
"--apic-extra-consumed-contracts", 'contest1', "--apic-extra-consumed-contracts", 'contest1',
"--apic-policy-enforcement-pref", 'enforced',
] ]
verifylist = [ verifylist = [
('name', self._network.name), ('name', self._network.name),
@@ -101,6 +103,7 @@ class TestNetworkCreate(test_network.TestNetwork, test_cli20.CLITestV20Base):
('apic_nested_domain_node_network_vlan', '4'), ('apic_nested_domain_node_network_vlan', '4'),
('apic_extra_provided_contracts', 'pcontest1'), ('apic_extra_provided_contracts', 'pcontest1'),
('apic_extra_consumed_contracts', 'contest1'), ('apic_extra_consumed_contracts', 'contest1'),
('apic_policy_enforcement_pref', 'enforced'),
] ]
create_ext = network_ext.CreateNetworkExtension(self.app) create_ext = network_ext.CreateNetworkExtension(self.app)
parsed_args = self.check_parser_ext( parsed_args = self.check_parser_ext(
@@ -127,6 +130,7 @@ class TestNetworkCreate(test_network.TestNetwork, test_cli20.CLITestV20Base):
'apic:nested_domain_infra_vlan': '1', 'apic:nested_domain_infra_vlan': '1',
'apic:nested_domain_node_network_vlan': '4', 'apic:nested_domain_node_network_vlan': '4',
'apic:nested_domain_service_vlan': '3', 'apic:nested_domain_service_vlan': '3',
'apic:policy_enforcement_pref': 'enforced',
}) })
@@ -160,6 +164,7 @@ class TestNetworkSet(test_network.TestNetwork, test_cli20.CLITestV20Base):
('apic_nested_domain_node_network_vlan', None), ('apic_nested_domain_node_network_vlan', None),
('apic_extra_provided_contracts', None), ('apic_extra_provided_contracts', None),
('apic_extra_consumed_contracts', None), ('apic_extra_consumed_contracts', None),
('apic_policy_enforcement_pref', None),
] ]
set_ext = network_ext.SetNetworkExtension(self.app) set_ext = network_ext.SetNetworkExtension(self.app)
parsed_args = self.check_parser_ext( parsed_args = self.check_parser_ext(
@@ -185,6 +190,7 @@ class TestNetworkSet(test_network.TestNetwork, test_cli20.CLITestV20Base):
"--apic-nested-domain-node-network-vlan", '5', "--apic-nested-domain-node-network-vlan", '5',
"--apic-extra-provided-contracts", 'pcontest1,pcontest11', "--apic-extra-provided-contracts", 'pcontest1,pcontest11',
"--apic-extra-consumed-contracts", 'contest1,contest11', "--apic-extra-consumed-contracts", 'contest1,contest11',
"--apic-policy-enforcement-pref", 'enforced',
] ]
verifylist = [ verifylist = [
('network', self._network.name), ('network', self._network.name),
@@ -201,6 +207,7 @@ class TestNetworkSet(test_network.TestNetwork, test_cli20.CLITestV20Base):
('apic_nested_domain_node_network_vlan', '5'), ('apic_nested_domain_node_network_vlan', '5'),
('apic_extra_provided_contracts', 'pcontest1,pcontest11'), ('apic_extra_provided_contracts', 'pcontest1,pcontest11'),
('apic_extra_consumed_contracts', 'contest1,contest11'), ('apic_extra_consumed_contracts', 'contest1,contest11'),
('apic_policy_enforcement_pref', 'enforced'),
] ]
set_ext = network_ext.SetNetworkExtension(self.app) set_ext = network_ext.SetNetworkExtension(self.app)
parsed_args = self.check_parser_ext( parsed_args = self.check_parser_ext(
@@ -222,6 +229,7 @@ class TestNetworkSet(test_network.TestNetwork, test_cli20.CLITestV20Base):
'apic:nested_domain_infra_vlan': '2', 'apic:nested_domain_infra_vlan': '2',
'apic:nested_domain_node_network_vlan': '5', 'apic:nested_domain_node_network_vlan': '5',
'apic:nested_domain_service_vlan': '4', 'apic:nested_domain_service_vlan': '4',
'apic:policy_enforcement_pref': 'enforced',
} }
self.network.update_network.assert_called_once_with( self.network.update_network.assert_called_once_with(