Ensure service when creating T1 service interface

Locale service may not be present, in which case policy returns
an error.

Change-Id: Icf4c35130e4302852c8a8dedc05da88e6ebbdf9c
This commit is contained in:
Anna Khmelnitsky 2019-04-10 11:33:15 -07:00
parent c07abaa9a9
commit e58845debd
2 changed files with 17 additions and 1 deletions

View File

@ -2647,6 +2647,11 @@ class TestPolicyTier1(NsxPolicyLibTestCase):
ipv6_ndra_profile_id=ndra_profile,
tenant=TEST_TENANT)
verify_def = core_defs.Tier1LocaleServiceDef(
tier1_id=tier1_id,
service_id=self.resourceApi._locale_service_id(tier1_id),
tenant=TEST_TENANT)
expected_def = core_defs.Tier1InterfaceDef(
tier1_id=tier1_id,
service_id=self.resourceApi._locale_service_id(tier1_id),
@ -2656,7 +2661,8 @@ class TestPolicyTier1(NsxPolicyLibTestCase):
ipv6_ndra_profile_id=ndra_profile,
tenant=TEST_TENANT)
self.assert_called_with_def(api_call, expected_def)
self.assert_called_with_def(api_call, verify_def)
self.assert_called_with_def(api_call, expected_def, 1)
def test_remove_router_interface(self):
tier1_id = '111'

View File

@ -940,6 +940,14 @@ class NsxPolicyTier1Api(NsxPolicyResourceBase):
# with the same id as the router id with a constant suffix
return tier1_id + self.LOCALE_SERVICE_SUFF
def _ensure_locale_service(self, tier1_id,
tenant=constants.POLICY_INFRA_TENANT):
t1service_def = core_defs.Tier1LocaleServiceDef(
tier1_id=tier1_id,
service_id=self._locale_service_id(tier1_id),
tenant=tenant)
self.policy_api.create_or_update(t1service_def)
def set_edge_cluster_path(self, tier1_id, edge_cluster_path,
tenant=constants.POLICY_INFRA_TENANT):
t1service_def = core_defs.Tier1LocaleServiceDef(
@ -972,6 +980,8 @@ class NsxPolicyTier1Api(NsxPolicyResourceBase):
def add_segment_interface(self, tier1_id, interface_id, segment_id,
subnets, ipv6_ndra_profile_id=IGNORE,
tenant=constants.POLICY_INFRA_TENANT):
self._ensure_locale_service(tier1_id, tenant)
t1interface_def = core_defs.Tier1InterfaceDef(
tier1_id=tier1_id,
service_id=self._locale_service_id(tier1_id),