Add the argument image into create_and_upload_volume_to_image

I think it is better to add the argument image to create_and_upload_volume_to_image.
Now possibly upload a empty volume to image, it is meaningless to the business.

Closes-Bug: #1582117
Change-Id: Ie10d17a422fb5b1635dd8d6d7e235e7327843f17
This commit is contained in:
chenhb-zte 2016-05-17 10:28:49 -04:00
parent 1b5980eed6
commit 5825265698
5 changed files with 31 additions and 9 deletions

View File

@ -480,6 +480,8 @@
-
args:
size: 1
image:
name: {{image_name}}
runner:
type: "constant"
times: 1
@ -498,6 +500,8 @@
args:
size: 1
volume_type: test
image:
name: {{image_name}}
runner:
type: "constant"
times: 1

View File

@ -433,11 +433,12 @@ class CinderVolumes(cinder_utils.CinderScenario,
self._create_snapshot(volume["id"], force=force, **kwargs)
self._list_snapshots(detailed)
@types.convert(image={"type": "glance_image"})
@validation.required_services(consts.Service.CINDER, consts.Service.GLANCE)
@validation.required_openstack(users=True)
@validation.required_parameters("size")
@scenario.configure(context={"cleanup": ["cinder", "glance"]})
def create_and_upload_volume_to_image(self, size, force=False,
def create_and_upload_volume_to_image(self, size, image=None, force=False,
container_format="bare",
disk_format="raw",
do_delete=True,
@ -448,6 +449,7 @@ class CinderVolumes(cinder_utils.CinderScenario,
dictionary, must contain two values:
min - minimum size volumes will be created as;
max - maximum size volumes will be created as.
:param image: image to be used to create volume.
:param force: when set to True volume that is attached to an instance
could be uploaded to image
:param container_format: image container format
@ -455,6 +457,8 @@ class CinderVolumes(cinder_utils.CinderScenario,
:param do_delete: deletes image and volume after uploading if True
:param kwargs: optional args to create a volume
"""
if image:
kwargs["imageRef"] = image
volume = self._create_volume(size, **kwargs)
image = self._upload_volume_to_image(volume, force, container_format,
disk_format)

View File

@ -6,7 +6,10 @@
"force": false,
"container_format": "bare",
"disk_format": "raw",
"do_delete": true
"do_delete": true,
"image": {
"name": "^cirros.*uec$"
}
},
"runner": {
"type": "constant",
@ -29,7 +32,10 @@
"force": false,
"container_format": "bare",
"disk_format": "raw",
"do_delete": true
"do_delete": true,
"image": {
"name": "^cirros.*uec$"
}
},
"runner": {
"type": "constant",

View File

@ -7,6 +7,8 @@
container_format: "bare"
disk_format: "raw"
do_delete: true
image:
name: "^cirros.*uec$"
runner:
type: "constant"
times: 3
@ -24,6 +26,8 @@
container_format: "bare"
disk_format: "raw"
do_delete: true
image:
name: "^cirros.*uec$"
runner:
type: "constant"
times: 3
@ -31,4 +35,4 @@
context:
users:
tenants: 2
users_per_tenant: 2
users_per_tenant: 2

View File

@ -221,12 +221,14 @@ class CinderServersTestCase(test.ScenarioTestCase):
scenario._delete_volume = mock.MagicMock()
scenario._delete_image = mock.MagicMock()
scenario.create_and_upload_volume_to_image(2,
scenario.create_and_upload_volume_to_image(2, image="img",
container_format="fake",
disk_format="disk",
do_delete=False)
do_delete=False,
fakeargs="fakeargs")
scenario._create_volume.assert_called_once_with(2)
scenario._create_volume.assert_called_once_with(2, imageRef="img",
fakeargs="fakeargs")
scenario._upload_volume_to_image.assert_called_once_with(fake_volume,
False,
"fake",
@ -234,9 +236,11 @@ class CinderServersTestCase(test.ScenarioTestCase):
scenario._create_volume.reset_mock()
scenario._upload_volume_to_image.reset_mock()
scenario.create_and_upload_volume_to_image(1, do_delete=True)
scenario.create_and_upload_volume_to_image(1, image=None,
do_delete=True,
fakeargs="fakeargs")
scenario._create_volume.assert_called_once_with(1)
scenario._create_volume.assert_called_once_with(1, fakeargs="fakeargs")
scenario._upload_volume_to_image.assert_called_once_with(fake_volume,
False,
"bare",