blob: e7a3f6259653fb0a16515f2bbb7e5759cec31c20 [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
wanghaoaa1f2f92013-10-10 11:30:37 +080037 def tearDown(self):
38 # Set volume's status to available after test
zhufl7e75fcb2016-10-17 09:00:40 +080039 self.admin_volume_client.reset_volume_status(
40 self.volume['id'], status='available')
Chandan Kumar457d1632014-11-18 13:46:08 +053041 super(VolumesActionsV2Test, self).tearDown()
wanghaoaa1f2f92013-10-10 11:30:37 +080042
wanghao9d3d6cb2013-11-12 15:10:10 +080043 def _create_reset_and_force_delete_temp_volume(self, status=None):
44 # Create volume, reset volume status, and force delete temp volume
zhufl89403442016-10-09 16:19:28 +080045 temp_volume = self.create_volume()
wanghao9d3d6cb2013-11-12 15:10:10 +080046 if status:
zhufl7e75fcb2016-10-17 09:00:40 +080047 self.admin_volume_client.reset_volume_status(
48 temp_volume['id'], status=status)
Joseph Lanoux6809bab2014-12-18 14:57:18 +000049 self.admin_volume_client.force_delete_volume(temp_volume['id'])
wanghao9d3d6cb2013-11-12 15:10:10 +080050 self.client.wait_for_resource_deletion(temp_volume['id'])
51
Chris Hoge7579c1a2015-02-26 14:12:15 -080052 @test.idempotent_id('d063f96e-a2e0-4f34-8b8a-395c42de1845')
wanghaoaa1f2f92013-10-10 11:30:37 +080053 def test_volume_reset_status(self):
54 # test volume reset status : available->error->available
zhufl7e75fcb2016-10-17 09:00:40 +080055 self.admin_volume_client.reset_volume_status(
56 self.volume['id'], status='error')
Ken'ichi Ohmichi35798fb2015-04-06 01:22:41 +000057 volume_get = self.admin_volume_client.show_volume(
John Warren6177c9e2015-08-19 20:00:17 +000058 self.volume['id'])['volume']
wanghaoaa1f2f92013-10-10 11:30:37 +080059 self.assertEqual('error', volume_get['status'])
60
Chris Hoge7579c1a2015-02-26 14:12:15 -080061 @test.idempotent_id('21737d5a-92f2-46d7-b009-a0cc0ee7a570')
wanghao9d3d6cb2013-11-12 15:10:10 +080062 def test_volume_force_delete_when_volume_is_creating(self):
63 # test force delete when status of volume is creating
64 self._create_reset_and_force_delete_temp_volume('creating')
65
Chris Hoge7579c1a2015-02-26 14:12:15 -080066 @test.idempotent_id('db8d607a-aa2e-4beb-b51d-d4005c232011')
wanghao9d3d6cb2013-11-12 15:10:10 +080067 def test_volume_force_delete_when_volume_is_attaching(self):
68 # test force delete when status of volume is attaching
69 self._create_reset_and_force_delete_temp_volume('attaching')
70
Chris Hoge7579c1a2015-02-26 14:12:15 -080071 @test.idempotent_id('3e33a8a8-afd4-4d64-a86b-c27a185c5a4a')
wanghao9d3d6cb2013-11-12 15:10:10 +080072 def test_volume_force_delete_when_volume_is_error(self):
73 # test force delete when status of volume is error
74 self._create_reset_and_force_delete_temp_volume('error')
75
wanghaoaa1f2f92013-10-10 11:30:37 +080076
Chandan Kumar457d1632014-11-18 13:46:08 +053077class VolumesActionsV1Test(VolumesActionsV2Test):
78 _api_version = 1