diff --git a/vmware_nsxlib/tests/unit/v3/policy/test_lb_resources.py b/vmware_nsxlib/tests/unit/v3/policy/test_lb_resources.py index 9f73bee6..ce91f120 100644 --- a/vmware_nsxlib/tests/unit/v3/policy/test_lb_resources.py +++ b/vmware_nsxlib/tests/unit/v3/policy/test_lb_resources.py @@ -638,6 +638,35 @@ class TestPolicyLBService(test_resources.NsxPolicyLibTestCase): connectivity_path=connectivity_path) self.assert_called_with_def(update_call, expected_def) + def test_get_status(self): + obj_id = '111' + with mock.patch.object(self.policy_api, "get") as api_call: + self.resourceApi.get_status(obj_id, tenant=TEST_TENANT) + expected_def = lb_defs.LBServiceStatusDef( + lb_service_id=obj_id, + tenant=TEST_TENANT) + self.assert_called_with_def(api_call, expected_def) + + def test_get_statistics(self): + obj_id = '111' + with mock.patch.object(self.policy_api, "get") as api_call: + self.resourceApi.get_statistics(obj_id, tenant=TEST_TENANT) + expected_def = lb_defs.LBServiceStatisticsDef( + lb_service_id=obj_id, + tenant=TEST_TENANT) + self.assert_called_with_def(api_call, expected_def) + + def test_get_virtual_server_status(self): + obj_id = '111' + vs_id = '222' + with mock.patch.object(self.policy_api, "get") as api_call: + self.resourceApi.get_virtual_server_status( + obj_id, vs_id, tenant=TEST_TENANT) + expected_def = lb_defs.LBVirtualServerStatusDef( + lb_service_id=obj_id, + tenant=TEST_TENANT) + self.assert_called_with_def(api_call, expected_def) + class TestPolicyLBVirtualServer(test_resources.NsxPolicyLibTestCase): diff --git a/vmware_nsxlib/v3/policy/lb_defs.py b/vmware_nsxlib/v3/policy/lb_defs.py index 6b8d6e04..a3d2573b 100644 --- a/vmware_nsxlib/v3/policy/lb_defs.py +++ b/vmware_nsxlib/v3/policy/lb_defs.py @@ -393,6 +393,17 @@ class LBServiceStatisticsDef(ResourceDef): return ('tenant', 'lb_service_id', '') +class LBServiceStatusDef(ResourceDef): + + @property + def path_pattern(self): + return LB_SERVICES_PATH_PATTERN + '%s/detailed-status/' + + @property + def path_ids(self): + return ('tenant', 'lb_service_id', '') + + class LBServiceUsageDef(ResourceDef): @property @@ -404,6 +415,18 @@ class LBServiceUsageDef(ResourceDef): return ('tenant', 'lb_service_id', '') +class LBVirtualServerStatusDef(ResourceDef): + + @property + def path_pattern(self): + return (LB_SERVICES_PATH_PATTERN + + '%s/lb-virtual-servers/%s/detailed-status/') + + @property + def path_ids(self): + return ('tenant', 'lb_service_id', 'lb_virtual_server_id', '') + + class LBMonitorProfileBaseDef(ResourceDef): addl_attrs = ['interval', 'timeout', 'fall_count', 'rise_count'] diff --git a/vmware_nsxlib/v3/policy/lb_resources.py b/vmware_nsxlib/v3/policy/lb_resources.py index 5818c1c4..0a69095d 100644 --- a/vmware_nsxlib/v3/policy/lb_resources.py +++ b/vmware_nsxlib/v3/policy/lb_resources.py @@ -585,13 +585,31 @@ class NsxPolicyLoadBalancerServiceApi(NsxPolicyResourceBase): connectivity_path=connectivity_path, tenant=tenant) - def get_status(self, lb_service_id): - lb_service_status_def = ( + def get_statistics(self, lb_service_id, + tenant=constants.POLICY_INFRA_TENANT): + lb_service_stats_def = ( lb_defs.LBServiceStatisticsDef( lb_service_id=lb_service_id, - tenant=constants.POLICY_INFRA_TENANT)) + tenant=tenant)) + return self.policy_api.get(lb_service_stats_def) + + def get_status(self, lb_service_id, + tenant=constants.POLICY_INFRA_TENANT): + lb_service_status_def = ( + lb_defs.LBServiceStatusDef( + lb_service_id=lb_service_id, + tenant=tenant)) return self.policy_api.get(lb_service_status_def) + def get_virtual_server_status(self, lb_service_id, lb_virtual_server_id, + tenant=constants.POLICY_INFRA_TENANT): + lb_vs_status_def = ( + lb_defs.LBVirtualServerStatusDef( + lb_service_id=lb_service_id, + lb_virtual_server_id=lb_virtual_server_id, + tenant=tenant)) + return self.policy_api.get(lb_vs_status_def) + def get_usage(self, lb_service_id): lb_service_status_def = lb_defs.LBServiceUsageDef( lb_service_id=lb_service_id,