From d466ea1e17e645a4bb3bc22915d8492a30e4a2ec Mon Sep 17 00:00:00 2001 From: Ran Gu Date: Thu, 7 Nov 2019 14:38:53 +0800 Subject: [PATCH] Support get_restore_status in cluster_management get_restore_status is a cluster management API to get the restore status of NSXT. Change-Id: Ie38dee4218f508e6ba5fafd9d42c533b01e387cc --- .../tests/unit/v3/test_cluster_management.py | 28 +++++++++++++++++++ vmware_nsxlib/v3/__init__.py | 3 ++ vmware_nsxlib/v3/cluster_management.py | 26 +++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 vmware_nsxlib/tests/unit/v3/test_cluster_management.py create mode 100644 vmware_nsxlib/v3/cluster_management.py diff --git a/vmware_nsxlib/tests/unit/v3/test_cluster_management.py b/vmware_nsxlib/tests/unit/v3/test_cluster_management.py new file mode 100644 index 00000000..369a989f --- /dev/null +++ b/vmware_nsxlib/tests/unit/v3/test_cluster_management.py @@ -0,0 +1,28 @@ +# Copyright 2019 VMware, Inc. +# All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +import mock + +from vmware_nsxlib.tests.unit.v3 import nsxlib_testcase + + +class TestNsxLibClusterManagement(nsxlib_testcase.NsxClientTestCase): + + def test_get_restore_status(self): + cluster_api = self.nsxlib.cluster_management + with mock.patch.object(self.nsxlib.client, 'get') as get: + cluster_api.get_restore_status() + get.assert_called_with('cluster/restore/status') diff --git a/vmware_nsxlib/v3/__init__.py b/vmware_nsxlib/v3/__init__.py index 811a3481..c554803e 100644 --- a/vmware_nsxlib/v3/__init__.py +++ b/vmware_nsxlib/v3/__init__.py @@ -19,6 +19,7 @@ from oslo_log import log from vmware_nsxlib._i18n import _ from vmware_nsxlib.v3 import client +from vmware_nsxlib.v3 import cluster_management from vmware_nsxlib.v3 import core_resources from vmware_nsxlib.v3 import exceptions from vmware_nsxlib.v3 import lib @@ -110,6 +111,8 @@ class NsxLib(lib.NsxLibBase): self.client, self.nsxlib_config, nsxlib=self) self.host_switch_profiles = resources.NsxlibHostSwitchProfiles( self.client, self.nsxlib_config, nsxlib=self) + self.cluster_management = cluster_management.NsxLibClusterManagement( + self.client, self.nsxlib_config) # Update tag limits self.tag_limits = self.get_tag_limits() diff --git a/vmware_nsxlib/v3/cluster_management.py b/vmware_nsxlib/v3/cluster_management.py new file mode 100644 index 00000000..3de12112 --- /dev/null +++ b/vmware_nsxlib/v3/cluster_management.py @@ -0,0 +1,26 @@ +# Copyright 2019 VMware, Inc. +# All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from vmware_nsxlib.v3 import utils + +BASE_SECTION = 'cluster' +RESTORE_SECTION = BASE_SECTION + '/restore' + + +class NsxLibClusterManagement(utils.NsxLibApiBase): + + def get_restore_status(self): + resource = RESTORE_SECTION + '/status' + return self.client.get(resource)