
Manager's api_version property is used by api_version.wraps. It should not be an "empty" class and the real api_version can be read from Client class. The 3.0 version's upload-to-image doesn't work as excepted because of this useless api_version of VolumeManager class. This patch also fix it and update some unit tests for it, because the changes are co-dependent on one another. Co-Authored-By: Nate Potter <nathaniel.potter@intel.com> Change-Id: I398cbd02b61f30918a427291d1d3ae00435e0f4c Closes-Bug: #1573414 Closes-Bug: #1589040
43 lines
1.7 KiB
Python
43 lines
1.7 KiB
Python
# Copyright 2016 FUJITSU LIMITED
|
|
#
|
|
# 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 cinderclient import api_versions
|
|
from cinderclient.tests.unit import utils
|
|
from cinderclient.tests.unit.v3 import fakes
|
|
from cinderclient.v3.volumes import Volume
|
|
from cinderclient.v3.volumes import VolumeManager
|
|
|
|
|
|
class VolumesTest(utils.TestCase):
|
|
|
|
def test_volume_manager_upload_to_image(self):
|
|
expected = {'os-volume_upload_image':
|
|
{'force': False,
|
|
'container_format': 'bare',
|
|
'disk_format': 'raw',
|
|
'image_name': 'name',
|
|
'visibility': 'public',
|
|
'protected': True}}
|
|
api_version = api_versions.APIVersion('3.1')
|
|
cs = fakes.FakeClient(api_version)
|
|
manager = VolumeManager(cs)
|
|
fake_volume = Volume(manager, {'id': 1234,
|
|
'name': 'sample-volume'},
|
|
loaded=True)
|
|
fake_volume.upload_to_image(False, 'name', 'bare', 'raw',
|
|
visibility='public', protected=True)
|
|
cs.assert_called_anytime('POST', '/volumes/1234/action', body=expected)
|