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 | |
Sean Dague | 1937d09 | 2013-05-17 16:36:38 -0400 | [diff] [blame] | 20 | from tempest.api.compute import base |
Matthew Treinish | 481466b | 2012-12-20 17:16:01 -0500 | [diff] [blame] | 21 | from tempest import clients |
Matthew Treinish | a83a16e | 2012-12-07 13:44:02 -0500 | [diff] [blame] | 22 | from tempest.common.utils.data_utils import rand_name |
Daryl Walleck | ed8bef3 | 2011-12-05 23:02:08 -0600 | [diff] [blame] | 23 | from tempest import exceptions |
Chris Yeoh | 9465b0b | 2013-02-09 22:19:15 +1030 | [diff] [blame] | 24 | from tempest.test import attr |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 25 | |
| 26 | |
Xiao Hanyu | ab61c07 | 2013-06-26 15:33:42 +0800 | [diff] [blame] | 27 | class ServersNegativeTestJSON(base.BaseComputeTest): |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 28 | _interface = 'json' |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 29 | |
| 30 | @classmethod |
| 31 | def setUpClass(cls): |
Xiao Hanyu | ab61c07 | 2013-06-26 15:33:42 +0800 | [diff] [blame] | 32 | super(ServersNegativeTestJSON, cls).setUpClass() |
Daryl Walleck | c725196 | 2012-03-12 17:26:54 -0500 | [diff] [blame] | 33 | cls.client = cls.servers_client |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 34 | cls.img_client = cls.images_client |
Matthew Treinish | 481466b | 2012-12-20 17:16:01 -0500 | [diff] [blame] | 35 | cls.alt_os = clients.AltManager() |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 36 | cls.alt_client = cls.alt_os.servers_client |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 37 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 38 | @attr(type=['negative', 'gate']) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 39 | def test_server_name_blank(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 40 | # Create a server with name parameter empty |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 41 | |
| 42 | self.assertRaises(exceptions.BadRequest, |
Sean Dague | 22897e1 | 2013-02-25 17:54:09 -0500 | [diff] [blame] | 43 | self.create_server, |
| 44 | name='') |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 45 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 46 | @attr(type=['negative', 'gate']) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 47 | def test_personality_file_contents_not_encoded(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 48 | # Use an unencoded file when creating a server with personality |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 49 | |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 50 | file_contents = 'This is a test file.' |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 51 | person = [{'path': '/etc/testfile.txt', |
| 52 | 'contents': file_contents}] |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 53 | |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 54 | self.assertRaises(exceptions.BadRequest, |
Sean Dague | 22897e1 | 2013-02-25 17:54:09 -0500 | [diff] [blame] | 55 | self.create_server, |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 56 | personality=person) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 57 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 58 | @attr(type=['negative', 'gate']) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 59 | def test_create_with_invalid_image(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 60 | # Create a server with an unknown image |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 61 | |
| 62 | self.assertRaises(exceptions.BadRequest, |
Sean Dague | 22897e1 | 2013-02-25 17:54:09 -0500 | [diff] [blame] | 63 | self.create_server, |
| 64 | image_id=-1) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 65 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 66 | @attr(type=['negative', 'gate']) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 67 | def test_create_with_invalid_flavor(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 68 | # Create a server with an unknown flavor |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 69 | |
| 70 | self.assertRaises(exceptions.BadRequest, |
Sean Dague | 22897e1 | 2013-02-25 17:54:09 -0500 | [diff] [blame] | 71 | self.create_server, |
| 72 | flavor=-1,) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 73 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 74 | @attr(type=['negative', 'gate']) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 75 | def test_invalid_access_ip_v4_address(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 76 | # An access IPv4 address must match a valid address pattern |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 77 | |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 78 | IPv4 = '1.1.1.1.1.1' |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 79 | self.assertRaises(exceptions.BadRequest, |
Sean Dague | 22897e1 | 2013-02-25 17:54:09 -0500 | [diff] [blame] | 80 | self.create_server, accessIPv4=IPv4) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 81 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 82 | @attr(type=['negative', 'gate']) |
Daryl Walleck | adea1fa | 2011-11-15 18:36:39 -0600 | [diff] [blame] | 83 | def test_invalid_ip_v6_address(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 84 | # An access IPv6 address must match a valid address pattern |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 85 | |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 86 | IPv6 = 'notvalid' |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 87 | |
| 88 | self.assertRaises(exceptions.BadRequest, |
Sean Dague | 22897e1 | 2013-02-25 17:54:09 -0500 | [diff] [blame] | 89 | self.create_server, accessIPv6=IPv6) |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 90 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 91 | @attr(type=['negative', 'gate']) |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 92 | def test_reboot_deleted_server(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 93 | # Reboot a deleted server |
Sean Dague | 22897e1 | 2013-02-25 17:54:09 -0500 | [diff] [blame] | 94 | resp, server = self.create_server() |
| 95 | self.server_id = server['id'] |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 96 | self.client.delete_server(self.server_id) |
David Kranz | 1b39dd4 | 2012-05-30 17:04:09 -0400 | [diff] [blame] | 97 | self.client.wait_for_server_termination(self.server_id) |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 98 | self.assertRaises(exceptions.NotFound, self.client.reboot, |
| 99 | self.server_id, 'SOFT') |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 100 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 101 | @attr(type=['negative', 'gate']) |
Anju Tiwari | 8c78976 | 2013-07-22 11:02:05 +0530 | [diff] [blame] | 102 | def test_pause_paused_server(self): |
| 103 | # Pause a paused server. |
| 104 | resp, server = self.create_server(wait_until='ACTIVE') |
| 105 | self.server_id = server['id'] |
| 106 | self.client.pause_server(self.server_id) |
| 107 | self.client.wait_for_server_status(self.server_id, 'PAUSED') |
| 108 | self.assertRaises(exceptions.Duplicate, |
| 109 | self.client.pause_server, |
| 110 | self.server_id) |
| 111 | |
| 112 | @attr(type=['negative', 'gate']) |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 113 | def test_rebuild_deleted_server(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 114 | # Rebuild a deleted server |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 115 | |
Sean Dague | 22897e1 | 2013-02-25 17:54:09 -0500 | [diff] [blame] | 116 | resp, server = self.create_server() |
| 117 | self.server_id = server['id'] |
ravikumar-venkatesan | 36892e1 | 2012-05-11 18:01:41 +0000 | [diff] [blame] | 118 | self.client.delete_server(self.server_id) |
David Kranz | 1b39dd4 | 2012-05-30 17:04:09 -0400 | [diff] [blame] | 119 | self.client.wait_for_server_termination(self.server_id) |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 120 | |
| 121 | self.assertRaises(exceptions.NotFound, |
| 122 | self.client.rebuild, |
| 123 | self.server_id, self.image_ref_alt) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 124 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 125 | @attr(type=['negative', 'gate']) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 126 | def test_create_numeric_server_name(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 127 | # Create a server with a numeric name |
Sean Dague | e623f75 | 2013-02-27 14:52:15 -0500 | [diff] [blame] | 128 | if self.__class__._interface == "xml": |
| 129 | raise self.skipException("Not testable in XML") |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 130 | |
| 131 | server_name = 12345 |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 132 | self.assertRaises(exceptions.BadRequest, |
Sean Dague | 22897e1 | 2013-02-25 17:54:09 -0500 | [diff] [blame] | 133 | self.create_server, |
| 134 | name=server_name) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 135 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 136 | @attr(type=['negative', 'gate']) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 137 | def test_create_server_name_length_exceeds_256(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 138 | # Create a server with name length exceeding 256 characters |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 139 | |
| 140 | server_name = 'a' * 256 |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 141 | self.assertRaises(exceptions.BadRequest, |
Sean Dague | 22897e1 | 2013-02-25 17:54:09 -0500 | [diff] [blame] | 142 | self.create_server, |
| 143 | name=server_name) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 144 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 145 | @attr(type=['negative', 'gate']) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 146 | def test_create_with_invalid_network_uuid(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 147 | # Pass invalid network uuid while creating a server |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 148 | |
Chris Yeoh | fc9e333 | 2013-01-21 09:28:13 +1030 | [diff] [blame] | 149 | 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] | 150 | |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 151 | self.assertRaises(exceptions.BadRequest, |
Sean Dague | 22897e1 | 2013-02-25 17:54:09 -0500 | [diff] [blame] | 152 | self.create_server, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 153 | networks=networks) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 154 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 155 | @attr(type=['negative', 'gate']) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 156 | def test_create_with_non_existant_keypair(self): |
Chang Bo Guo | f099f80 | 2013-09-13 19:01:46 -0700 | [diff] [blame^] | 157 | # Pass a non-existent keypair while creating a server |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 158 | |
| 159 | key_name = rand_name('key') |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 160 | self.assertRaises(exceptions.BadRequest, |
Sean Dague | 22897e1 | 2013-02-25 17:54:09 -0500 | [diff] [blame] | 161 | self.create_server, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 162 | key_name=key_name) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 163 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 164 | @attr(type=['negative', 'gate']) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 165 | def test_create_server_metadata_exceeds_length_limit(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 166 | # Pass really long metadata while creating a server |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 167 | |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 168 | metadata = {'a': 'b' * 260} |
Sean Dague | 9b669e3 | 2012-12-13 18:40:08 -0500 | [diff] [blame] | 169 | self.assertRaises(exceptions.OverLimit, |
Sean Dague | 22897e1 | 2013-02-25 17:54:09 -0500 | [diff] [blame] | 170 | self.create_server, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 171 | meta=metadata) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 172 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 173 | @attr(type=['negative', 'gate']) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 174 | def test_update_name_of_non_existent_server(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 175 | # Update name of a non-existent server |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 176 | |
| 177 | server_name = rand_name('server') |
| 178 | new_name = rand_name('server') + '_updated' |
| 179 | |
| 180 | self.assertRaises(exceptions.NotFound, self.client.update_server, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 181 | server_name, name=new_name) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 182 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 183 | @attr(type=['negative', 'gate']) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 184 | def test_update_server_set_empty_name(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 185 | # Update name of the server to an empty string |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 186 | |
| 187 | server_name = rand_name('server') |
| 188 | new_name = '' |
| 189 | |
| 190 | self.assertRaises(exceptions.BadRequest, self.client.update_server, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 191 | server_name, name=new_name) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 192 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 193 | @attr(type=['negative', 'gate']) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 194 | def test_update_server_of_another_tenant(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 195 | # Update name of a server that belongs to another tenant |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 196 | |
Sean Dague | e623f75 | 2013-02-27 14:52:15 -0500 | [diff] [blame] | 197 | resp, server = self.create_server(wait_until='ACTIVE') |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 198 | new_name = server['id'] + '_new' |
| 199 | self.assertRaises(exceptions.NotFound, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 200 | self.alt_client.update_server, server['id'], |
| 201 | name=new_name) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 202 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 203 | @attr(type=['negative', 'gate']) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 204 | def test_update_server_name_length_exceeds_256(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 205 | # Update name of server exceed the name length limit |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 206 | |
Sean Dague | e623f75 | 2013-02-27 14:52:15 -0500 | [diff] [blame] | 207 | resp, server = self.create_server(wait_until='ACTIVE') |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 208 | new_name = 'a' * 256 |
| 209 | self.assertRaises(exceptions.BadRequest, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 210 | self.client.update_server, |
| 211 | server['id'], |
| 212 | name=new_name) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 213 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 214 | @attr(type=['negative', 'gate']) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 215 | def test_delete_non_existent_server(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 216 | # Delete a non existent server |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 217 | |
| 218 | self.assertRaises(exceptions.NotFound, self.client.delete_server, |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 219 | '999erra43') |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 220 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 221 | @attr(type=['negative', 'gate']) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 222 | def test_delete_a_server_of_another_tenant(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 223 | # Delete a server that belongs to another tenant |
Matthew Treinish | 38c4dc4 | 2013-07-30 14:30:07 -0400 | [diff] [blame] | 224 | resp, server = self.create_server(wait_until='ACTIVE') |
| 225 | self.assertRaises(exceptions.NotFound, |
| 226 | self.alt_client.delete_server, |
| 227 | server['id']) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 228 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 229 | @attr(type=['negative', 'gate']) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 230 | def test_delete_server_pass_negative_id(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 231 | # Pass an invalid string parameter to delete server |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 232 | |
Zhongyue Luo | 79d8d36 | 2012-09-25 13:49:27 +0800 | [diff] [blame] | 233 | self.assertRaises(exceptions.NotFound, self.client.delete_server, -1) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 234 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 235 | @attr(type=['negative', 'gate']) |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 236 | def test_delete_server_pass_id_exceeding_length_limit(self): |
Sean Dague | 4dd2c0b | 2013-01-03 17:50:28 -0500 | [diff] [blame] | 237 | # Pass a server ID that exceeds length limit to delete server |
Rohit Karajgi | dc300b2 | 2012-05-04 08:11:00 -0700 | [diff] [blame] | 238 | |
| 239 | self.assertRaises(exceptions.NotFound, self.client.delete_server, |
| 240 | sys.maxint + 1) |
donald-ngo | 78bd7f5 | 2013-02-08 14:35:16 -0800 | [diff] [blame] | 241 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 242 | @attr(type=['negative', 'gate']) |
donald-ngo | 78bd7f5 | 2013-02-08 14:35:16 -0800 | [diff] [blame] | 243 | def test_create_with_nonexistent_security_group(self): |
| 244 | # Create a server with a nonexistent security group |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 245 | |
| 246 | security_groups = [{'name': 'does_not_exist'}] |
Jordan Pittier | ce89f63 | 2013-06-25 16:04:39 +0000 | [diff] [blame] | 247 | self.assertRaises(exceptions.BadRequest, |
Sean Dague | 22897e1 | 2013-02-25 17:54:09 -0500 | [diff] [blame] | 248 | self.create_server, |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 249 | security_groups=security_groups) |
hi2suresh | 063acbc | 2013-02-20 09:32:03 +0000 | [diff] [blame] | 250 | |
Giampaolo Lauria | e9c7702 | 2013-05-22 01:23:58 -0400 | [diff] [blame] | 251 | @attr(type=['negative', 'gate']) |
hi2suresh | 063acbc | 2013-02-20 09:32:03 +0000 | [diff] [blame] | 252 | def test_get_non_existent_server(self): |
| 253 | # Get a non existent server details |
donald-ngo | 18edb81 | 2013-02-22 11:37:15 -0800 | [diff] [blame] | 254 | |
hi2suresh | 063acbc | 2013-02-20 09:32:03 +0000 | [diff] [blame] | 255 | self.assertRaises(exceptions.NotFound, self.client.get_server, |
| 256 | '999erra43') |
Sean Dague | e623f75 | 2013-02-27 14:52:15 -0500 | [diff] [blame] | 257 | |
Anju Tiwari | 6c33616 | 2013-08-08 12:21:02 +0530 | [diff] [blame] | 258 | @attr(type=['negative', 'gate']) |
| 259 | def test_stop_non_existent_server(self): |
| 260 | # Stop a non existent server |
| 261 | non_exist_id = rand_name('non-existent-server') |
| 262 | self.assertRaises(exceptions.NotFound, self.servers_client.stop, |
| 263 | non_exist_id) |
| 264 | |
| 265 | @attr(type=['negative', 'gate']) |
| 266 | def test_pause_non_existent_server(self): |
| 267 | # pause a non existent server |
| 268 | non_exist_id = rand_name('non-existent-server') |
| 269 | self.assertRaises(exceptions.NotFound, self.client.pause_server, |
| 270 | non_exist_id) |
| 271 | |
Sean Dague | e623f75 | 2013-02-27 14:52:15 -0500 | [diff] [blame] | 272 | |
Xiao Hanyu | ab61c07 | 2013-06-26 15:33:42 +0800 | [diff] [blame] | 273 | class ServersNegativeTestXML(ServersNegativeTestJSON): |
Sean Dague | e623f75 | 2013-02-27 14:52:15 -0500 | [diff] [blame] | 274 | _interface = 'xml' |