blob: 7ecad12705c5b2742d586d97c84161cde39d17b9 [file] [log] [blame]
ZhiQiang Fan39f97222013-09-20 04:49:44 +08001# Copyright 2012 OpenStack Foundation
Jay Pipes13b479b2012-06-11 14:52:27 -04002# 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
Sean Dague1937d092013-05-17 16:36:38 -040016from tempest.api.compute import base
Fei Long Wangd39431f2015-05-14 11:30:48 +120017from tempest.common.utils import data_utils
Matthew Treinishb0a78fc2014-01-29 16:49:12 +000018from tempest import config
Andrea Frittoli (andreaf)db9672e2016-02-23 14:07:24 -050019from tempest.lib import exceptions as lib_exc
Matthew Treinish5c660ab2014-05-18 21:14:36 -040020from tempest import test
rajalakshmi-ganesanddd9e0e2012-03-21 00:49:22 +053021
Matthew Treinishb0a78fc2014-01-29 16:49:12 +000022CONF = config.CONF
23
rajalakshmi-ganesanddd9e0e2012-03-21 00:49:22 +053024
ivan-zhuf2b00502013-10-18 10:06:52 +080025class VolumesNegativeTest(base.BaseV2ComputeTest):
Attila Fazekas19044d52013-02-16 07:35:06 +010026
27 @classmethod
Emily Hugenbruch8284a342014-12-11 22:04:55 +000028 def skip_checks(cls):
29 super(VolumesNegativeTest, cls).skip_checks()
Matthew Treinishb0a78fc2014-01-29 16:49:12 +000030 if not CONF.service_available.cinder:
Matthew Treinish4c412922013-07-16 15:27:42 -040031 skip_msg = ("%s skipped as Cinder is not available" % cls.__name__)
32 raise cls.skipException(skip_msg)
rajalakshmi-ganesanddd9e0e2012-03-21 00:49:22 +053033
Emily Hugenbruch8284a342014-12-11 22:04:55 +000034 @classmethod
35 def setup_clients(cls):
36 super(VolumesNegativeTest, cls).setup_clients()
37 cls.client = cls.volumes_extensions_client
38
Sean Dague639f2fa2015-04-27 09:00:33 -040039 @test.attr(type=['negative'])
Chris Hoge7579c1a2015-02-26 14:12:15 -080040 @test.idempotent_id('c03ea686-905b-41a2-8748-9635154b7c57')
nayna-patel179077c2014-01-15 12:27:16 +000041 def test_volume_get_nonexistent_volume_id(self):
42 # Negative: Should not be able to get details of nonexistent volume
43 # Creating a nonexistent volume id
44 # Trying to GET a non existent volume
Ken'ichi Ohmichi5f448a52015-07-01 06:26:30 +000045 self.assertRaises(lib_exc.NotFound, self.client.show_volume,
Ken'ichi Ohmichid079c892016-04-19 11:23:36 -070046 data_utils.rand_uuid())
rajalakshmi-ganesanddd9e0e2012-03-21 00:49:22 +053047
Sean Dague639f2fa2015-04-27 09:00:33 -040048 @test.attr(type=['negative'])
Chris Hoge7579c1a2015-02-26 14:12:15 -080049 @test.idempotent_id('54a34226-d910-4b00-9ef8-8683e6c55846')
nayna-patel179077c2014-01-15 12:27:16 +000050 def test_volume_delete_nonexistent_volume_id(self):
51 # Negative: Should not be able to delete nonexistent Volume
52 # Creating nonexistent volume id
53 # Trying to DELETE a non existent volume
Masayuki Igawabfa07602015-01-20 18:47:17 +090054 self.assertRaises(lib_exc.NotFound, self.client.delete_volume,
Ken'ichi Ohmichid079c892016-04-19 11:23:36 -070055 data_utils.rand_uuid())
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +053056
Sean Dague639f2fa2015-04-27 09:00:33 -040057 @test.attr(type=['negative'])
Chris Hoge7579c1a2015-02-26 14:12:15 -080058 @test.idempotent_id('5125ae14-152b-40a7-b3c5-eae15e9022ef')
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +053059 def test_create_volume_with_invalid_size(self):
Sean Dague4dd2c0b2013-01-03 17:50:28 -050060 # Negative: Should not be able to create volume with invalid size
61 # in request
zhuflc6ce5392016-08-17 14:34:37 +080062 v_name = data_utils.rand_name(self.__class__.__name__ + '-Volume')
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +053063 metadata = {'Type': 'work'}
Masayuki Igawa4b29e472015-02-16 10:41:54 +090064 self.assertRaises(lib_exc.BadRequest, self.client.create_volume,
Chris Yeoh8b4eaa52013-02-06 18:03:10 +103065 size='#$%', display_name=v_name, metadata=metadata)
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +053066
Sean Dague639f2fa2015-04-27 09:00:33 -040067 @test.attr(type=['negative'])
Chris Hoge7579c1a2015-02-26 14:12:15 -080068 @test.idempotent_id('131cb3a1-75cc-4d40-b4c3-1317f64719b0')
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +053069 def test_create_volume_with_out_passing_size(self):
Sean Dague4dd2c0b2013-01-03 17:50:28 -050070 # Negative: Should not be able to create volume without passing size
71 # in request
zhuflc6ce5392016-08-17 14:34:37 +080072 v_name = data_utils.rand_name(self.__class__.__name__ + '-Volume')
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +053073 metadata = {'Type': 'work'}
Masayuki Igawa4b29e472015-02-16 10:41:54 +090074 self.assertRaises(lib_exc.BadRequest, self.client.create_volume,
Chris Yeoh8b4eaa52013-02-06 18:03:10 +103075 size='', display_name=v_name, metadata=metadata)
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +053076
Sean Dague639f2fa2015-04-27 09:00:33 -040077 @test.attr(type=['negative'])
Chris Hoge7579c1a2015-02-26 14:12:15 -080078 @test.idempotent_id('8cce995e-0a83-479a-b94d-e1e40b8a09d1')
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +053079 def test_create_volume_with_size_zero(self):
Sean Dague4dd2c0b2013-01-03 17:50:28 -050080 # Negative: Should not be able to create volume with size zero
zhuflc6ce5392016-08-17 14:34:37 +080081 v_name = data_utils.rand_name(self.__class__.__name__ + '-Volume')
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +053082 metadata = {'Type': 'work'}
Masayuki Igawa4b29e472015-02-16 10:41:54 +090083 self.assertRaises(lib_exc.BadRequest, self.client.create_volume,
Chris Yeoh8b4eaa52013-02-06 18:03:10 +103084 size='0', display_name=v_name, metadata=metadata)
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +053085
Sean Dague639f2fa2015-04-27 09:00:33 -040086 @test.attr(type=['negative'])
Chris Hoge7579c1a2015-02-26 14:12:15 -080087 @test.idempotent_id('f01904f2-e975-4915-98ce-cb5fa27bde4f')
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +053088 def test_get_invalid_volume_id(self):
Sean Dague4dd2c0b2013-01-03 17:50:28 -050089 # Negative: Should not be able to get volume with invalid id
Masayuki Igawabfa07602015-01-20 18:47:17 +090090 self.assertRaises(lib_exc.NotFound,
Ken'ichi Ohmichi5f448a52015-07-01 06:26:30 +000091 self.client.show_volume, '#$%%&^&^')
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +053092
Sean Dague639f2fa2015-04-27 09:00:33 -040093 @test.attr(type=['negative'])
Chris Hoge7579c1a2015-02-26 14:12:15 -080094 @test.idempotent_id('62bab09a-4c03-4617-8cca-8572bc94af9b')
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +053095 def test_get_volume_without_passing_volume_id(self):
Sean Dague4dd2c0b2013-01-03 17:50:28 -050096 # Negative: Should not be able to get volume when empty ID is passed
Ken'ichi Ohmichi5f448a52015-07-01 06:26:30 +000097 self.assertRaises(lib_exc.NotFound, self.client.show_volume, '')
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +053098
Sean Dague639f2fa2015-04-27 09:00:33 -040099 @test.attr(type=['negative'])
Chris Hoge7579c1a2015-02-26 14:12:15 -0800100 @test.idempotent_id('62972737-124b-4513-b6cf-2f019f178494')
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +0530101 def test_delete_invalid_volume_id(self):
Sean Dague4dd2c0b2013-01-03 17:50:28 -0500102 # Negative: Should not be able to delete volume when invalid ID is
103 # passed
Masayuki Igawabfa07602015-01-20 18:47:17 +0900104 self.assertRaises(lib_exc.NotFound,
Chris Yeoh8b4eaa52013-02-06 18:03:10 +1030105 self.client.delete_volume, '!@#$%^&*()')
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +0530106
Sean Dague639f2fa2015-04-27 09:00:33 -0400107 @test.attr(type=['negative'])
Chris Hoge7579c1a2015-02-26 14:12:15 -0800108 @test.idempotent_id('0d1417c5-4ae8-4c2c-adc5-5f0b864253e5')
rajalakshmi-ganesan5894d512012-05-31 19:00:36 +0530109 def test_delete_volume_without_passing_volume_id(self):
Sean Dague4dd2c0b2013-01-03 17:50:28 -0500110 # Negative: Should not be able to delete volume when empty ID is passed
Masayuki Igawabfa07602015-01-20 18:47:17 +0900111 self.assertRaises(lib_exc.NotFound, self.client.delete_volume, '')