diff --git a/vmware_nsxlib/tests/unit/v3/policy/test_resources.py b/vmware_nsxlib/tests/unit/v3/policy/test_resources.py index 32d75af3..997678ef 100644 --- a/vmware_nsxlib/tests/unit/v3/policy/test_resources.py +++ b/vmware_nsxlib/tests/unit/v3/policy/test_resources.py @@ -4186,7 +4186,7 @@ class TestPolicySegment(NsxPolicyLibTestCase): def _test_create(self, tier1_id=None, tier0_id=None, mdproxy=None, dhcp_server=None, admin_state=None, ip_pool_id='external-ip-pool', ls_id=None, - unique_id=None): + unique_id=None, tz_id=None, ep_id=None): name = 'test' description = 'desc' subnets = [core_defs.Subnet(gateway_address="2.2.2.0/24")] @@ -4213,6 +4213,11 @@ class TestPolicySegment(NsxPolicyLibTestCase): if unique_id: kwargs['unique_id'] = unique_id + if tz_id: + kwargs['transport_zone_id'] = tz_id + if ep_id: + kwargs['ep_id'] = ep_id + with mock.patch.object(self.policy_api, "create_or_update") as api_call: result = self.resourceApi.create_or_overwrite(name, **kwargs) @@ -4269,6 +4274,12 @@ class TestPolicySegment(NsxPolicyLibTestCase): def test_create_with_unique_id(self): self._test_create(unique_id='lsid1') + def test_create_with_transport_zone_id(self): + self._test_create(tz_id='tz_id1', ep_id='ep_id1') + + def test_create_with_transport_zone_id_and_default_ep(self): + self._test_create(tz_id='tz_id1') + def test_delete(self): segment_id = '111' with mock.patch.object(self.policy_api, "delete") as api_call: diff --git a/vmware_nsxlib/v3/policy/core_defs.py b/vmware_nsxlib/v3/policy/core_defs.py index 6b03a911..1f691c9f 100644 --- a/vmware_nsxlib/v3/policy/core_defs.py +++ b/vmware_nsxlib/v3/policy/core_defs.py @@ -995,7 +995,8 @@ class SegmentDef(BaseSegmentDef): if self.get_attr('transport_zone_id'): tz = TransportZoneDef( tz_id=self.get_attr('transport_zone_id'), - ep_id=constants.DEFAULT_ENFORCEMENT_POINT, + ep_id=self.get_attr( + 'ep_id') or constants.DEFAULT_ENFORCEMENT_POINT, tenant=self.get_tenant()) path = tz.get_resource_full_path() self._set_attr_if_specified(body, 'transport_zone_id', diff --git a/vmware_nsxlib/v3/policy/core_resources.py b/vmware_nsxlib/v3/policy/core_resources.py index d4143d14..5e23310f 100644 --- a/vmware_nsxlib/v3/policy/core_resources.py +++ b/vmware_nsxlib/v3/policy/core_resources.py @@ -1982,6 +1982,7 @@ class NsxPolicySegmentApi(NsxPolicyResourceBase): admin_state=IGNORE, ls_id=IGNORE, unique_id=IGNORE, + ep_id=IGNORE, tags=IGNORE, tenant=constants.POLICY_INFRA_TENANT): @@ -2007,6 +2008,7 @@ class NsxPolicySegmentApi(NsxPolicyResourceBase): admin_state=admin_state, ls_id=ls_id, unique_id=unique_id, + ep_id=ep_id, tags=tags, tenant=tenant) self._create_or_store(segment_def)