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
This commit is contained in:
@@ -13,19 +13,25 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
|
||||||
from cinderclient.tests.unit import utils
|
from cinderclient.tests.unit import utils
|
||||||
from cinderclient.tests.unit.v3 import fakes
|
from cinderclient.tests.unit.v3 import fakes
|
||||||
|
from cinderclient import api_versions
|
||||||
cs = fakes.FakeClient()
|
from cinderclient import exceptions as exc
|
||||||
|
|
||||||
|
|
||||||
class VolumesTest(utils.TestCase):
|
class VolumesTest(utils.TestCase):
|
||||||
|
|
||||||
def test_update(self):
|
def test_update(self):
|
||||||
|
cs = fakes.FakeClient(api_version=api_versions.APIVersion('3.9'))
|
||||||
b = cs.backups.get('1234')
|
b = cs.backups.get('1234')
|
||||||
backup = b.update(name='new-name')
|
backup = b.update(name='new-name')
|
||||||
cs.assert_called(
|
cs.assert_called(
|
||||||
'PUT', '/backups/1234',
|
'PUT', '/backups/1234',
|
||||||
{'backup': {'name': 'new-name'}})
|
{'backup': {'name': 'new-name'}})
|
||||||
self._assert_request_id(backup)
|
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')
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
"""
|
"""
|
||||||
Volume Backups interface (v3 extension).
|
Volume Backups interface (v3 extension).
|
||||||
"""
|
"""
|
||||||
|
from cinderclient import api_versions
|
||||||
from cinderclient import base
|
from cinderclient import base
|
||||||
from cinderclient.openstack.common.apiclient import base as common_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)
|
resp, body = self.api.client.post("/backups/import_record", body=body)
|
||||||
return common_base.DictWithMeta(body['backup'], resp)
|
return common_base.DictWithMeta(body['backup'], resp)
|
||||||
|
|
||||||
|
@api_versions.wraps("3.9")
|
||||||
def update(self, backup, **kwargs):
|
def update(self, backup, **kwargs):
|
||||||
"""Update the name or description for a backup.
|
"""Update the name or description for a backup.
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user