From d60a07a350fb6f960d6103a04e415db1ebd26f58 Mon Sep 17 00:00:00 2001 From: Adit Sarfaty Date: Sun, 12 Aug 2018 14:33:15 +0300 Subject: [PATCH] New api for getting VPN session status Change-Id: I6da60f1eed6bbcfedd2f33239b4a6c51cda53b01 --- vmware_nsxlib/tests/unit/v3/test_vpn_ipsec.py | 10 ++++++++++ vmware_nsxlib/v3/vpn_ipsec.py | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/vmware_nsxlib/tests/unit/v3/test_vpn_ipsec.py b/vmware_nsxlib/tests/unit/v3/test_vpn_ipsec.py index 5dd445f6..9a75508e 100644 --- a/vmware_nsxlib/tests/unit/v3/test_vpn_ipsec.py +++ b/vmware_nsxlib/tests/unit/v3/test_vpn_ipsec.py @@ -325,6 +325,16 @@ class TestSession(test_resources.BaseTestResource): data=jsonutils.dumps(fake_sess, sort_keys=True), headers=self.default_headers()) + def test_session_get_status(self): + uuid = test_constants.FAKE_VPN_SESS_ID + mocked_resource = self.get_mocked_resource() + mocked_resource.get_status(uuid) + test_client.assert_json_call( + 'get', mocked_resource, + 'https://1.2.3.4/api/v1/%s/%s/status?source=realtime' % ( + mocked_resource.uri_segment, uuid), + headers=self.default_headers()) + class TestService(test_resources.BaseTestResource): diff --git a/vmware_nsxlib/v3/vpn_ipsec.py b/vmware_nsxlib/v3/vpn_ipsec.py index 78348c79..2175d007 100644 --- a/vmware_nsxlib/v3/vpn_ipsec.py +++ b/vmware_nsxlib/v3/vpn_ipsec.py @@ -401,6 +401,14 @@ class Session(utils.NsxLibApiBase): body['enabled'] = enabled return self.client.update(self.get_path(uuid), body=body) + def get_status(self, uuid, source='realtime'): + try: + return self.client.get( + self.get_path(uuid + '/status?source=%s' % source)) + except Exception as e: + LOG.warning("No status found for session %s: %s", uuid, e) + return + class Service(utils.NsxLibApiBase):