blob: 768c1291cbfeb40943367e0ef3eca2ac28791003 [file] [log] [blame]
Andrew Kerrfcb0b682016-04-01 16:01:34 -04001# Copyright 2016 Andrew Kerr
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
Ken'ichi Ohmichi8c189082017-04-03 13:47:54 -070016from tempest.api.volume import base
Ken'ichi Ohmichiadb905e2016-08-26 15:16:23 -070017from tempest import config
Ken'ichi Ohmichief1c1ce2017-03-10 11:07:10 -080018from tempest.lib.common.utils import data_utils
Ken'ichi Ohmichi6b279c72017-01-27 18:26:59 -080019from tempest.lib import decorators
Andrew Kerrfcb0b682016-04-01 16:01:34 -040020
Ken'ichi Ohmichiadb905e2016-08-26 15:16:23 -070021CONF = config.CONF
22
Andrew Kerrfcb0b682016-04-01 16:01:34 -040023
Ken'ichi Ohmichi8c189082017-04-03 13:47:54 -070024class UserMessagesTest(base.BaseVolumeAdminTest):
zhuflfcfb31b2020-04-20 15:41:07 +080025 """Test volume messages with microversion greater than 3.2"""
26
Andrew Kerrfcb0b682016-04-01 16:01:34 -040027 min_microversion = '3.3'
28 max_microversion = 'latest'
29
Andrew Kerrfcb0b682016-04-01 16:01:34 -040030 def _create_user_message(self):
31 """Trigger a 'no valid host' situation to generate a message."""
32 bad_protocol = data_utils.rand_name('storage_protocol')
33 bad_vendor = data_utils.rand_name('vendor_name')
34 extra_specs = {'storage_protocol': bad_protocol,
35 'vendor_name': bad_vendor}
zhuflc6ce5392016-08-17 14:34:37 +080036 vol_type_name = data_utils.rand_name(
37 self.__class__.__name__ + '-volume-type')
Benny Kopilov8a33ee12016-11-09 10:35:23 +020038 bogus_type = self.create_volume_type(
39 name=vol_type_name, extra_specs=extra_specs)
Ken'ichi Ohmichiadb905e2016-08-26 15:16:23 -070040 params = {'volume_type': bogus_type['id'],
41 'size': CONF.volume.volume_size}
Benny Kopilov8a33ee12016-11-09 10:35:23 +020042 volume = self.create_volume(wait_until="error", **params)
Andrew Kerrfcb0b682016-04-01 16:01:34 -040043 messages = self.messages_client.list_messages()['messages']
44 message_id = None
45 for message in messages:
46 if message['resource_uuid'] == volume['id']:
47 message_id = message['id']
48 break
49 self.assertIsNotNone(message_id, 'No user message generated for '
50 'volume %s' % volume['id'])
51 return message_id
52
Ken'ichi Ohmichi6b279c72017-01-27 18:26:59 -080053 @decorators.idempotent_id('50f29e6e-f363-42e1-8ad1-f67ae7fd4d5a')
zhuflb031d302017-08-25 14:31:14 +080054 def test_list_show_messages(self):
zhuflfcfb31b2020-04-20 15:41:07 +080055 """Test listing and showing volume messages"""
zhuflb031d302017-08-25 14:31:14 +080056 message_id = self._create_user_message()
57 self.addCleanup(self.messages_client.delete_message, message_id)
58
zhufld0b5d282018-09-18 11:51:31 +080059 # show message, check response schema
60 self.messages_client.show_message(message_id)
zhuflb031d302017-08-25 14:31:14 +080061
zhufld0b5d282018-09-18 11:51:31 +080062 # list messages, check response schema
63 self.messages_client.list_messages()
Andrew Kerrfcb0b682016-04-01 16:01:34 -040064
Ken'ichi Ohmichi6b279c72017-01-27 18:26:59 -080065 @decorators.idempotent_id('c6eb6901-cdcc-490f-b735-4fe251842aed')
Andrew Kerrfcb0b682016-04-01 16:01:34 -040066 def test_delete_message(self):
zhuflfcfb31b2020-04-20 15:41:07 +080067 """Test deleting volume messages"""
Andrew Kerrfcb0b682016-04-01 16:01:34 -040068 message_id = self._create_user_message()
69 self.messages_client.delete_message(message_id)
70 self.messages_client.wait_for_resource_deletion(message_id)