Use base.create_volume in VolumesTestJSON

In VolumesTestJSON.resource_setup,
1) the multi lines of creating volumes can be replaced by one call
   to base.create_volume.(base.create_volume can be modified to
   accept other kwargs)
2) The try...except seems no necessary, because if not all volumes are
   created, the volumes already created will be deleted automatically.
   And without LOG.exception(exc), we can also clearly see the traceback
   info to see what had happened.
3) the resource_cleanup is no necessary, because volumes created by
   base.create_volume can be deleted automatically.

This patch is to deal with these points and to make code more simple.

Change-Id: Ia0bf536882776717521a86107a9b72ced9408398
diff --git a/tempest/api/compute/base.py b/tempest/api/compute/base.py
index 173ee83..f6a6040 100644
--- a/tempest/api/compute/base.py
+++ b/tempest/api/compute/base.py
@@ -381,18 +381,21 @@
             self.request_microversion))
 
     @classmethod
-    def create_volume(cls, image_ref=None):
+    def create_volume(cls, image_ref=None, **kwargs):
         """Create a volume and wait for it to become 'available'.
 
         :param image_ref: Specify an image id to create a bootable volume.
+        :**kwargs: other parameters to create volume.
         :returns: The available volume.
         """
-        vol_name = data_utils.rand_name(cls.__name__ + '-volume')
-        create_params = dict(size=CONF.volume.volume_size,
-                             display_name=vol_name)
+        if 'size' not in kwargs:
+            kwargs['size'] = CONF.volume.volume_size
+        if 'display_name' not in kwargs:
+            vol_name = data_utils.rand_name(cls.__name__ + '-volume')
+            kwargs['display_name'] = vol_name
         if image_ref is not None:
-            create_params['imageRef'] = image_ref
-        volume = cls.volumes_client.create_volume(**create_params)['volume']
+            kwargs['imageRef'] = image_ref
+        volume = cls.volumes_client.create_volume(**kwargs)['volume']
         cls.volumes.append(volume)
         waiters.wait_for_volume_status(cls.volumes_client,
                                        volume['id'], 'available')
diff --git a/tempest/api/compute/volumes/test_volumes_list.py b/tempest/api/compute/volumes/test_volumes_list.py
index 7d76731..e4e625b 100644
--- a/tempest/api/compute/volumes/test_volumes_list.py
+++ b/tempest/api/compute/volumes/test_volumes_list.py
@@ -16,8 +16,6 @@
 from oslo_log import log as logging
 
 from tempest.api.compute import base
-from tempest.common.utils import data_utils
-from tempest.common import waiters
 from tempest import config
 from tempest import test
 
@@ -51,34 +49,11 @@
         cls.volume_list = []
         cls.volume_id_list = []
         for i in range(3):
-            v_name = data_utils.rand_name(cls.__name__ + '-volume')
             metadata = {'Type': 'work'}
-            try:
-                volume = cls.client.create_volume(size=CONF.volume.volume_size,
-                                                  display_name=v_name,
-                                                  metadata=metadata)['volume']
-                waiters.wait_for_volume_status(cls.client,
-                                               volume['id'], 'available')
-                volume = cls.client.show_volume(volume['id'])['volume']
-                cls.volume_list.append(volume)
-                cls.volume_id_list.append(volume['id'])
-            except Exception as exc:
-                LOG.exception(exc)
-                if cls.volume_list:
-                    # We could not create all the volumes, though we were able
-                    # to create *some* of the volumes. This is typically
-                    # because the backing file size of the volume group is
-                    # too small.
-                    for volume in cls.volume_list:
-                        cls.delete_volume(volume['id'])
-                raise exc
-
-    @classmethod
-    def resource_cleanup(cls):
-        # Delete the created Volumes
-        for volume in cls.volume_list:
-            cls.delete_volume(volume['id'])
-        super(VolumesTestJSON, cls).resource_cleanup()
+            volume = cls.create_volume(metadata=metadata)
+            volume = cls.client.show_volume(volume['id'])['volume']
+            cls.volume_list.append(volume)
+            cls.volume_id_list.append(volume['id'])
 
     @test.idempotent_id('bc2dd1a0-15af-48e5-9990-f2e75a48325d')
     def test_volume_list(self):