blob: 728a9e6a0eee16c2f2dfb233e02389a3ccb38b04 [file] [log] [blame]
wanghaoaa1f2f92013-10-10 11:30:37 +08001# Copyright 2013 Huawei Technologies Co.,LTD
2# All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
15
Zhi Kun Liubb363a22013-11-28 18:47:39 +080016from tempest.api.volume import base
Ken'ichi Ohmichiadb905e2016-08-26 15:16:23 -070017from tempest import config
Masayuki Igawaa279a682014-03-14 13:29:42 +090018from tempest import test
wanghaoaa1f2f92013-10-10 11:30:37 +080019
Ken'ichi Ohmichiadb905e2016-08-26 15:16:23 -070020CONF = config.CONF
21
wanghaoaa1f2f92013-10-10 11:30:37 +080022
Chandan Kumar457d1632014-11-18 13:46:08 +053023class VolumesActionsV2Test(base.BaseVolumeAdminTest):
wanghaoaa1f2f92013-10-10 11:30:37 +080024
25 @classmethod
Rohan Kanade05749152015-01-30 17:15:18 +053026 def setup_clients(cls):
27 super(VolumesActionsV2Test, cls).setup_clients()
28 cls.client = cls.volumes_client
29
30 @classmethod
Andrea Frittoli61a12e22014-09-15 13:14:54 +010031 def resource_setup(cls):
Chandan Kumar457d1632014-11-18 13:46:08 +053032 super(VolumesActionsV2Test, cls).resource_setup()
wanghaoaa1f2f92013-10-10 11:30:37 +080033
wanghaoaa1f2f92013-10-10 11:30:37 +080034 # Create a test shared volume for tests
zhufl89403442016-10-09 16:19:28 +080035 cls.volume = cls.create_volume()
wanghaoaa1f2f92013-10-10 11:30:37 +080036
37 def _reset_volume_status(self, volume_id, status):
wanghao9d3d6cb2013-11-12 15:10:10 +080038 # Reset the volume status
zhufl89403442016-10-09 16:19:28 +080039 self.admin_volume_client.reset_volume_status(volume_id, status=status)
wanghaoaa1f2f92013-10-10 11:30:37 +080040
41 def tearDown(self):
42 # Set volume's status to available after test
Ghanshyam58a9e872015-12-18 10:46:07 +090043 self._reset_volume_status(self.volume['id'], status='available')
Chandan Kumar457d1632014-11-18 13:46:08 +053044 super(VolumesActionsV2Test, self).tearDown()
wanghaoaa1f2f92013-10-10 11:30:37 +080045
wanghao9d3d6cb2013-11-12 15:10:10 +080046 def _create_reset_and_force_delete_temp_volume(self, status=None):
47 # Create volume, reset volume status, and force delete temp volume
zhufl89403442016-10-09 16:19:28 +080048 temp_volume = self.create_volume()
wanghao9d3d6cb2013-11-12 15:10:10 +080049 if status:
Joseph Lanoux6809bab2014-12-18 14:57:18 +000050 self._reset_volume_status(temp_volume['id'], status)
51 self.admin_volume_client.force_delete_volume(temp_volume['id'])
wanghao9d3d6cb2013-11-12 15:10:10 +080052 self.client.wait_for_resource_deletion(temp_volume['id'])
53
Chris Hoge7579c1a2015-02-26 14:12:15 -080054 @test.idempotent_id('d063f96e-a2e0-4f34-8b8a-395c42de1845')
wanghaoaa1f2f92013-10-10 11:30:37 +080055 def test_volume_reset_status(self):
56 # test volume reset status : available->error->available
Joseph Lanoux6809bab2014-12-18 14:57:18 +000057 self._reset_volume_status(self.volume['id'], 'error')
Ken'ichi Ohmichi35798fb2015-04-06 01:22:41 +000058 volume_get = self.admin_volume_client.show_volume(
John Warren6177c9e2015-08-19 20:00:17 +000059 self.volume['id'])['volume']
wanghaoaa1f2f92013-10-10 11:30:37 +080060 self.assertEqual('error', volume_get['status'])
61
Chris Hoge7579c1a2015-02-26 14:12:15 -080062 @test.idempotent_id('21737d5a-92f2-46d7-b009-a0cc0ee7a570')
wanghao9d3d6cb2013-11-12 15:10:10 +080063 def test_volume_force_delete_when_volume_is_creating(self):
64 # test force delete when status of volume is creating
65 self._create_reset_and_force_delete_temp_volume('creating')
66
Chris Hoge7579c1a2015-02-26 14:12:15 -080067 @test.idempotent_id('db8d607a-aa2e-4beb-b51d-d4005c232011')
wanghao9d3d6cb2013-11-12 15:10:10 +080068 def test_volume_force_delete_when_volume_is_attaching(self):
69 # test force delete when status of volume is attaching
70 self._create_reset_and_force_delete_temp_volume('attaching')
71
Chris Hoge7579c1a2015-02-26 14:12:15 -080072 @test.idempotent_id('3e33a8a8-afd4-4d64-a86b-c27a185c5a4a')
wanghao9d3d6cb2013-11-12 15:10:10 +080073 def test_volume_force_delete_when_volume_is_error(self):
74 # test force delete when status of volume is error
75 self._create_reset_and_force_delete_temp_volume('error')
76
wanghaoaa1f2f92013-10-10 11:30:37 +080077
Chandan Kumar457d1632014-11-18 13:46:08 +053078class VolumesActionsV1Test(VolumesActionsV2Test):
79 _api_version = 1