Jay Pipes | 13b479b | 2012-06-11 14:52:27 -0400 | [diff] [blame] | 1 | # vim: tabstop=4 shiftwidth=4 softtabstop=4 |
| 2 | |
| 3 | # Copyright 2012 OpenStack, LLC |
| 4 | # All Rights Reserved. |
| 5 | # |
| 6 | # Licensed under the Apache License, Version 2.0 (the "License"); you may |
| 7 | # not use this file except in compliance with the License. You may obtain |
| 8 | # a copy of the License at |
| 9 | # |
| 10 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 11 | # |
| 12 | # Unless required by applicable law or agreed to in writing, software |
| 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| 15 | # License for the specific language governing permissions and limitations |
| 16 | # under the License. |
| 17 | |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 18 | import sys |
Jay Pipes | 13b479b | 2012-06-11 14:52:27 -0400 | [diff] [blame] | 19 | |
ivan-zhu | 1feeb38 | 2013-01-24 10:14:39 +0800 | [diff] [blame] | 20 | import testtools |
Jay Pipes | 13b479b | 2012-06-11 14:52:27 -0400 | [diff] [blame] | 21 | |
Matthew Treinish | 481466b | 2012-12-20 17:16:01 -0500 | [diff] [blame] | 22 | from tempest import clients |
Matthew Treinish | a83a16e | 2012-12-07 13:44:02 -0500 | [diff] [blame] | 23 | from tempest.common.utils.data_utils import rand_name |
Daryl Walleck | ed8bef3 | 2011-12-05 23:02:08 -0600 | [diff] [blame] | 24 | from tempest import exceptions |
Chris Yeoh | 9465b0b | 2013-02-09 22:19:15 +1030 | [diff] [blame] | 25 | from tempest.test import attr |
James E. Blair | e6d8ee1 | 2013-01-18 21:33:45 +0000 | [diff] [blame] | 26 | from tempest.tests.compute.base import BaseComputeTest |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 27 | |
| 28 | |
James E. Blair | e6d8ee1 | 2013-01-18 21:33:45 +0000 | [diff] [blame] | 29 | class ServersNegativeTest(BaseComputeTest): |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 30 | |
| 31 | @classmethod |
| 32 | def setUpClass(cls): |
ivan-zhu | 1feeb38 | 2013-01-24 10:14:39 +0800 | [diff] [blame] | 33 | raise cls.skipException("Until Bug 1046870 is fixed") |
Jay Pipes | f38eaac | 2012-06-21 13:37:35 -0400 | [diff] [blame] | 34 | super(ServersNegativeTest, cls).setUpClass() |
Daryl Walleck | c725196 | 2012-03-12 17:26:54 -0500 | [diff] [blame] | 35 | cls.client = cls.servers_client |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 36 | cls.img_client = cls.images_client |
Matthew Treinish | 481466b | 2012-12-20 17:16:01 -0500 | [diff] [blame] | 37 | cls.alt_os = clients.AltManager() |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 38 | cls.alt_client = cls.alt_os.servers_client |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 39 | |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 40 | @attr(type='negative') |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 41 | def test_server_name_blank(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 42 | # Create a server with name parameter empty |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 43 | try: |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 44 | resp, server = self.create_server_with_extras('', |
| 45 | self.image_ref, |
| 46 | self.flavor_ref) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 47 | except exceptions.BadRequest: |
| 48 | pass |
| 49 | else: |
| 50 | self.fail('Server name cannot be blank') |
| 51 | |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 52 | @attr(type='negative') |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 53 | def test_personality_file_contents_not_encoded(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 54 | # Use an unencoded file when creating a server with personality |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 55 | file_contents = 'This is a test file.' |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 56 | person = [{'path': '/etc/testfile.txt', |
| 57 | 'contents': file_contents}] |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 58 | |
| 59 | try: |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 60 | resp, server = self.create_server_with_extras('test', |
| 61 | self.image_ref, |
| 62 | self.flavor_ref, |
| 63 | personality=person) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 64 | except exceptions.BadRequest: |
| 65 | pass |
| 66 | else: |
| 67 | self.fail('Unencoded file contents should not be accepted') |
| 68 | |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 69 | @attr(type='negative') |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 70 | def test_create_with_invalid_image(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 71 | # Create a server with an unknown image |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 72 | try: |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 73 | resp, server = self.create_server_with_extras('fail', -1, |
| 74 | self.flavor_ref) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 75 | except exceptions.BadRequest: |
| 76 | pass |
| 77 | else: |
| 78 | self.fail('Cannot create a server with an invalid image') |
| 79 | |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 80 | @attr(type='negative') |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 81 | def test_create_with_invalid_flavor(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 82 | # Create a server with an unknown flavor |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 83 | try: |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 84 | self.create_server_with_extras('fail', self.image_ref, -1) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 85 | except exceptions.BadRequest: |
| 86 | pass |
| 87 | else: |
| 88 | self.fail('Cannot create a server with an invalid flavor') |
| 89 | |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 90 | @attr(type='negative') |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 91 | def test_invalid_access_ip_v4_address(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 92 | # An access IPv4 address must match a valid address pattern |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 93 | IPv4 = '1.1.1.1.1.1' |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 94 | name = rand_name('server') |
| 95 | try: |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 96 | resp, server = self.create_server_with_extras(name, |
| 97 | self.image_ref, |
| 98 | self.flavor_ref, |
| 99 | accessIPv4=IPv4) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 100 | except exceptions.BadRequest: |
| 101 | pass |
| 102 | else: |
| 103 | self.fail('Access IPv4 address must match the correct format') |
| 104 | |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 105 | @attr(type='negative') |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 106 | def test_invalid_ip_v6_address(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 107 | # An access IPv6 address must match a valid address pattern |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 108 | IPv6 = 'notvalid' |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 109 | name = rand_name('server') |
| 110 | try: |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 111 | resp, server = self.create_server_with_extras(name, |
| 112 | self.image_ref, |
| 113 | self.flavor_ref, |
| 114 | accessIPv6=IPv6) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 115 | except exceptions.BadRequest: |
| 116 | pass |
| 117 | else: |
| 118 | self.fail('Access IPv6 address must match the correct format') |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 119 | |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 120 | @attr(type='negative') |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 121 | def test_reboot_deleted_server(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 122 | # Reboot a deleted server |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 123 | self.name = rand_name('server') |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 124 | resp, create_server = self.create_server_with_extras(self.name, |
| 125 | self.image_ref, |
| 126 | self.flavor_ref) |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 127 | self.server_id = create_server['id'] |
| 128 | self.client.delete_server(self.server_id) |
David Kranz | 1b39dd4 | 2012-05-30 17:04:09 -0400 | [diff] [blame] | 129 | self.client.wait_for_server_termination(self.server_id) |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 130 | try: |
| 131 | resp1, reboot_server = self.client.reboot(self.server_id, 'SOFT') |
| 132 | except exceptions.NotFound: |
| 133 | pass |
| 134 | else: |
| 135 | self.fail('Should not be able to reboot a deleted server') |
| 136 | |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 137 | @attr(type='negative') |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 138 | def test_rebuild_deleted_server(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 139 | # Rebuild a deleted server |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 140 | self.name = rand_name('server') |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 141 | resp, create_server = self.create_server_with_extras(self.name, |
| 142 | self.image_ref, |
| 143 | self.flavor_ref) |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 144 | self.server_id = create_server['id'] |
| 145 | self.client.delete_server(self.server_id) |
David Kranz | 1b39dd4 | 2012-05-30 17:04:09 -0400 | [diff] [blame] | 146 | self.client.wait_for_server_termination(self.server_id) |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 147 | try: |
| 148 | resp1, rebuild_server = self.client.rebuild(self.server_id, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 149 | self.image_ref_alt) |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 150 | except exceptions.NotFound: |
| 151 | pass |
| 152 | else: |
| 153 | self.fail('Should not be able to rebuild a deleted server') |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 154 | |
| 155 | @attr(type='negative') |
| 156 | def test_create_numeric_server_name(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 157 | # Create a server with a numeric name |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 158 | |
| 159 | server_name = 12345 |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 160 | self.assertRaises(exceptions.BadRequest, |
| 161 | self.create_server_with_extras, |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 162 | server_name, self.image_ref, self.flavor_ref) |
| 163 | |
| 164 | @attr(type='negative') |
| 165 | def test_create_server_name_length_exceeds_256(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 166 | # Create a server with name length exceeding 256 characters |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 167 | |
| 168 | server_name = 'a' * 256 |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 169 | self.assertRaises(exceptions.BadRequest, |
| 170 | self.create_server_with_extras, |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 171 | server_name, self.image_ref, self.flavor_ref) |
| 172 | |
| 173 | @attr(type='negative') |
| 174 | def test_create_with_invalid_network_uuid(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 175 | # Pass invalid network uuid while creating a server |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 176 | |
| 177 | server_name = rand_name('server') |
Chris Yeoh | fc9e333 | 2013-01-21 09:28:13 +1030 | [diff] [blame] | 178 | networks = [{'fixed_ip': '10.0.1.1', 'uuid': 'a-b-c-d-e-f-g-h-i-j'}] |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 179 | |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 180 | self.assertRaises(exceptions.BadRequest, |
| 181 | self.create_server_with_extras, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 182 | server_name, self.image_ref, self.flavor_ref, |
| 183 | networks=networks) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 184 | |
| 185 | @attr(type='negative') |
| 186 | def test_create_with_non_existant_keypair(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 187 | # Pass a non existant keypair while creating a server |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 188 | |
| 189 | key_name = rand_name('key') |
| 190 | server_name = rand_name('server') |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 191 | self.assertRaises(exceptions.BadRequest, |
| 192 | self.create_server_with_extras, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 193 | server_name, self.image_ref, self.flavor_ref, |
| 194 | key_name=key_name) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 195 | |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 196 | @attr(type='negative') |
| 197 | def test_create_server_metadata_exceeds_length_limit(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 198 | # Pass really long metadata while creating a server |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 199 | |
| 200 | server_name = rand_name('server') |
| 201 | metadata = {'a': 'b' * 260} |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 202 | self.assertRaises(exceptions.OverLimit, |
| 203 | self.create_server_with_extras, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 204 | server_name, self.image_ref, self.flavor_ref, |
| 205 | meta=metadata) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 206 | |
| 207 | @attr(type='negative') |
| 208 | def test_update_name_of_non_existent_server(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 209 | # Update name of a non-existent server |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 210 | |
| 211 | server_name = rand_name('server') |
| 212 | new_name = rand_name('server') + '_updated' |
| 213 | |
| 214 | self.assertRaises(exceptions.NotFound, self.client.update_server, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 215 | server_name, name=new_name) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 216 | |
| 217 | @attr(type='negative') |
| 218 | def test_update_server_set_empty_name(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 219 | # Update name of the server to an empty string |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 220 | |
| 221 | server_name = rand_name('server') |
| 222 | new_name = '' |
| 223 | |
| 224 | self.assertRaises(exceptions.BadRequest, self.client.update_server, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 225 | server_name, name=new_name) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 226 | |
| 227 | @attr(type='negative') |
| 228 | def test_update_server_of_another_tenant(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 229 | # Update name of a server that belongs to another tenant |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 230 | |
| 231 | server = self.create_server() |
| 232 | new_name = server['id'] + '_new' |
| 233 | self.assertRaises(exceptions.NotFound, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 234 | self.alt_client.update_server, server['id'], |
| 235 | name=new_name) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 236 | |
| 237 | @attr(type='negative') |
| 238 | def test_update_server_name_length_exceeds_256(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 239 | # Update name of server exceed the name length limit |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 240 | |
| 241 | server = self.create_server() |
| 242 | new_name = 'a' * 256 |
| 243 | self.assertRaises(exceptions.BadRequest, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 244 | self.client.update_server, |
| 245 | server['id'], |
| 246 | name=new_name) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 247 | |
| 248 | @attr(type='negative') |
| 249 | def test_delete_non_existent_server(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 250 | # Delete a non existent server |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 251 | |
| 252 | self.assertRaises(exceptions.NotFound, self.client.delete_server, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 253 | '999erra43') |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 254 | |
| 255 | @attr(type='negative') |
| 256 | def test_delete_a_server_of_another_tenant(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 257 | # Delete a server that belongs to another tenant |
rajalakshmi-ganesan | 6a863a8 | 2012-07-18 15:58:07 +0530 | [diff] [blame] | 258 | try: |
| 259 | server = self.create_server() |
| 260 | self.assertRaises(exceptions.NotFound, |
| 261 | self.alt_client.delete_server, |
| 262 | server['id']) |
| 263 | finally: |
| 264 | self.client.delete_server(server['id']) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 265 | |
| 266 | @attr(type='negative') |
| 267 | def test_delete_server_pass_negative_id(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 268 | # Pass an invalid string parameter to delete server |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 269 | |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 270 | self.assertRaises(exceptions.NotFound, self.client.delete_server, -1) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 271 | |
| 272 | @attr(type='negative') |
| 273 | def test_delete_server_pass_id_exceeding_length_limit(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 274 | # Pass a server ID that exceeds length limit to delete server |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 275 | |
| 276 | self.assertRaises(exceptions.NotFound, self.client.delete_server, |
| 277 | sys.maxint + 1) |