summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCao Shufeng <caosf.fnst@cn.fujitsu.com>2016-08-30 07:38:14 -0400
committerCao Shufeng <caosf.fnst@cn.fujitsu.com>2016-08-30 08:27:12 -0400
commit654f71208b3a270df0c7c9d66e2f90d3ecc4c162 (patch)
tree026c5edc8cd35fad61e9166fd17a1684450209ab
parent4f794410f1912090b85ec6332ea82feca8b60634 (diff)
downloadpython-cinderclient-654f71208b3a270df0c7c9d66e2f90d3ecc4c162.tar.gz
Wrap volume_backup's update function with api_version
Volume backup's update function only supports 3.9 microversion or higher. So it should be wrapped like like this one[1], otherwise these fuctions may be exposed to lib users with old microversion. [1]: https://github.com/openstack/python-cinderclient/blob/master/cinderclient/v3/services.py#L82 Change-Id: I2c800099e8ae707135417f9821f14d1a9e69586e
-rw-r--r--cinderclient/tests/unit/v3/test_volume_backups.py12
-rw-r--r--cinderclient/v3/volume_backups.py2
2 files changed, 11 insertions, 3 deletions
diff --git a/cinderclient/tests/unit/v3/test_volume_backups.py b/cinderclient/tests/unit/v3/test_volume_backups.py
index 3cbbc72..52e843f 100644
--- a/cinderclient/tests/unit/v3/test_volume_backups.py
+++ b/cinderclient/tests/unit/v3/test_volume_backups.py
@@ -13,19 +13,25 @@
# License for the specific language governing permissions and limitations
# under the License.
-
from cinderclient.tests.unit import utils
from cinderclient.tests.unit.v3 import fakes
-
-cs = fakes.FakeClient()
+from cinderclient import api_versions
+from cinderclient import exceptions as exc
class VolumesTest(utils.TestCase):
def test_update(self):
+ cs = fakes.FakeClient(api_version=api_versions.APIVersion('3.9'))
b = cs.backups.get('1234')
backup = b.update(name='new-name')
cs.assert_called(
'PUT', '/backups/1234',
{'backup': {'name': 'new-name'}})
self._assert_request_id(backup)
+
+ def test_pre_version(self):
+ cs = fakes.FakeClient(api_version=api_versions.APIVersion('3.8'))
+ b = cs.backups.get('1234')
+ self.assertRaises(exc.VersionNotFoundForAPIMethod,
+ b.update, name='new-name')
diff --git a/cinderclient/v3/volume_backups.py b/cinderclient/v3/volume_backups.py
index 9a5aa5c..5698789 100644
--- a/cinderclient/v3/volume_backups.py
+++ b/cinderclient/v3/volume_backups.py
@@ -16,6 +16,7 @@
"""
Volume Backups interface (v3 extension).
"""
+from cinderclient import api_versions
from cinderclient import base
from cinderclient.openstack.common.apiclient import base as common_base
@@ -131,6 +132,7 @@ class VolumeBackupManager(base.ManagerWithFind):
resp, body = self.api.client.post("/backups/import_record", body=body)
return common_base.DictWithMeta(body['backup'], resp)
+ @api_versions.wraps("3.9")
def update(self, backup, **kwargs):
"""Update the name or description for a backup.