Add DHCP Config build and T1 Adv Rule Update
- Expose Building DHCP Config V4 and V6 in NsxPolicyTier1SegmentApi - Update update_advertisement_rules to allow batch removal of existings rules via prefix matching even if no new rules are to be added Change-Id: I215630fb2af41d71431774d88129c08c4aeac904
This commit is contained in:
parent
921bab44f8
commit
a8732a94af
@ -3414,6 +3414,30 @@ class TestPolicyTier1(NsxPolicyLibTestCase):
|
|||||||
tenant=TEST_TENANT)
|
tenant=TEST_TENANT)
|
||||||
self.assert_called_with_def(api_call, expected_def)
|
self.assert_called_with_def(api_call, expected_def)
|
||||||
|
|
||||||
|
def test_update_advertisement_rules_remove(self):
|
||||||
|
tier1_id = '111'
|
||||||
|
old_rule1 = 'old1'
|
||||||
|
old_rule2 = 'old2'
|
||||||
|
get_retval = {
|
||||||
|
'id': tier1_id,
|
||||||
|
'route_advertisement_rules': [
|
||||||
|
{'name': old_rule1},
|
||||||
|
{'name': old_rule2}]}
|
||||||
|
with mock.patch.object(self.policy_api,
|
||||||
|
"get",
|
||||||
|
return_value=get_retval),\
|
||||||
|
mock.patch.object(self.policy_api,
|
||||||
|
'create_or_update') as api_call:
|
||||||
|
self.resourceApi.update_advertisement_rules(
|
||||||
|
tier1_id, None, name_prefix='old1', tenant=TEST_TENANT)
|
||||||
|
|
||||||
|
expected_def = core_defs.Tier1Def(
|
||||||
|
tier1_id=tier1_id,
|
||||||
|
route_advertisement_rules=[
|
||||||
|
{'name': old_rule2}],
|
||||||
|
tenant=TEST_TENANT)
|
||||||
|
self.assert_called_with_def(api_call, expected_def)
|
||||||
|
|
||||||
def test_create_with_unsupported_attr(self):
|
def test_create_with_unsupported_attr(self):
|
||||||
name = 'test'
|
name = 'test'
|
||||||
description = 'test_version_support'
|
description = 'test_version_support'
|
||||||
@ -4084,6 +4108,26 @@ class TestPolicyTier1Segment(NsxPolicyLibTestCase):
|
|||||||
self.assertEqual(gateway_address, subnet.gateway_address)
|
self.assertEqual(gateway_address, subnet.gateway_address)
|
||||||
self.assertEqual(dhcp_ranges, subnet.dhcp_ranges)
|
self.assertEqual(dhcp_ranges, subnet.dhcp_ranges)
|
||||||
|
|
||||||
|
def test_build_dhcp_config_v4(self):
|
||||||
|
server_address = "10.0.0.2/24"
|
||||||
|
dns_servers = ["10.0.0.3/24"]
|
||||||
|
lease_time = 36600
|
||||||
|
dhcp_config_v4 = self.resourceApi.build_dhcp_config_v4(
|
||||||
|
server_address, dns_servers=dns_servers, lease_time=lease_time)
|
||||||
|
self.assertEqual(server_address, dhcp_config_v4.server_address)
|
||||||
|
self.assertEqual(dns_servers, dhcp_config_v4.dns_servers)
|
||||||
|
self.assertEqual(lease_time, dhcp_config_v4.lease_time)
|
||||||
|
|
||||||
|
def test_build_dhcp_config_v6(self):
|
||||||
|
server_address = "2000::01ab/64"
|
||||||
|
dns_servers = ["2000::01ac/64"]
|
||||||
|
lease_time = 36600
|
||||||
|
dhcp_config_v6 = self.resourceApi.build_dhcp_config_v6(
|
||||||
|
server_address, dns_servers=dns_servers, lease_time=lease_time)
|
||||||
|
self.assertEqual(server_address, dhcp_config_v6.server_address)
|
||||||
|
self.assertEqual(dns_servers, dhcp_config_v6.dns_servers)
|
||||||
|
self.assertEqual(lease_time, dhcp_config_v6.lease_time)
|
||||||
|
|
||||||
|
|
||||||
class TestPolicySegment(NsxPolicyLibTestCase):
|
class TestPolicySegment(NsxPolicyLibTestCase):
|
||||||
|
|
||||||
|
@ -1129,7 +1129,8 @@ class NsxPolicyTier1Api(NsxPolicyResourceBase):
|
|||||||
route_advertisement_types=route_advertisement_types,
|
route_advertisement_types=route_advertisement_types,
|
||||||
subnets=subnets)
|
subnets=subnets)
|
||||||
|
|
||||||
def update_advertisement_rules(self, tier1_id, rules, name_prefix=None,
|
def update_advertisement_rules(self, tier1_id, rules=None,
|
||||||
|
name_prefix=None,
|
||||||
tenant=constants.POLICY_INFRA_TENANT):
|
tenant=constants.POLICY_INFRA_TENANT):
|
||||||
"""Update the router advertisement rules
|
"""Update the router advertisement rules
|
||||||
|
|
||||||
@ -1147,7 +1148,8 @@ class NsxPolicyTier1Api(NsxPolicyResourceBase):
|
|||||||
if (not rule.get('name') or
|
if (not rule.get('name') or
|
||||||
not rule['name'].startswith(name_prefix)):
|
not rule['name'].startswith(name_prefix)):
|
||||||
new_rules.append(rule)
|
new_rules.append(rule)
|
||||||
# add new rules
|
# add new rules if provided
|
||||||
|
if rules:
|
||||||
new_rules.extend(rules)
|
new_rules.extend(rules)
|
||||||
else:
|
else:
|
||||||
new_rules = rules
|
new_rules = rules
|
||||||
@ -1856,8 +1858,19 @@ class NsxPolicyTier1SegmentApi(NsxPolicyResourceBase):
|
|||||||
def entry_def(self):
|
def entry_def(self):
|
||||||
return core_defs.Tier1SegmentDef
|
return core_defs.Tier1SegmentDef
|
||||||
|
|
||||||
def build_subnet(self, gateway_address, dhcp_ranges=None):
|
def build_subnet(self, gateway_address, dhcp_ranges=None,
|
||||||
return core_defs.Subnet(gateway_address, dhcp_ranges)
|
dhcp_config=None):
|
||||||
|
return core_defs.Subnet(gateway_address, dhcp_ranges, dhcp_config)
|
||||||
|
|
||||||
|
def build_dhcp_config_v4(self, server_address, dns_servers=None,
|
||||||
|
lease_time=None, options=None):
|
||||||
|
return core_defs.SegmentDhcpConfigV4(server_address, dns_servers,
|
||||||
|
lease_time, options)
|
||||||
|
|
||||||
|
def build_dhcp_config_v6(self, server_address, dns_servers=None,
|
||||||
|
lease_time=None, domain_names=None):
|
||||||
|
return core_defs.SegmentDhcpConfigV6(server_address, dns_servers,
|
||||||
|
lease_time, domain_names)
|
||||||
|
|
||||||
def create_or_overwrite(self, name, tier1_id,
|
def create_or_overwrite(self, name, tier1_id,
|
||||||
segment_id=None,
|
segment_id=None,
|
||||||
@ -1935,8 +1948,19 @@ class NsxPolicySegmentApi(NsxPolicyResourceBase):
|
|||||||
def entry_def(self):
|
def entry_def(self):
|
||||||
return core_defs.SegmentDef
|
return core_defs.SegmentDef
|
||||||
|
|
||||||
def build_subnet(self, gateway_address, dhcp_ranges=None):
|
def build_subnet(self, gateway_address, dhcp_ranges=None,
|
||||||
return core_defs.Subnet(gateway_address, dhcp_ranges)
|
dhcp_config=None):
|
||||||
|
return core_defs.Subnet(gateway_address, dhcp_ranges, dhcp_config)
|
||||||
|
|
||||||
|
def build_dhcp_config_v4(self, server_address, dns_servers=None,
|
||||||
|
lease_time=None, options=None):
|
||||||
|
return core_defs.SegmentDhcpConfigV4(server_address, dns_servers,
|
||||||
|
lease_time, options)
|
||||||
|
|
||||||
|
def build_dhcp_config_v6(self, server_address, dns_servers=None,
|
||||||
|
lease_time=None, domain_names=None):
|
||||||
|
return core_defs.SegmentDhcpConfigV6(server_address, dns_servers,
|
||||||
|
lease_time, domain_names)
|
||||||
|
|
||||||
def create_or_overwrite(self, name,
|
def create_or_overwrite(self, name,
|
||||||
segment_id=None,
|
segment_id=None,
|
||||||
|
Loading…
Reference in New Issue
Block a user