Add policy Edge Cluster resource

Change-Id: Ie302a242af96d8512799e2c525e5fae6a13bf980
This commit is contained in:
Adit Sarfaty 2019-01-08 12:30:50 +02:00
parent 1d5334ab39
commit 1adf6670a7
5 changed files with 110 additions and 1 deletions

View File

@ -292,6 +292,15 @@ class TestPolicyTransportZone(policy_testcase.TestPolicyApi):
self.assert_json_call('GET', self.client, tz_path)
class TestPolicyEdgeCluster(policy_testcase.TestPolicyApi):
def test_get(self):
ec_def = policy.EdgeClusterDef(ec_id='ec1', ep_id='default')
self.policy_api.get(ec_def)
ec_path = ec_def.get_resource_path()
self.assert_json_call('GET', self.client, ec_path)
class TestPolicyDeploymentMap(policy_testcase.TestPolicyApi):
def test_create(self):

View File

@ -1708,6 +1708,37 @@ class TestPolicyTransportZone(NsxPolicyLibTestCase):
self.assert_called_with_def(api_call, expected_def)
class TestPolicyEdgeCluster(NsxPolicyLibTestCase):
def setUp(self, *args, **kwargs):
super(TestPolicyEdgeCluster, self).setUp()
self.resourceApi = self.policy_lib.edge_cluster
def test_get(self):
id = '111'
with mock.patch.object(self.policy_api, "get") as api_call:
self.resourceApi.get(id, tenant=TEST_TENANT)
expected_def = core_defs.EdgeClusterDef(ec_id=id,
tenant=TEST_TENANT)
self.assert_called_with_def(api_call, expected_def)
def test_get_by_name(self):
name = 'tz1'
with mock.patch.object(
self.policy_api, "list",
return_value={'results': [{'display_name': name}]}) as api_call:
obj = self.resourceApi.get_by_name(name, tenant=TEST_TENANT)
self.assertIsNotNone(obj)
expected_def = core_defs.EdgeClusterDef(tenant=TEST_TENANT)
self.assert_called_with_def(api_call, expected_def)
def test_list(self):
with mock.patch.object(self.policy_api, "list") as api_call:
self.resourceApi.list(tenant=TEST_TENANT)
expected_def = core_defs.EdgeClusterDef(tenant=TEST_TENANT)
self.assert_called_with_def(api_call, expected_def)
class TestPolicyTier1(NsxPolicyLibTestCase):
def setUp(self, *args, **kwargs):

View File

@ -76,6 +76,8 @@ class NsxPolicyLib(lib.NsxLibBase):
*args)
self.transport_zone = core_resources.NsxPolicyTransportZoneApi(
*args)
self.edge_cluster = core_resources.NsxPolicyEdgeClusterApi(
*args)
self.deployment_map = core_resources.NsxPolicyDeploymentMapApi(
*args)
self.ip_block = core_resources.NsxPolicyIpBlockApi(*args)

View File

@ -1177,6 +1177,25 @@ class TransportZoneDef(ResourceDef):
return True
class EdgeClusterDef(ResourceDef):
@property
def path_pattern(self):
return EDGE_CLUSTER_PATTERN
@property
def path_ids(self):
return ('tenant', 'ep_id', 'ec_id')
@staticmethod
def resource_type():
return 'PolicyEdgeCluster'
@staticmethod
def resource_use_cache():
return True
# Currently assumes one deployment point per id
class DeploymentMapDef(ResourceDef):

View File

@ -2343,7 +2343,6 @@ class NsxPolicyEnforcementPointApi(NsxPolicyResourceBase):
class NsxPolicyTransportZoneApi(NsxPolicyResourceBase):
"""NSX Policy Enforcement Point."""
TZ_TYPE_OVERLAY = 'OVERLAY_STANDARD'
TZ_TYPE_ENS = 'OVERLAY_ENS'
@ -2416,6 +2415,55 @@ class NsxPolicyTransportZoneApi(NsxPolicyResourceBase):
raise exceptions.ManagerError(details=err_msg)
class NsxPolicyEdgeClusterApi(NsxPolicyResourceBase):
@property
def entry_def(self):
return core_defs.EdgeClusterDef
def get(self, ec_id, ep_id=constants.DEFAULT_ENFORCEMENT_POINT,
tenant=constants.POLICY_INFRA_TENANT, silent=False):
ec_def = core_defs.EdgeClusterDef(
ep_id=ep_id, ec_id=ec_id, tenant=tenant)
return self.policy_api.get(ec_def, silent=silent)
def list(self, ep_id=constants.DEFAULT_ENFORCEMENT_POINT,
tenant=constants.POLICY_INFRA_TENANT):
ec_def = core_defs.EdgeClusterDef(ep_id=ep_id, tenant=tenant)
return self._list(ec_def)
def get_by_name(self, name,
ep_id=constants.DEFAULT_ENFORCEMENT_POINT,
tenant=constants.POLICY_INFRA_TENANT):
"""Return first group matched by name"""
return super(NsxPolicyEdgeClusterApi, self).get_by_name(
name, ep_id, tenant=tenant)
def create_or_overwrite(self, name, ec_id=None,
ep_id=constants.DEFAULT_ENFORCEMENT_POINT,
tenant=constants.POLICY_INFRA_TENANT):
err_msg = (_("This action is not supported"))
raise exceptions.ManagerError(details=err_msg)
def update(self, ec_id,
ep_id=constants.DEFAULT_ENFORCEMENT_POINT,
tenant=constants.POLICY_INFRA_TENANT):
err_msg = (_("This action is not supported"))
raise exceptions.ManagerError(details=err_msg)
def delete(self, ec_id,
ep_id=constants.DEFAULT_ENFORCEMENT_POINT,
tenant=constants.POLICY_INFRA_TENANT):
err_msg = (_("This action is not supported"))
raise exceptions.ManagerError(details=err_msg)
def get_path(self, ec_id,
ep_id=constants.DEFAULT_ENFORCEMENT_POINT,
tenant=constants.POLICY_INFRA_TENANT):
ec_def = core_defs.EdgeClusterDef(
ep_id=ep_id, ec_id=ec_id, tenant=tenant)
return ec_def.get_resource_full_path()
class NsxPolicyDeploymentMapApi(NsxPolicyResourceBase):
"""NSX Policy Deployment Map."""
@property