Switch to decorators.idempotent_id on compute.servers
So many modules are using test.idempotent_id and this is for switching to decorators.idempotent_id on compute.servers. Change-Id: I6a7f8633b4808469dd92f2ac668674fba0bdb0ca Related-Bug: #1616913
This commit is contained in:
parent
ebbfd1c74d
commit
14b0ae1a31
|
@ -184,7 +184,7 @@ class AttachInterfacesTestJSON(base.BaseV2ComputeTest):
|
|||
|
||||
self.assertEqual(sorted(list1), sorted(list2))
|
||||
|
||||
@test.idempotent_id('73fe8f02-590d-4bf1-b184-e9ca81065051')
|
||||
@decorators.idempotent_id('73fe8f02-590d-4bf1-b184-e9ca81065051')
|
||||
@test.services('network')
|
||||
def test_create_list_show_delete_interfaces(self):
|
||||
server, ifs = self._create_server_get_interfaces()
|
||||
|
@ -221,7 +221,7 @@ class AttachInterfacesTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertEqual(len(ifs) - 1, len(_ifs))
|
||||
|
||||
@test.attr(type='smoke')
|
||||
@test.idempotent_id('c7e0e60b-ee45-43d0-abeb-8596fd42a2f9')
|
||||
@decorators.idempotent_id('c7e0e60b-ee45-43d0-abeb-8596fd42a2f9')
|
||||
@test.services('network')
|
||||
def test_add_remove_fixed_ip(self):
|
||||
# Add and Remove the fixed IP to server.
|
||||
|
@ -246,7 +246,7 @@ class AttachInterfacesTestJSON(base.BaseV2ComputeTest):
|
|||
self.servers_client.remove_fixed_ip(server['id'], address=fixed_ip)
|
||||
|
||||
@decorators.skip_because(bug='1607714')
|
||||
@test.idempotent_id('2f3a0127-95c7-4977-92d2-bc5aec602fb4')
|
||||
@decorators.idempotent_id('2f3a0127-95c7-4977-92d2-bc5aec602fb4')
|
||||
def test_reassign_port_between_servers(self):
|
||||
"""Tests the following:
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# under the License.
|
||||
|
||||
from tempest.api.compute import base
|
||||
from tempest import test
|
||||
from tempest.lib import decorators
|
||||
|
||||
|
||||
class AZV2TestJSON(base.BaseV2ComputeTest):
|
||||
|
@ -25,7 +25,7 @@ class AZV2TestJSON(base.BaseV2ComputeTest):
|
|||
super(AZV2TestJSON, cls).setup_clients()
|
||||
cls.client = cls.availability_zone_client
|
||||
|
||||
@test.idempotent_id('a8333aa2-205c-449f-a828-d38c2489bf25')
|
||||
@decorators.idempotent_id('a8333aa2-205c-449f-a828-d38c2489bf25')
|
||||
def test_get_availability_zone_list_with_non_admin_user(self):
|
||||
# List of availability zone with non-administrator user
|
||||
availability_zone = self.client.list_availability_zones()
|
||||
|
|
|
@ -20,6 +20,7 @@ from tempest.api.compute import base
|
|||
from tempest.common.utils import data_utils
|
||||
from tempest.common.utils.linux import remote_client
|
||||
from tempest import config
|
||||
from tempest.lib import decorators
|
||||
from tempest import test
|
||||
|
||||
CONF = config.CONF
|
||||
|
@ -77,7 +78,7 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
|||
return net
|
||||
|
||||
@test.attr(type='smoke')
|
||||
@test.idempotent_id('5de47127-9977-400a-936f-abcfbec1218f')
|
||||
@decorators.idempotent_id('5de47127-9977-400a-936f-abcfbec1218f')
|
||||
def test_verify_server_details(self):
|
||||
# Verify the specified server attributes are set correctly
|
||||
self.assertEqual(self.accessIPv4, self.server['accessIPv4'])
|
||||
|
@ -91,7 +92,7 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertEqual(self.meta, self.server['metadata'])
|
||||
|
||||
@test.attr(type='smoke')
|
||||
@test.idempotent_id('9a438d88-10c6-4bcd-8b5b-5b6e25e1346f')
|
||||
@decorators.idempotent_id('9a438d88-10c6-4bcd-8b5b-5b6e25e1346f')
|
||||
def test_list_servers(self):
|
||||
# The created server should be in the list of all servers
|
||||
body = self.client.list_servers()
|
||||
|
@ -99,7 +100,7 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
|||
found = any([i for i in servers if i['id'] == self.server['id']])
|
||||
self.assertTrue(found)
|
||||
|
||||
@test.idempotent_id('585e934c-448e-43c4-acbf-d06a9b899997')
|
||||
@decorators.idempotent_id('585e934c-448e-43c4-acbf-d06a9b899997')
|
||||
def test_list_servers_with_detail(self):
|
||||
# The created server should be in the detailed list of all servers
|
||||
body = self.client.list_servers(detail=True)
|
||||
|
@ -107,7 +108,7 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
|||
found = any([i for i in servers if i['id'] == self.server['id']])
|
||||
self.assertTrue(found)
|
||||
|
||||
@test.idempotent_id('cbc0f52f-05aa-492b-bdc1-84b575ca294b')
|
||||
@decorators.idempotent_id('cbc0f52f-05aa-492b-bdc1-84b575ca294b')
|
||||
@testtools.skipUnless(CONF.validation.run_validation,
|
||||
'Instance validation tests are disabled.')
|
||||
def test_verify_created_server_vcpus(self):
|
||||
|
@ -123,7 +124,7 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
|||
servers_client=self.client)
|
||||
self.assertEqual(flavor['vcpus'], linux_client.get_number_of_vcpus())
|
||||
|
||||
@test.idempotent_id('ac1ad47f-984b-4441-9274-c9079b7a0666')
|
||||
@decorators.idempotent_id('ac1ad47f-984b-4441-9274-c9079b7a0666')
|
||||
@testtools.skipUnless(CONF.validation.run_validation,
|
||||
'Instance validation tests are disabled.')
|
||||
def test_host_name_is_same_as_server_name(self):
|
||||
|
@ -140,7 +141,7 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
|||
'hostname "%s" but got "%s".' % (self.name, hostname))
|
||||
self.assertEqual(self.name.lower(), hostname, msg)
|
||||
|
||||
@test.idempotent_id('ed20d3fb-9d1f-4329-b160-543fbd5d9811')
|
||||
@decorators.idempotent_id('ed20d3fb-9d1f-4329-b160-543fbd5d9811')
|
||||
@testtools.skipUnless(
|
||||
test.is_scheduler_filter_enabled("ServerGroupAffinityFilter"),
|
||||
'ServerGroupAffinityFilter is not available.')
|
||||
|
@ -156,7 +157,7 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
|||
['server_group'])
|
||||
self.assertIn(server['id'], server_group['members'])
|
||||
|
||||
@test.idempotent_id('0578d144-ed74-43f8-8e57-ab10dbf9b3c2')
|
||||
@decorators.idempotent_id('0578d144-ed74-43f8-8e57-ab10dbf9b3c2')
|
||||
@testtools.skipUnless(CONF.service_available.neutron,
|
||||
'Neutron service must be available.')
|
||||
def test_verify_multiple_nics_order(self):
|
||||
|
@ -194,7 +195,7 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
|||
for address, network in zip(addr, networks):
|
||||
self.assertIn(address, network)
|
||||
|
||||
@test.idempotent_id('1678d144-ed74-43f8-8e57-ab10dbf9b3c2')
|
||||
@decorators.idempotent_id('1678d144-ed74-43f8-8e57-ab10dbf9b3c2')
|
||||
@testtools.skipUnless(CONF.service_available.neutron,
|
||||
'Neutron service must be available.')
|
||||
def test_verify_duplicate_network_nics(self):
|
||||
|
@ -244,7 +245,7 @@ class ServersWithSpecificFlavorTestJSON(base.BaseV2ComputeAdminTest):
|
|||
|
||||
super(ServersWithSpecificFlavorTestJSON, cls).resource_setup()
|
||||
|
||||
@test.idempotent_id('b3c7bcfc-bb5b-4e22-b517-c7f686b802ca')
|
||||
@decorators.idempotent_id('b3c7bcfc-bb5b-4e22-b517-c7f686b802ca')
|
||||
@testtools.skipUnless(CONF.validation.run_validation,
|
||||
'Instance validation tests are disabled.')
|
||||
def test_verify_created_server_ephemeral_disk(self):
|
||||
|
|
|
@ -19,6 +19,7 @@ from tempest.api.compute import base
|
|||
from tempest.common import compute
|
||||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
from tempest.lib import decorators
|
||||
from tempest import test
|
||||
|
||||
CONF = config.CONF
|
||||
|
@ -34,21 +35,21 @@ class DeleteServersTestJSON(base.BaseV2ComputeTest):
|
|||
super(DeleteServersTestJSON, cls).setup_clients()
|
||||
cls.client = cls.servers_client
|
||||
|
||||
@test.idempotent_id('9e6e0c87-3352-42f7-9faf-5d6210dbd159')
|
||||
@decorators.idempotent_id('9e6e0c87-3352-42f7-9faf-5d6210dbd159')
|
||||
def test_delete_server_while_in_building_state(self):
|
||||
# Delete a server while it's VM state is Building
|
||||
server = self.create_test_server(wait_until='BUILD')
|
||||
self.client.delete_server(server['id'])
|
||||
waiters.wait_for_server_termination(self.client, server['id'])
|
||||
|
||||
@test.idempotent_id('925fdfb4-5b13-47ea-ac8a-c36ae6fddb05')
|
||||
@decorators.idempotent_id('925fdfb4-5b13-47ea-ac8a-c36ae6fddb05')
|
||||
def test_delete_active_server(self):
|
||||
# Delete a server while it's VM state is Active
|
||||
server = self.create_test_server(wait_until='ACTIVE')
|
||||
self.client.delete_server(server['id'])
|
||||
waiters.wait_for_server_termination(self.client, server['id'])
|
||||
|
||||
@test.idempotent_id('546d368c-bb6c-4645-979a-83ed16f3a6be')
|
||||
@decorators.idempotent_id('546d368c-bb6c-4645-979a-83ed16f3a6be')
|
||||
def test_delete_server_while_in_shutoff_state(self):
|
||||
# Delete a server while it's VM state is Shutoff
|
||||
server = self.create_test_server(wait_until='ACTIVE')
|
||||
|
@ -57,7 +58,7 @@ class DeleteServersTestJSON(base.BaseV2ComputeTest):
|
|||
self.client.delete_server(server['id'])
|
||||
waiters.wait_for_server_termination(self.client, server['id'])
|
||||
|
||||
@test.idempotent_id('943bd6e8-4d7a-4904-be83-7a6cc2d4213b')
|
||||
@decorators.idempotent_id('943bd6e8-4d7a-4904-be83-7a6cc2d4213b')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.pause,
|
||||
'Pause is not available.')
|
||||
def test_delete_server_while_in_pause_state(self):
|
||||
|
@ -68,7 +69,7 @@ class DeleteServersTestJSON(base.BaseV2ComputeTest):
|
|||
self.client.delete_server(server['id'])
|
||||
waiters.wait_for_server_termination(self.client, server['id'])
|
||||
|
||||
@test.idempotent_id('1f82ebd3-8253-4f4e-b93f-de9b7df56d8b')
|
||||
@decorators.idempotent_id('1f82ebd3-8253-4f4e-b93f-de9b7df56d8b')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.suspend,
|
||||
'Suspend is not available.')
|
||||
def test_delete_server_while_in_suspended_state(self):
|
||||
|
@ -79,7 +80,7 @@ class DeleteServersTestJSON(base.BaseV2ComputeTest):
|
|||
self.client.delete_server(server['id'])
|
||||
waiters.wait_for_server_termination(self.client, server['id'])
|
||||
|
||||
@test.idempotent_id('bb0cb402-09dd-4947-b6e5-5e7e1cfa61ad')
|
||||
@decorators.idempotent_id('bb0cb402-09dd-4947-b6e5-5e7e1cfa61ad')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.shelve,
|
||||
'Shelve is not available.')
|
||||
def test_delete_server_while_in_shelved_state(self):
|
||||
|
@ -90,7 +91,7 @@ class DeleteServersTestJSON(base.BaseV2ComputeTest):
|
|||
self.client.delete_server(server['id'])
|
||||
waiters.wait_for_server_termination(self.client, server['id'])
|
||||
|
||||
@test.idempotent_id('ab0c38b4-cdd8-49d3-9b92-0cb898723c01')
|
||||
@decorators.idempotent_id('ab0c38b4-cdd8-49d3-9b92-0cb898723c01')
|
||||
@testtools.skipIf(not CONF.compute_feature_enabled.resize,
|
||||
'Resize not available.')
|
||||
def test_delete_server_while_in_verify_resize_state(self):
|
||||
|
@ -102,7 +103,7 @@ class DeleteServersTestJSON(base.BaseV2ComputeTest):
|
|||
self.client.delete_server(server['id'])
|
||||
waiters.wait_for_server_termination(self.client, server['id'])
|
||||
|
||||
@test.idempotent_id('d0f3f0d6-d9b6-4a32-8da4-23015dcab23c')
|
||||
@decorators.idempotent_id('d0f3f0d6-d9b6-4a32-8da4-23015dcab23c')
|
||||
@test.services('volume')
|
||||
def test_delete_server_while_in_attached_volume(self):
|
||||
# Delete a server while a volume is attached to it
|
||||
|
@ -128,7 +129,7 @@ class DeleteServersAdminTestJSON(base.BaseV2ComputeAdminTest):
|
|||
cls.non_admin_client = cls.servers_client
|
||||
cls.admin_client = cls.os_adm.servers_client
|
||||
|
||||
@test.idempotent_id('99774678-e072-49d1-9d2a-49a59bc56063')
|
||||
@decorators.idempotent_id('99774678-e072-49d1-9d2a-49a59bc56063')
|
||||
def test_delete_server_while_in_error_state(self):
|
||||
# Delete a server while it's VM state is error
|
||||
server = self.create_test_server(wait_until='ACTIVE')
|
||||
|
@ -141,7 +142,7 @@ class DeleteServersAdminTestJSON(base.BaseV2ComputeAdminTest):
|
|||
server['id'],
|
||||
ignore_error=True)
|
||||
|
||||
@test.idempotent_id('73177903-6737-4f27-a60c-379e8ae8cf48')
|
||||
@decorators.idempotent_id('73177903-6737-4f27-a60c-379e8ae8cf48')
|
||||
def test_admin_delete_servers_of_others(self):
|
||||
# Administrator can delete servers of others
|
||||
server = self.create_test_server(wait_until='ACTIVE')
|
||||
|
|
|
@ -20,6 +20,7 @@ from tempest.api.compute import base
|
|||
from tempest.common.utils import data_utils
|
||||
from tempest.common.utils.linux import remote_client
|
||||
from tempest import config
|
||||
from tempest.lib import decorators
|
||||
from tempest.lib import exceptions
|
||||
from tempest import test
|
||||
|
||||
|
@ -83,7 +84,7 @@ class DeviceTaggingTest(base.BaseV2ComputeTest):
|
|||
'net-2-100', 'net-2-200',
|
||||
'boot', 'other'])
|
||||
|
||||
@test.idempotent_id('a2e65a6c-66f1-4442-aaa8-498c31778d96')
|
||||
@decorators.idempotent_id('a2e65a6c-66f1-4442-aaa8-498c31778d96')
|
||||
@test.services('network', 'volume', 'image')
|
||||
def test_device_tagging(self):
|
||||
# Create volumes
|
||||
|
|
|
@ -18,7 +18,7 @@ import testtools
|
|||
from tempest.api.compute import base
|
||||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
from tempest import test
|
||||
from tempest.lib import decorators
|
||||
|
||||
CONF = config.CONF
|
||||
|
||||
|
@ -46,7 +46,7 @@ class ServerDiskConfigTestJSON(base.BaseV2ComputeTest):
|
|||
server = self.client.show_server(server['id'])['server']
|
||||
self.assertEqual(disk_config, server['OS-DCF:diskConfig'])
|
||||
|
||||
@test.idempotent_id('bef56b09-2e8c-4883-a370-4950812f430e')
|
||||
@decorators.idempotent_id('bef56b09-2e8c-4883-a370-4950812f430e')
|
||||
def test_rebuild_server_with_manual_disk_config(self):
|
||||
# A server should be rebuilt using the manual disk config option
|
||||
server = self.create_test_server(wait_until='ACTIVE')
|
||||
|
@ -65,7 +65,7 @@ class ServerDiskConfigTestJSON(base.BaseV2ComputeTest):
|
|||
server = self.client.show_server(server['id'])['server']
|
||||
self.assertEqual('MANUAL', server['OS-DCF:diskConfig'])
|
||||
|
||||
@test.idempotent_id('9c9fae77-4feb-402f-8450-bf1c8b609713')
|
||||
@decorators.idempotent_id('9c9fae77-4feb-402f-8450-bf1c8b609713')
|
||||
def test_rebuild_server_with_auto_disk_config(self):
|
||||
# A server should be rebuilt using the auto disk config option
|
||||
server = self.create_test_server(wait_until='ACTIVE')
|
||||
|
@ -84,7 +84,7 @@ class ServerDiskConfigTestJSON(base.BaseV2ComputeTest):
|
|||
server = self.client.show_server(server['id'])['server']
|
||||
self.assertEqual('AUTO', server['OS-DCF:diskConfig'])
|
||||
|
||||
@test.idempotent_id('414e7e93-45b5-44bc-8e03-55159c6bfc97')
|
||||
@decorators.idempotent_id('414e7e93-45b5-44bc-8e03-55159c6bfc97')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.resize,
|
||||
'Resize not available.')
|
||||
def test_resize_server_from_manual_to_auto(self):
|
||||
|
@ -100,7 +100,7 @@ class ServerDiskConfigTestJSON(base.BaseV2ComputeTest):
|
|||
server = self.client.show_server(server['id'])['server']
|
||||
self.assertEqual('AUTO', server['OS-DCF:diskConfig'])
|
||||
|
||||
@test.idempotent_id('693d16f3-556c-489a-8bac-3d0ca2490bad')
|
||||
@decorators.idempotent_id('693d16f3-556c-489a-8bac-3d0ca2490bad')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.resize,
|
||||
'Resize not available.')
|
||||
def test_resize_server_from_auto_to_manual(self):
|
||||
|
@ -116,7 +116,7 @@ class ServerDiskConfigTestJSON(base.BaseV2ComputeTest):
|
|||
server = self.client.show_server(server['id'])['server']
|
||||
self.assertEqual('MANUAL', server['OS-DCF:diskConfig'])
|
||||
|
||||
@test.idempotent_id('5ef18867-358d-4de9-b3c9-94d4ba35742f')
|
||||
@decorators.idempotent_id('5ef18867-358d-4de9-b3c9-94d4ba35742f')
|
||||
def test_update_server_from_auto_to_manual(self):
|
||||
# A server should be updated from auto to manual disk config
|
||||
server = self.create_test_server(wait_until='ACTIVE')
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
from tempest.api.compute import base
|
||||
from tempest.common import waiters
|
||||
from tempest import test
|
||||
from tempest.lib import decorators
|
||||
|
||||
|
||||
class InstanceActionsTestJSON(base.BaseV2ComputeTest):
|
||||
|
@ -31,7 +31,7 @@ class InstanceActionsTestJSON(base.BaseV2ComputeTest):
|
|||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
cls.request_id = cls.server.response['x-compute-request-id']
|
||||
|
||||
@test.idempotent_id('77ca5cc5-9990-45e0-ab98-1de8fead201a')
|
||||
@decorators.idempotent_id('77ca5cc5-9990-45e0-ab98-1de8fead201a')
|
||||
def test_list_instance_actions(self):
|
||||
# List actions of the provided server
|
||||
self.client.reboot_server(self.server['id'], type='HARD')
|
||||
|
@ -44,7 +44,7 @@ class InstanceActionsTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertEqual(sorted([i['action'] for i in body]),
|
||||
['create', 'reboot'])
|
||||
|
||||
@test.idempotent_id('aacc71ca-1d70-4aa5-bbf6-0ff71470e43c')
|
||||
@decorators.idempotent_id('aacc71ca-1d70-4aa5-bbf6-0ff71470e43c')
|
||||
def test_get_instance_action(self):
|
||||
# Get the action details of the provided server
|
||||
body = self.client.show_instance_action(
|
||||
|
@ -63,7 +63,7 @@ class InstanceActionsV221TestJSON(base.BaseV2ComputeTest):
|
|||
super(InstanceActionsV221TestJSON, cls).setup_clients()
|
||||
cls.client = cls.servers_client
|
||||
|
||||
@test.idempotent_id('0a0f85d4-10fa-41f6-bf80-a54fb4aa2ae1')
|
||||
@decorators.idempotent_id('0a0f85d4-10fa-41f6-bf80-a54fb4aa2ae1')
|
||||
def test_get_list_deleted_instance_actions(self):
|
||||
|
||||
# List actions of the deleted server
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
from tempest.api.compute import base
|
||||
from tempest.common.utils import data_utils
|
||||
from tempest.lib import decorators
|
||||
from tempest.lib import exceptions as lib_exc
|
||||
from tempest import test
|
||||
|
||||
|
@ -32,7 +33,7 @@ class InstanceActionsNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('67e1fce6-7ec2-45c6-92d4-0a8f1a632910')
|
||||
@decorators.idempotent_id('67e1fce6-7ec2-45c6-92d4-0a8f1a632910')
|
||||
def test_list_instance_actions_non_existent_server(self):
|
||||
# List actions of the non-existent server id
|
||||
non_existent_server_id = data_utils.rand_uuid()
|
||||
|
@ -41,7 +42,7 @@ class InstanceActionsNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
non_existent_server_id)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('0269f40a-6f18-456c-b336-c03623c897f1')
|
||||
@decorators.idempotent_id('0269f40a-6f18-456c-b336-c03623c897f1')
|
||||
def test_get_instance_action_invalid_request(self):
|
||||
# Get the action details of the provided server with invalid request
|
||||
self.assertRaises(lib_exc.NotFound, self.client.show_instance_action,
|
||||
|
|
|
@ -19,7 +19,6 @@ from tempest.common.utils import data_utils
|
|||
from tempest.common import waiters
|
||||
from tempest.lib import decorators
|
||||
from tempest.lib import exceptions as lib_exc
|
||||
from tempest import test
|
||||
|
||||
|
||||
class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
||||
|
@ -84,7 +83,7 @@ class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
|||
flavor=cls.flavor_ref_alt,
|
||||
wait_until='ACTIVE')
|
||||
|
||||
@test.idempotent_id('05e8a8e7-9659-459a-989d-92c2f501f4ba')
|
||||
@decorators.idempotent_id('05e8a8e7-9659-459a-989d-92c2f501f4ba')
|
||||
@decorators.skip_unless_attr('multiple_images', 'Only one image found')
|
||||
def test_list_servers_filter_by_image(self):
|
||||
# Filter the list of servers by image
|
||||
|
@ -96,7 +95,7 @@ class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertNotIn(self.s2['id'], map(lambda x: x['id'], servers))
|
||||
self.assertIn(self.s3['id'], map(lambda x: x['id'], servers))
|
||||
|
||||
@test.idempotent_id('573637f5-7325-47bb-9144-3476d0416908')
|
||||
@decorators.idempotent_id('573637f5-7325-47bb-9144-3476d0416908')
|
||||
def test_list_servers_filter_by_flavor(self):
|
||||
# Filter the list of servers by flavor
|
||||
params = {'flavor': self.flavor_ref_alt}
|
||||
|
@ -107,7 +106,7 @@ class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertNotIn(self.s2['id'], map(lambda x: x['id'], servers))
|
||||
self.assertIn(self.s3['id'], map(lambda x: x['id'], servers))
|
||||
|
||||
@test.idempotent_id('9b067a7b-7fee-4f6a-b29c-be43fe18fc5a')
|
||||
@decorators.idempotent_id('9b067a7b-7fee-4f6a-b29c-be43fe18fc5a')
|
||||
def test_list_servers_filter_by_server_name(self):
|
||||
# Filter the list of servers by server name
|
||||
params = {'name': self.s1_name}
|
||||
|
@ -118,7 +117,7 @@ class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertNotIn(self.s2_name, map(lambda x: x['name'], servers))
|
||||
self.assertNotIn(self.s3_name, map(lambda x: x['name'], servers))
|
||||
|
||||
@test.idempotent_id('ca78e20e-fddb-4ce6-b7f7-bcbf8605e66e')
|
||||
@decorators.idempotent_id('ca78e20e-fddb-4ce6-b7f7-bcbf8605e66e')
|
||||
def test_list_servers_filter_by_active_status(self):
|
||||
# Filter the list of servers by server active status
|
||||
params = {'status': 'active'}
|
||||
|
@ -129,7 +128,7 @@ class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertIn(self.s2['id'], map(lambda x: x['id'], servers))
|
||||
self.assertIn(self.s3['id'], map(lambda x: x['id'], servers))
|
||||
|
||||
@test.idempotent_id('451dbbb2-f330-4a9f-b0e1-5f5d2cb0f34c')
|
||||
@decorators.idempotent_id('451dbbb2-f330-4a9f-b0e1-5f5d2cb0f34c')
|
||||
def test_list_servers_filter_by_shutoff_status(self):
|
||||
# Filter the list of servers by server shutoff status
|
||||
params = {'status': 'shutoff'}
|
||||
|
@ -146,21 +145,21 @@ class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertNotIn(self.s2['id'], map(lambda x: x['id'], servers))
|
||||
self.assertNotIn(self.s3['id'], map(lambda x: x['id'], servers))
|
||||
|
||||
@test.idempotent_id('614cdfc1-d557-4bac-915b-3e67b48eee76')
|
||||
@decorators.idempotent_id('614cdfc1-d557-4bac-915b-3e67b48eee76')
|
||||
def test_list_servers_filter_by_limit(self):
|
||||
# Verify only the expected number of servers are returned
|
||||
params = {'limit': 1}
|
||||
servers = self.client.list_servers(**params)
|
||||
self.assertEqual(1, len([x for x in servers['servers'] if 'id' in x]))
|
||||
|
||||
@test.idempotent_id('b1495414-2d93-414c-8019-849afe8d319e')
|
||||
@decorators.idempotent_id('b1495414-2d93-414c-8019-849afe8d319e')
|
||||
def test_list_servers_filter_by_zero_limit(self):
|
||||
# Verify only the expected number of servers are returned
|
||||
params = {'limit': 0}
|
||||
servers = self.client.list_servers(**params)
|
||||
self.assertEqual(0, len(servers['servers']))
|
||||
|
||||
@test.idempotent_id('37791bbd-90c0-4de0-831e-5f38cba9c6b3')
|
||||
@decorators.idempotent_id('37791bbd-90c0-4de0-831e-5f38cba9c6b3')
|
||||
def test_list_servers_filter_by_exceed_limit(self):
|
||||
# Verify only the expected number of servers are returned
|
||||
params = {'limit': 100000}
|
||||
|
@ -169,7 +168,7 @@ class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertEqual(len([x for x in all_servers['servers'] if 'id' in x]),
|
||||
len([x for x in servers['servers'] if 'id' in x]))
|
||||
|
||||
@test.idempotent_id('b3304c3b-97df-46d2-8cd3-e2b6659724e7')
|
||||
@decorators.idempotent_id('b3304c3b-97df-46d2-8cd3-e2b6659724e7')
|
||||
@decorators.skip_unless_attr('multiple_images', 'Only one image found')
|
||||
def test_list_servers_detailed_filter_by_image(self):
|
||||
# Filter the detailed list of servers by image
|
||||
|
@ -181,7 +180,7 @@ class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertNotIn(self.s2['id'], map(lambda x: x['id'], servers))
|
||||
self.assertIn(self.s3['id'], map(lambda x: x['id'], servers))
|
||||
|
||||
@test.idempotent_id('80c574cc-0925-44ba-8602-299028357dd9')
|
||||
@decorators.idempotent_id('80c574cc-0925-44ba-8602-299028357dd9')
|
||||
def test_list_servers_detailed_filter_by_flavor(self):
|
||||
# Filter the detailed list of servers by flavor
|
||||
params = {'flavor': self.flavor_ref_alt}
|
||||
|
@ -192,7 +191,7 @@ class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertNotIn(self.s2['id'], map(lambda x: x['id'], servers))
|
||||
self.assertIn(self.s3['id'], map(lambda x: x['id'], servers))
|
||||
|
||||
@test.idempotent_id('f9eb2b70-735f-416c-b260-9914ac6181e4')
|
||||
@decorators.idempotent_id('f9eb2b70-735f-416c-b260-9914ac6181e4')
|
||||
def test_list_servers_detailed_filter_by_server_name(self):
|
||||
# Filter the detailed list of servers by server name
|
||||
params = {'name': self.s1_name}
|
||||
|
@ -203,7 +202,7 @@ class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertNotIn(self.s2_name, map(lambda x: x['name'], servers))
|
||||
self.assertNotIn(self.s3_name, map(lambda x: x['name'], servers))
|
||||
|
||||
@test.idempotent_id('de2612ab-b7dd-4044-b0b1-d2539601911f')
|
||||
@decorators.idempotent_id('de2612ab-b7dd-4044-b0b1-d2539601911f')
|
||||
def test_list_servers_detailed_filter_by_server_status(self):
|
||||
# Filter the detailed list of servers by server status
|
||||
params = {'status': 'active'}
|
||||
|
@ -217,7 +216,7 @@ class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertEqual(['ACTIVE'] * 3, [x['status'] for x in servers
|
||||
if x['id'] in test_ids])
|
||||
|
||||
@test.idempotent_id('e9f624ee-92af-4562-8bec-437945a18dcb')
|
||||
@decorators.idempotent_id('e9f624ee-92af-4562-8bec-437945a18dcb')
|
||||
def test_list_servers_filtered_by_name_wildcard(self):
|
||||
# List all servers that contains '-instance' in name
|
||||
params = {'name': '-instance'}
|
||||
|
@ -239,7 +238,7 @@ class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertNotIn(self.s2_name, map(lambda x: x['name'], servers))
|
||||
self.assertNotIn(self.s3_name, map(lambda x: x['name'], servers))
|
||||
|
||||
@test.idempotent_id('24a89b0c-0d55-4a28-847f-45075f19b27b')
|
||||
@decorators.idempotent_id('24a89b0c-0d55-4a28-847f-45075f19b27b')
|
||||
def test_list_servers_filtered_by_name_regex(self):
|
||||
# list of regex that should match s1, s2 and s3
|
||||
regexes = ['^.*\-instance\-[0-9]+$', '^.*\-instance\-.*$']
|
||||
|
@ -263,7 +262,7 @@ class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertNotIn(self.s2_name, map(lambda x: x['name'], servers))
|
||||
self.assertNotIn(self.s3_name, map(lambda x: x['name'], servers))
|
||||
|
||||
@test.idempotent_id('43a1242e-7b31-48d1-88f2-3f72aa9f2077')
|
||||
@decorators.idempotent_id('43a1242e-7b31-48d1-88f2-3f72aa9f2077')
|
||||
def test_list_servers_filtered_by_ip(self):
|
||||
# Filter servers by ip
|
||||
# Here should be listed 1 server
|
||||
|
@ -282,7 +281,7 @@ class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertNotIn(self.s3_name, map(lambda x: x['name'], servers))
|
||||
|
||||
@decorators.skip_because(bug="1540645")
|
||||
@test.idempotent_id('a905e287-c35e-42f2-b132-d02b09f3654a')
|
||||
@decorators.idempotent_id('a905e287-c35e-42f2-b132-d02b09f3654a')
|
||||
def test_list_servers_filtered_by_ip_regex(self):
|
||||
# Filter servers by regex ip
|
||||
# List all servers filtered by part of ip address.
|
||||
|
@ -312,7 +311,7 @@ class ListServerFiltersTestJSON(base.BaseV2ComputeTest):
|
|||
"%s not found in %s, all servers %s" %
|
||||
(self.s3_name, servers, all_servers))
|
||||
|
||||
@test.idempotent_id('67aec2d0-35fe-4503-9f92-f13272b867ed')
|
||||
@decorators.idempotent_id('67aec2d0-35fe-4503-9f92-f13272b867ed')
|
||||
def test_list_servers_detailed_limit_results(self):
|
||||
# Verify only the expected number of detailed results are returned
|
||||
params = {'limit': 1}
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
from tempest.api.compute import base
|
||||
from tempest.common import waiters
|
||||
from tempest.lib import decorators
|
||||
from tempest.lib import exceptions as lib_exc
|
||||
from tempest import test
|
||||
|
||||
|
@ -46,7 +47,7 @@ class ListServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
cls.deleted_fixtures.append(srv)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('24a26f1a-1ddc-4eea-b0d7-a90cc874ad8f')
|
||||
@decorators.idempotent_id('24a26f1a-1ddc-4eea-b0d7-a90cc874ad8f')
|
||||
def test_list_servers_with_a_deleted_server(self):
|
||||
# Verify deleted servers do not show by default in list servers
|
||||
# List servers and verify server not returned
|
||||
|
@ -58,7 +59,7 @@ class ListServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertEqual([], actual)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('ff01387d-c7ad-47b4-ae9e-64fa214638fe')
|
||||
@decorators.idempotent_id('ff01387d-c7ad-47b4-ae9e-64fa214638fe')
|
||||
def test_list_servers_by_non_existing_image(self):
|
||||
# Listing servers for a non existing image returns empty list
|
||||
body = self.client.list_servers(image='non_existing_image')
|
||||
|
@ -66,7 +67,7 @@ class ListServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertEqual([], servers)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('5913660b-223b-44d4-a651-a0fbfd44ca75')
|
||||
@decorators.idempotent_id('5913660b-223b-44d4-a651-a0fbfd44ca75')
|
||||
def test_list_servers_by_non_existing_flavor(self):
|
||||
# Listing servers by non existing flavor returns empty list
|
||||
body = self.client.list_servers(flavor='non_existing_flavor')
|
||||
|
@ -74,7 +75,7 @@ class ListServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertEqual([], servers)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('e2c77c4a-000a-4af3-a0bd-629a328bde7c')
|
||||
@decorators.idempotent_id('e2c77c4a-000a-4af3-a0bd-629a328bde7c')
|
||||
def test_list_servers_by_non_existing_server_name(self):
|
||||
# Listing servers for a non existent server name returns empty list
|
||||
body = self.client.list_servers(name='non_existing_server_name')
|
||||
|
@ -82,21 +83,21 @@ class ListServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertEqual([], servers)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('fcdf192d-0f74-4d89-911f-1ec002b822c4')
|
||||
@decorators.idempotent_id('fcdf192d-0f74-4d89-911f-1ec002b822c4')
|
||||
def test_list_servers_status_non_existing(self):
|
||||
# Return an empty list when invalid status is specified
|
||||
body = self.client.list_servers(status='non_existing_status')
|
||||
servers = body['servers']
|
||||
self.assertEqual([], servers)
|
||||
|
||||
@test.idempotent_id('12c80a9f-2dec-480e-882b-98ba15757659')
|
||||
@decorators.idempotent_id('12c80a9f-2dec-480e-882b-98ba15757659')
|
||||
def test_list_servers_by_limits(self):
|
||||
# List servers by specifying limits
|
||||
body = self.client.list_servers(limit=1)
|
||||
self.assertEqual(1, len([x for x in body['servers'] if 'id' in x]))
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('d47c17fb-eebd-4287-8e95-f20a7e627b18')
|
||||
@decorators.idempotent_id('d47c17fb-eebd-4287-8e95-f20a7e627b18')
|
||||
def test_list_servers_by_limits_greater_than_actual_count(self):
|
||||
# Gather the complete list of servers in the project for reference
|
||||
full_list = self.client.list_servers()['servers']
|
||||
|
@ -106,21 +107,21 @@ class ListServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertEqual(len(full_list), len(body['servers']))
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('679bc053-5e70-4514-9800-3dfab1a380a6')
|
||||
@decorators.idempotent_id('679bc053-5e70-4514-9800-3dfab1a380a6')
|
||||
def test_list_servers_by_limits_pass_string(self):
|
||||
# Return an error if a string value is passed for limit
|
||||
self.assertRaises(lib_exc.BadRequest, self.client.list_servers,
|
||||
limit='testing')
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('62610dd9-4713-4ee0-8beb-fd2c1aa7f950')
|
||||
@decorators.idempotent_id('62610dd9-4713-4ee0-8beb-fd2c1aa7f950')
|
||||
def test_list_servers_by_limits_pass_negative_value(self):
|
||||
# Return an error if a negative value for limit is passed
|
||||
self.assertRaises(lib_exc.BadRequest, self.client.list_servers,
|
||||
limit=-1)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('87d12517-e20a-4c9c-97b6-dd1628d6d6c9')
|
||||
@decorators.idempotent_id('87d12517-e20a-4c9c-97b6-dd1628d6d6c9')
|
||||
def test_list_servers_by_changes_since_invalid_date(self):
|
||||
# Return an error when invalid date format is passed
|
||||
params = {'changes-since': '2011/01/01'}
|
||||
|
@ -128,7 +129,7 @@ class ListServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
**params)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('74745ad8-b346-45b5-b9b8-509d7447fc1f')
|
||||
@decorators.idempotent_id('74745ad8-b346-45b5-b9b8-509d7447fc1f')
|
||||
def test_list_servers_by_changes_since_future_date(self):
|
||||
# Return an empty list when a date in the future is passed
|
||||
changes_since = {'changes-since': '2051-01-01T12:34:00Z'}
|
||||
|
@ -136,7 +137,7 @@ class ListServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertEqual(0, len(body['servers']))
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('93055106-2d34-46fe-af68-d9ddbf7ee570')
|
||||
@decorators.idempotent_id('93055106-2d34-46fe-af68-d9ddbf7ee570')
|
||||
def test_list_servers_detail_server_is_deleted(self):
|
||||
# Server details are not listed for a deleted server
|
||||
deleted_ids = [s['id'] for s in self.deleted_fixtures]
|
||||
|
|
|
@ -14,12 +14,12 @@
|
|||
# under the License.
|
||||
|
||||
from tempest.api.compute import base
|
||||
from tempest import test
|
||||
from tempest.lib import decorators
|
||||
|
||||
|
||||
class MultipleCreateTestJSON(base.BaseV2ComputeTest):
|
||||
|
||||
@test.idempotent_id('61e03386-89c3-449c-9bb1-a06f423fd9d1')
|
||||
@decorators.idempotent_id('61e03386-89c3-449c-9bb1-a06f423fd9d1')
|
||||
def test_multiple_create(self):
|
||||
body = self.create_test_server(wait_until='ACTIVE',
|
||||
min_count=1,
|
||||
|
@ -29,7 +29,7 @@ class MultipleCreateTestJSON(base.BaseV2ComputeTest):
|
|||
# contains return_reservation_id=False
|
||||
self.assertNotIn('reservation_id', body)
|
||||
|
||||
@test.idempotent_id('864777fb-2f1e-44e3-b5b9-3eb6fa84f2f7')
|
||||
@decorators.idempotent_id('864777fb-2f1e-44e3-b5b9-3eb6fa84f2f7')
|
||||
def test_multiple_create_with_reservation_return(self):
|
||||
body = self.create_test_server(wait_until='ACTIVE',
|
||||
min_count=1,
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
# under the License.
|
||||
|
||||
from tempest.api.compute import base
|
||||
from tempest.lib import decorators
|
||||
from tempest.lib import exceptions as lib_exc
|
||||
from tempest import test
|
||||
|
||||
|
@ -21,35 +22,35 @@ from tempest import test
|
|||
class MultipleCreateNegativeTestJSON(base.BaseV2ComputeTest):
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('daf29d8d-e928-4a01-9a8c-b129603f3fc0')
|
||||
@decorators.idempotent_id('daf29d8d-e928-4a01-9a8c-b129603f3fc0')
|
||||
def test_min_count_less_than_one(self):
|
||||
invalid_min_count = 0
|
||||
self.assertRaises(lib_exc.BadRequest, self.create_test_server,
|
||||
min_count=invalid_min_count)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('999aa722-d624-4423-b813-0d1ac9884d7a')
|
||||
@decorators.idempotent_id('999aa722-d624-4423-b813-0d1ac9884d7a')
|
||||
def test_min_count_non_integer(self):
|
||||
invalid_min_count = 2.5
|
||||
self.assertRaises(lib_exc.BadRequest, self.create_test_server,
|
||||
min_count=invalid_min_count)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('a6f9c2ab-e060-4b82-b23c-4532cb9390ff')
|
||||
@decorators.idempotent_id('a6f9c2ab-e060-4b82-b23c-4532cb9390ff')
|
||||
def test_max_count_less_than_one(self):
|
||||
invalid_max_count = 0
|
||||
self.assertRaises(lib_exc.BadRequest, self.create_test_server,
|
||||
max_count=invalid_max_count)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('9c5698d1-d7af-4c80-b971-9d403135eea2')
|
||||
@decorators.idempotent_id('9c5698d1-d7af-4c80-b971-9d403135eea2')
|
||||
def test_max_count_non_integer(self):
|
||||
invalid_max_count = 2.5
|
||||
self.assertRaises(lib_exc.BadRequest, self.create_test_server,
|
||||
max_count=invalid_max_count)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('476da616-f1ef-4271-a9b1-b9fc87727cdf')
|
||||
@decorators.idempotent_id('476da616-f1ef-4271-a9b1-b9fc87727cdf')
|
||||
def test_max_count_less_than_min_count(self):
|
||||
min_count = 3
|
||||
max_count = 2
|
||||
|
|
|
@ -75,7 +75,7 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
super(ServerActionsTestJSON, cls).resource_setup()
|
||||
cls.server_id = cls.rebuild_server(None, validatable=True)
|
||||
|
||||
@test.idempotent_id('6158df09-4b82-4ab3-af6d-29cf36af858d')
|
||||
@decorators.idempotent_id('6158df09-4b82-4ab3-af6d-29cf36af858d')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.change_password,
|
||||
'Change password not available.')
|
||||
def test_change_server_password(self):
|
||||
|
@ -134,13 +134,13 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
'%s > %s' % (new_boot_time, boot_time))
|
||||
|
||||
@test.attr(type='smoke')
|
||||
@test.idempotent_id('2cb1baf6-ac8d-4429-bf0d-ba8a0ba53e32')
|
||||
@decorators.idempotent_id('2cb1baf6-ac8d-4429-bf0d-ba8a0ba53e32')
|
||||
def test_reboot_server_hard(self):
|
||||
# The server should be power cycled
|
||||
self._test_reboot_server('HARD')
|
||||
|
||||
@decorators.skip_because(bug="1014647")
|
||||
@test.idempotent_id('4640e3ef-a5df-482e-95a1-ceeeb0faa84d')
|
||||
@decorators.idempotent_id('4640e3ef-a5df-482e-95a1-ceeeb0faa84d')
|
||||
def test_reboot_server_soft(self):
|
||||
# The server should be signaled to reboot gracefully
|
||||
self._test_reboot_server('SOFT')
|
||||
|
@ -154,7 +154,7 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
.format(image_ref, rebuilt_server['image']['id']))
|
||||
self.assertEqual(image_ref, rebuilt_server['image']['id'], msg)
|
||||
|
||||
@test.idempotent_id('aaa6cdf3-55a7-461a-add9-1c8596b9a07c')
|
||||
@decorators.idempotent_id('aaa6cdf3-55a7-461a-add9-1c8596b9a07c')
|
||||
def test_rebuild_server(self):
|
||||
# The server should be rebuilt using the provided image and data
|
||||
meta = {'rebuild': 'server'}
|
||||
|
@ -202,7 +202,7 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
servers_client=self.client)
|
||||
linux_client.validate_authentication()
|
||||
|
||||
@test.idempotent_id('30449a88-5aff-4f9b-9866-6ee9b17f906d')
|
||||
@decorators.idempotent_id('30449a88-5aff-4f9b-9866-6ee9b17f906d')
|
||||
def test_rebuild_server_in_stop_state(self):
|
||||
# The server in stop state should be rebuilt using the provided
|
||||
# image and remain in SHUTOFF state
|
||||
|
@ -234,7 +234,7 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
|
||||
self.client.start_server(self.server_id)
|
||||
|
||||
@test.idempotent_id('b68bd8d6-855d-4212-b59b-2e704044dace')
|
||||
@decorators.idempotent_id('b68bd8d6-855d-4212-b59b-2e704044dace')
|
||||
@test.services('volume')
|
||||
def test_rebuild_server_with_volume_attached(self):
|
||||
# create a new volume and attach it to the server
|
||||
|
@ -281,19 +281,19 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
# NOTE(mriedem): tearDown requires the server to be started.
|
||||
self.client.start_server(self.server_id)
|
||||
|
||||
@test.idempotent_id('1499262a-9328-4eda-9068-db1ac57498d2')
|
||||
@decorators.idempotent_id('1499262a-9328-4eda-9068-db1ac57498d2')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.resize,
|
||||
'Resize not available.')
|
||||
def test_resize_server_confirm(self):
|
||||
self._test_resize_server_confirm(stop=False)
|
||||
|
||||
@test.idempotent_id('138b131d-66df-48c9-a171-64f45eb92962')
|
||||
@decorators.idempotent_id('138b131d-66df-48c9-a171-64f45eb92962')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.resize,
|
||||
'Resize not available.')
|
||||
def test_resize_server_confirm_from_stopped(self):
|
||||
self._test_resize_server_confirm(stop=True)
|
||||
|
||||
@test.idempotent_id('c03aab19-adb1-44f5-917d-c419577e9e68')
|
||||
@decorators.idempotent_id('c03aab19-adb1-44f5-917d-c419577e9e68')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.resize,
|
||||
'Resize not available.')
|
||||
def test_resize_server_revert(self):
|
||||
|
@ -313,7 +313,7 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
server = self.client.show_server(self.server_id)['server']
|
||||
self.assertEqual(self.flavor_ref, server['flavor']['id'])
|
||||
|
||||
@test.idempotent_id('b963d4f1-94b3-4c40-9e97-7b583f46e470')
|
||||
@decorators.idempotent_id('b963d4f1-94b3-4c40-9e97-7b583f46e470')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.snapshot,
|
||||
'Snapshotting not available, backup not possible.')
|
||||
@test.services('image')
|
||||
|
@ -428,7 +428,7 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
lines = len(output.split('\n'))
|
||||
self.assertEqual(lines, 10)
|
||||
|
||||
@test.idempotent_id('4b8867e6-fffa-4d54-b1d1-6fdda57be2f3')
|
||||
@decorators.idempotent_id('4b8867e6-fffa-4d54-b1d1-6fdda57be2f3')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.console_output,
|
||||
'Console output not supported.')
|
||||
def test_get_console_output(self):
|
||||
|
@ -444,7 +444,7 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
waiters.wait_for_server_status(self.client, self.server_id, 'ACTIVE')
|
||||
self.wait_for(self._get_output)
|
||||
|
||||
@test.idempotent_id('89104062-69d8-4b19-a71b-f47b7af093d7')
|
||||
@decorators.idempotent_id('89104062-69d8-4b19-a71b-f47b7af093d7')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.console_output,
|
||||
'Console output not supported.')
|
||||
def test_get_console_output_with_unlimited_size(self):
|
||||
|
@ -462,7 +462,7 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
|
||||
self.wait_for(_check_full_length_console_log)
|
||||
|
||||
@test.idempotent_id('5b65d4e7-4ecd-437c-83c0-d6b79d927568')
|
||||
@decorators.idempotent_id('5b65d4e7-4ecd-437c-83c0-d6b79d927568')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.console_output,
|
||||
'Console output not supported.')
|
||||
def test_get_console_output_server_id_in_shutoff_status(self):
|
||||
|
@ -479,7 +479,7 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
waiters.wait_for_server_status(self.client, temp_server_id, 'SHUTOFF')
|
||||
self.wait_for(self._get_output)
|
||||
|
||||
@test.idempotent_id('bd61a9fd-062f-4670-972b-2d6c3e3b9e73')
|
||||
@decorators.idempotent_id('bd61a9fd-062f-4670-972b-2d6c3e3b9e73')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.pause,
|
||||
'Pause is not available.')
|
||||
def test_pause_unpause_server(self):
|
||||
|
@ -488,7 +488,7 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
self.client.unpause_server(self.server_id)
|
||||
waiters.wait_for_server_status(self.client, self.server_id, 'ACTIVE')
|
||||
|
||||
@test.idempotent_id('0d8ee21e-b749-462d-83da-b85b41c86c7f')
|
||||
@decorators.idempotent_id('0d8ee21e-b749-462d-83da-b85b41c86c7f')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.suspend,
|
||||
'Suspend is not available.')
|
||||
def test_suspend_resume_server(self):
|
||||
|
@ -498,7 +498,7 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
self.client.resume_server(self.server_id)
|
||||
waiters.wait_for_server_status(self.client, self.server_id, 'ACTIVE')
|
||||
|
||||
@test.idempotent_id('77eba8e0-036e-4635-944b-f7a8f3b78dc9')
|
||||
@decorators.idempotent_id('77eba8e0-036e-4635-944b-f7a8f3b78dc9')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.shelve,
|
||||
'Shelve is not available.')
|
||||
def test_shelve_unshelve_server(self):
|
||||
|
@ -515,14 +515,14 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
self.client.unshelve_server(self.server_id)
|
||||
waiters.wait_for_server_status(self.client, self.server_id, 'ACTIVE')
|
||||
|
||||
@test.idempotent_id('af8eafd4-38a7-4a4b-bdbc-75145a580560')
|
||||
@decorators.idempotent_id('af8eafd4-38a7-4a4b-bdbc-75145a580560')
|
||||
def test_stop_start_server(self):
|
||||
self.client.stop_server(self.server_id)
|
||||
waiters.wait_for_server_status(self.client, self.server_id, 'SHUTOFF')
|
||||
self.client.start_server(self.server_id)
|
||||
waiters.wait_for_server_status(self.client, self.server_id, 'ACTIVE')
|
||||
|
||||
@test.idempotent_id('80a8094c-211e-440a-ab88-9e59d556c7ee')
|
||||
@decorators.idempotent_id('80a8094c-211e-440a-ab88-9e59d556c7ee')
|
||||
def test_lock_unlock_server(self):
|
||||
# Lock the server,try server stop(exceptions throw),unlock it and retry
|
||||
self.client.lock_server(self.server_id)
|
||||
|
@ -545,7 +545,7 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertNotEqual('None', parsed_url.hostname)
|
||||
self.assertIn(parsed_url.scheme, valid_scheme)
|
||||
|
||||
@test.idempotent_id('c6bc11bf-592e-4015-9319-1c98dc64daf5')
|
||||
@decorators.idempotent_id('c6bc11bf-592e-4015-9319-1c98dc64daf5')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.vnc_console,
|
||||
'VNC Console feature is disabled.')
|
||||
def test_get_vnc_console(self):
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
# under the License.
|
||||
|
||||
from tempest.api.compute import base
|
||||
from tempest.lib import decorators
|
||||
from tempest import test
|
||||
|
||||
|
||||
|
@ -37,7 +38,7 @@ class ServerAddressesTestJSON(base.BaseV2ComputeTest):
|
|||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
|
||||
@test.attr(type='smoke')
|
||||
@test.idempotent_id('6eb718c0-02d9-4d5e-acd1-4e0c269cef39')
|
||||
@decorators.idempotent_id('6eb718c0-02d9-4d5e-acd1-4e0c269cef39')
|
||||
@test.services('network')
|
||||
def test_list_server_addresses(self):
|
||||
# All public and private addresses for
|
||||
|
@ -55,7 +56,7 @@ class ServerAddressesTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertTrue(address['version'])
|
||||
|
||||
@test.attr(type='smoke')
|
||||
@test.idempotent_id('87bbc374-5538-4f64-b673-2b0e4443cc30')
|
||||
@decorators.idempotent_id('87bbc374-5538-4f64-b673-2b0e4443cc30')
|
||||
@test.services('network')
|
||||
def test_list_server_addresses_by_network(self):
|
||||
# Providing a network type should filter
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
# under the License.
|
||||
|
||||
from tempest.api.compute import base
|
||||
from tempest.lib import decorators
|
||||
from tempest.lib import exceptions as lib_exc
|
||||
from tempest import test
|
||||
|
||||
|
@ -36,7 +37,7 @@ class ServerAddressesNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('02c3f645-2d2e-4417-8525-68c0407d001b')
|
||||
@decorators.idempotent_id('02c3f645-2d2e-4417-8525-68c0407d001b')
|
||||
@test.services('network')
|
||||
def test_list_server_addresses_invalid_server_id(self):
|
||||
# List addresses request should fail if server id not in system
|
||||
|
@ -44,7 +45,7 @@ class ServerAddressesNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
'999')
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('a2ab5144-78c0-4942-a0ed-cc8edccfd9ba')
|
||||
@decorators.idempotent_id('a2ab5144-78c0-4942-a0ed-cc8edccfd9ba')
|
||||
@test.services('network')
|
||||
def test_list_server_addresses_by_network_neg(self):
|
||||
# List addresses by network should fail if network name not valid
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
from tempest.api.compute import base
|
||||
from tempest.common.utils import data_utils
|
||||
from tempest.lib import decorators
|
||||
from tempest import test
|
||||
|
||||
|
||||
|
@ -67,18 +68,18 @@ class ServerGroupTestJSON(base.BaseV2ComputeTest):
|
|||
server_group = self._create_server_group(name, policy)
|
||||
self._delete_server_group(server_group)
|
||||
|
||||
@test.idempotent_id('5dc57eda-35b7-4af7-9e5f-3c2be3d2d68b')
|
||||
@decorators.idempotent_id('5dc57eda-35b7-4af7-9e5f-3c2be3d2d68b')
|
||||
def test_create_delete_server_group_with_affinity_policy(self):
|
||||
# Create and Delete the server-group with affinity policy
|
||||
self._create_delete_server_group(self.policy)
|
||||
|
||||
@test.idempotent_id('3645a102-372f-4140-afad-13698d850d23')
|
||||
@decorators.idempotent_id('3645a102-372f-4140-afad-13698d850d23')
|
||||
def test_create_delete_server_group_with_anti_affinity_policy(self):
|
||||
# Create and Delete the server-group with anti-affinity policy
|
||||
policy = ['anti-affinity']
|
||||
self._create_delete_server_group(policy)
|
||||
|
||||
@test.idempotent_id('154dc5a4-a2fe-44b5-b99e-f15806a4a113')
|
||||
@decorators.idempotent_id('154dc5a4-a2fe-44b5-b99e-f15806a4a113')
|
||||
def test_create_delete_multiple_server_groups_with_same_name_policy(self):
|
||||
# Create and Delete the server-groups with same name and same policy
|
||||
server_groups = []
|
||||
|
@ -93,14 +94,14 @@ class ServerGroupTestJSON(base.BaseV2ComputeTest):
|
|||
for i in range(0, 2):
|
||||
self._delete_server_group(server_groups[i])
|
||||
|
||||
@test.idempotent_id('b3545034-dd78-48f0-bdc2-a4adfa6d0ead')
|
||||
@decorators.idempotent_id('b3545034-dd78-48f0-bdc2-a4adfa6d0ead')
|
||||
def test_show_server_group(self):
|
||||
# Get the server-group
|
||||
body = self.client.show_server_group(
|
||||
self.created_server_group['id'])['server_group']
|
||||
self.assertEqual(self.created_server_group, body)
|
||||
|
||||
@test.idempotent_id('d4874179-27b4-4d7d-80e4-6c560cdfe321')
|
||||
@decorators.idempotent_id('d4874179-27b4-4d7d-80e4-6c560cdfe321')
|
||||
def test_list_server_groups(self):
|
||||
# List the server-group
|
||||
body = self.client.list_server_groups()['server_groups']
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# under the License.
|
||||
|
||||
from tempest.api.compute import base
|
||||
from tempest import test
|
||||
from tempest.lib import decorators
|
||||
|
||||
|
||||
class ServerMetadataTestJSON(base.BaseV2ComputeTest):
|
||||
|
@ -34,7 +34,7 @@ class ServerMetadataTestJSON(base.BaseV2ComputeTest):
|
|||
meta = {'key1': 'value1', 'key2': 'value2'}
|
||||
self.client.set_server_metadata(self.server['id'], meta)['metadata']
|
||||
|
||||
@test.idempotent_id('479da087-92b3-4dcf-aeb3-fd293b2d14ce')
|
||||
@decorators.idempotent_id('479da087-92b3-4dcf-aeb3-fd293b2d14ce')
|
||||
def test_list_server_metadata(self):
|
||||
# All metadata key/value pairs for a server should be returned
|
||||
resp_metadata = (self.client.list_server_metadata(self.server['id'])
|
||||
|
@ -44,7 +44,7 @@ class ServerMetadataTestJSON(base.BaseV2ComputeTest):
|
|||
expected = {'key1': 'value1', 'key2': 'value2'}
|
||||
self.assertEqual(expected, resp_metadata)
|
||||
|
||||
@test.idempotent_id('211021f6-21de-4657-a68f-908878cfe251')
|
||||
@decorators.idempotent_id('211021f6-21de-4657-a68f-908878cfe251')
|
||||
def test_set_server_metadata(self):
|
||||
# The server's metadata should be replaced with the provided values
|
||||
# Create a new set of metadata for the server
|
||||
|
@ -58,7 +58,7 @@ class ServerMetadataTestJSON(base.BaseV2ComputeTest):
|
|||
['metadata'])
|
||||
self.assertEqual(resp_metadata, req_metadata)
|
||||
|
||||
@test.idempotent_id('344d981e-0c33-4997-8a5d-6c1d803e4134')
|
||||
@decorators.idempotent_id('344d981e-0c33-4997-8a5d-6c1d803e4134')
|
||||
def test_update_server_metadata(self):
|
||||
# The server's metadata values should be updated to the
|
||||
# provided values
|
||||
|
@ -71,7 +71,7 @@ class ServerMetadataTestJSON(base.BaseV2ComputeTest):
|
|||
expected = {'key1': 'alt1', 'key2': 'value2', 'key3': 'value3'}
|
||||
self.assertEqual(expected, resp_metadata)
|
||||
|
||||
@test.idempotent_id('0f58d402-e34a-481d-8af8-b392b17426d9')
|
||||
@decorators.idempotent_id('0f58d402-e34a-481d-8af8-b392b17426d9')
|
||||
def test_update_metadata_empty_body(self):
|
||||
# The original metadata should not be lost if empty metadata body is
|
||||
# passed
|
||||
|
@ -82,14 +82,14 @@ class ServerMetadataTestJSON(base.BaseV2ComputeTest):
|
|||
expected = {'key1': 'value1', 'key2': 'value2'}
|
||||
self.assertEqual(expected, resp_metadata)
|
||||
|
||||
@test.idempotent_id('3043c57d-7e0e-49a6-9a96-ad569c265e6a')
|
||||
@decorators.idempotent_id('3043c57d-7e0e-49a6-9a96-ad569c265e6a')
|
||||
def test_get_server_metadata_item(self):
|
||||
# The value for a specific metadata key should be returned
|
||||
meta = self.client.show_server_metadata_item(self.server['id'],
|
||||
'key2')['meta']
|
||||
self.assertEqual('value2', meta['key2'])
|
||||
|
||||
@test.idempotent_id('58c02d4f-5c67-40be-8744-d3fa5982eb1c')
|
||||
@decorators.idempotent_id('58c02d4f-5c67-40be-8744-d3fa5982eb1c')
|
||||
def test_set_server_metadata_item(self):
|
||||
# The item's value should be updated to the provided value
|
||||
# Update the metadata value
|
||||
|
@ -102,7 +102,7 @@ class ServerMetadataTestJSON(base.BaseV2ComputeTest):
|
|||
expected = {'key1': 'value1', 'key2': 'value2', 'nova': 'alt'}
|
||||
self.assertEqual(expected, resp_metadata)
|
||||
|
||||
@test.idempotent_id('127642d6-4c7b-4486-b7cd-07265a378658')
|
||||
@decorators.idempotent_id('127642d6-4c7b-4486-b7cd-07265a378658')
|
||||
def test_delete_server_metadata_item(self):
|
||||
# The metadata value/key pair should be deleted from the server
|
||||
self.client.delete_server_metadata_item(self.server['id'], 'key1')
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
from tempest.api.compute import base
|
||||
from tempest.common.utils import data_utils
|
||||
from tempest.lib import decorators
|
||||
from tempest.lib import exceptions as lib_exc
|
||||
from tempest import test
|
||||
|
||||
|
@ -33,7 +34,7 @@ class ServerMetadataNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
cls.server = cls.create_test_server(metadata={}, wait_until='ACTIVE')
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('fe114a8f-3a57-4eff-9ee2-4e14628df049')
|
||||
@decorators.idempotent_id('fe114a8f-3a57-4eff-9ee2-4e14628df049')
|
||||
def test_server_create_metadata_key_too_long(self):
|
||||
# Attempt to start a server with a meta-data key that is > 255
|
||||
# characters
|
||||
|
@ -49,7 +50,7 @@ class ServerMetadataNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
# no teardown - all creates should fail
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('92431555-4d8b-467c-b95b-b17daa5e57ff')
|
||||
@decorators.idempotent_id('92431555-4d8b-467c-b95b-b17daa5e57ff')
|
||||
def test_create_server_metadata_blank_key(self):
|
||||
# Blank key should trigger an error.
|
||||
meta = {'': 'data1'}
|
||||
|
@ -58,7 +59,7 @@ class ServerMetadataNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
metadata=meta)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('4d9cd7a3-2010-4b41-b8fe-3bbf0b169466')
|
||||
@decorators.idempotent_id('4d9cd7a3-2010-4b41-b8fe-3bbf0b169466')
|
||||
def test_server_metadata_non_existent_server(self):
|
||||
# GET on a non-existent server should not succeed
|
||||
non_existent_server_id = data_utils.rand_uuid()
|
||||
|
@ -68,7 +69,7 @@ class ServerMetadataNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
'test2')
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('f408e78e-3066-4097-9299-3b0182da812e')
|
||||
@decorators.idempotent_id('f408e78e-3066-4097-9299-3b0182da812e')
|
||||
def test_list_server_metadata_non_existent_server(self):
|
||||
# List metadata on a non-existent server should not succeed
|
||||
non_existent_server_id = data_utils.rand_uuid()
|
||||
|
@ -77,7 +78,7 @@ class ServerMetadataNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
non_existent_server_id)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('0025fbd6-a4ba-4cde-b8c2-96805dcfdabc')
|
||||
@decorators.idempotent_id('0025fbd6-a4ba-4cde-b8c2-96805dcfdabc')
|
||||
def test_wrong_key_passed_in_body(self):
|
||||
# Raise BadRequest if key in uri does not match
|
||||
# the key passed in body.
|
||||
|
@ -87,7 +88,7 @@ class ServerMetadataNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.server['id'], 'key', meta)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('0df38c2a-3d4e-4db5-98d8-d4d9fa843a12')
|
||||
@decorators.idempotent_id('0df38c2a-3d4e-4db5-98d8-d4d9fa843a12')
|
||||
def test_set_metadata_non_existent_server(self):
|
||||
# Set metadata on a non-existent server should not succeed
|
||||
non_existent_server_id = data_utils.rand_uuid()
|
||||
|
@ -98,7 +99,7 @@ class ServerMetadataNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
meta)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('904b13dc-0ef2-4e4c-91cd-3b4a0f2f49d8')
|
||||
@decorators.idempotent_id('904b13dc-0ef2-4e4c-91cd-3b4a0f2f49d8')
|
||||
def test_update_metadata_non_existent_server(self):
|
||||
# An update should not happen for a non-existent server
|
||||
non_existent_server_id = data_utils.rand_uuid()
|
||||
|
@ -109,7 +110,7 @@ class ServerMetadataNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
meta)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('a452f38c-05c2-4b47-bd44-a4f0bf5a5e48')
|
||||
@decorators.idempotent_id('a452f38c-05c2-4b47-bd44-a4f0bf5a5e48')
|
||||
def test_update_metadata_with_blank_key(self):
|
||||
# Blank key should trigger an error
|
||||
meta = {'': 'data1'}
|
||||
|
@ -118,7 +119,7 @@ class ServerMetadataNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.server['id'], meta=meta)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('6bbd88e1-f8b3-424d-ba10-ae21c45ada8d')
|
||||
@decorators.idempotent_id('6bbd88e1-f8b3-424d-ba10-ae21c45ada8d')
|
||||
def test_delete_metadata_non_existent_server(self):
|
||||
# Should not be able to delete metadata item from a non-existent server
|
||||
non_existent_server_id = data_utils.rand_uuid()
|
||||
|
@ -128,7 +129,7 @@ class ServerMetadataNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
'd')
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('d8c0a210-a5c3-4664-be04-69d96746b547')
|
||||
@decorators.idempotent_id('d8c0a210-a5c3-4664-be04-69d96746b547')
|
||||
def test_metadata_items_limit(self):
|
||||
# A 403 Forbidden or 413 Overlimit (old behaviour) exception
|
||||
# will be raised while exceeding metadata items limit for
|
||||
|
@ -154,7 +155,7 @@ class ServerMetadataNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.server['id'], req_metadata)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('96100343-7fa9-40d8-80fa-d29ef588ce1c')
|
||||
@decorators.idempotent_id('96100343-7fa9-40d8-80fa-d29ef588ce1c')
|
||||
def test_set_server_metadata_blank_key(self):
|
||||
# Raise a bad request error for blank key.
|
||||
# set_server_metadata will replace all metadata with new value
|
||||
|
@ -164,7 +165,7 @@ class ServerMetadataNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.server['id'], meta=meta)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('64a91aee-9723-4863-be44-4c9d9f1e7d0e')
|
||||
@decorators.idempotent_id('64a91aee-9723-4863-be44-4c9d9f1e7d0e')
|
||||
def test_set_server_metadata_missing_metadata(self):
|
||||
# Raise a bad request error for a missing metadata field
|
||||
# set_server_metadata will replace all metadata with new value
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
|
||||
from tempest.api.compute import base
|
||||
from tempest import test
|
||||
from tempest.lib import decorators
|
||||
|
||||
|
||||
class ServerPasswordTestJSON(base.BaseV2ComputeTest):
|
||||
|
@ -30,10 +30,10 @@ class ServerPasswordTestJSON(base.BaseV2ComputeTest):
|
|||
super(ServerPasswordTestJSON, cls).resource_setup()
|
||||
cls.server = cls.create_test_server(wait_until="ACTIVE")
|
||||
|
||||
@test.idempotent_id('f83b582f-62a8-4f22-85b0-0dee50ff783a')
|
||||
@decorators.idempotent_id('f83b582f-62a8-4f22-85b0-0dee50ff783a')
|
||||
def test_get_server_password(self):
|
||||
self.client.show_password(self.server['id'])
|
||||
|
||||
@test.idempotent_id('f8229e8b-b625-4493-800a-bde86ac611ea')
|
||||
@decorators.idempotent_id('f8229e8b-b625-4493-800a-bde86ac611ea')
|
||||
def test_delete_server_password(self):
|
||||
self.client.delete_password(self.server['id'])
|
||||
|
|
|
@ -20,8 +20,8 @@ from tempest.common.utils.linux import remote_client
|
|||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
from tempest.lib.common.utils import data_utils
|
||||
from tempest.lib import decorators
|
||||
from tempest.lib import exceptions as lib_exc
|
||||
from tempest import test
|
||||
|
||||
CONF = config.CONF
|
||||
|
||||
|
@ -50,7 +50,7 @@ class ServerPersonalityTestJSON(base.BaseV2ComputeTest):
|
|||
cls.client = cls.servers_client
|
||||
cls.user_client = cls.limits_client
|
||||
|
||||
@test.idempotent_id('3cfe87fd-115b-4a02-b942-7dc36a337fdf')
|
||||
@decorators.idempotent_id('3cfe87fd-115b-4a02-b942-7dc36a337fdf')
|
||||
def test_create_server_with_personality(self):
|
||||
file_contents = 'This is a test file.'
|
||||
file_path = '/test.txt'
|
||||
|
@ -73,7 +73,7 @@ class ServerPersonalityTestJSON(base.BaseV2ComputeTest):
|
|||
linux_client.exec_command(
|
||||
'sudo cat %s' % file_path))
|
||||
|
||||
@test.idempotent_id('128966d8-71fc-443c-8cab-08e24114ecc9')
|
||||
@decorators.idempotent_id('128966d8-71fc-443c-8cab-08e24114ecc9')
|
||||
def test_rebuild_server_with_personality(self):
|
||||
server = self.create_test_server(wait_until='ACTIVE', validatable=True)
|
||||
server_id = server['id']
|
||||
|
@ -87,7 +87,7 @@ class ServerPersonalityTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertEqual(self.image_ref_alt,
|
||||
rebuilt_server['server']['image']['id'])
|
||||
|
||||
@test.idempotent_id('176cd8c9-b9e8-48ee-a480-180beab292bf')
|
||||
@decorators.idempotent_id('176cd8c9-b9e8-48ee-a480-180beab292bf')
|
||||
def test_personality_files_exceed_limit(self):
|
||||
# Server creation should fail if greater than the maximum allowed
|
||||
# number of files are injected into the server.
|
||||
|
@ -107,7 +107,7 @@ class ServerPersonalityTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertRaises((lib_exc.Forbidden, lib_exc.OverLimit),
|
||||
self.create_test_server, personality=personality)
|
||||
|
||||
@test.idempotent_id('52f12ee8-5180-40cc-b417-31572ea3d555')
|
||||
@decorators.idempotent_id('52f12ee8-5180-40cc-b417-31572ea3d555')
|
||||
def test_can_create_server_with_max_number_personality_files(self):
|
||||
# Server should be created successfully if maximum allowed number of
|
||||
# files is injected into the server during creation.
|
||||
|
|
|
@ -17,7 +17,7 @@ from tempest.api.compute import base
|
|||
from tempest.common.utils import data_utils
|
||||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
from tempest import test
|
||||
from tempest.lib import decorators
|
||||
|
||||
CONF = config.CONF
|
||||
|
||||
|
@ -74,7 +74,7 @@ class ServerRescueTestJSON(base.BaseV2ComputeTest):
|
|||
waiters.wait_for_server_status(self.servers_client, server_id,
|
||||
'ACTIVE')
|
||||
|
||||
@test.idempotent_id('fd032140-714c-42e4-a8fd-adcd8df06be6')
|
||||
@decorators.idempotent_id('fd032140-714c-42e4-a8fd-adcd8df06be6')
|
||||
def test_rescue_unrescue_instance(self):
|
||||
self.servers_client.rescue_server(
|
||||
self.server_id, adminPass=self.password)
|
||||
|
@ -84,7 +84,7 @@ class ServerRescueTestJSON(base.BaseV2ComputeTest):
|
|||
waiters.wait_for_server_status(self.servers_client, self.server_id,
|
||||
'ACTIVE')
|
||||
|
||||
@test.idempotent_id('4842e0cf-e87d-4d9d-b61f-f4791da3cacc')
|
||||
@decorators.idempotent_id('4842e0cf-e87d-4d9d-b61f-f4791da3cacc')
|
||||
def test_rescued_vm_associate_dissociate_floating_ip(self):
|
||||
# Rescue the server
|
||||
self.servers_client.rescue_server(
|
||||
|
@ -102,7 +102,7 @@ class ServerRescueTestJSON(base.BaseV2ComputeTest):
|
|||
client.disassociate_floating_ip_from_server(self.floating_ip,
|
||||
self.server_id)
|
||||
|
||||
@test.idempotent_id('affca41f-7195-492d-8065-e09eee245404')
|
||||
@decorators.idempotent_id('affca41f-7195-492d-8065-e09eee245404')
|
||||
def test_rescued_vm_add_remove_security_group(self):
|
||||
# Rescue the server
|
||||
self.servers_client.rescue_server(
|
||||
|
|
|
@ -19,6 +19,7 @@ from tempest.api.compute import base
|
|||
from tempest.common.utils import data_utils
|
||||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
from tempest.lib import decorators
|
||||
from tempest.lib import exceptions as lib_exc
|
||||
from tempest import test
|
||||
|
||||
|
@ -70,7 +71,7 @@ class ServerRescueNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
waiters.wait_for_server_status(self.servers_client,
|
||||
server_id, 'ACTIVE')
|
||||
|
||||
@test.idempotent_id('cc3a883f-43c0-4fb6-a9bb-5579d64984ed')
|
||||
@decorators.idempotent_id('cc3a883f-43c0-4fb6-a9bb-5579d64984ed')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.pause,
|
||||
'Pause is not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -85,13 +86,13 @@ class ServerRescueNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.server_id)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('db22b618-f157-4566-a317-1b6d467a8094')
|
||||
@decorators.idempotent_id('db22b618-f157-4566-a317-1b6d467a8094')
|
||||
def test_rescued_vm_reboot(self):
|
||||
self.assertRaises(lib_exc.Conflict, self.servers_client.reboot_server,
|
||||
self.rescue_id, type='HARD')
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('6dfc0a55-3a77-4564-a144-1587b7971dde')
|
||||
@decorators.idempotent_id('6dfc0a55-3a77-4564-a144-1587b7971dde')
|
||||
def test_rescue_non_existent_server(self):
|
||||
# Rescue a non-existing server
|
||||
non_existent_server = data_utils.rand_uuid()
|
||||
|
@ -100,14 +101,14 @@ class ServerRescueNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
non_existent_server)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('70cdb8a1-89f8-437d-9448-8844fd82bf46')
|
||||
@decorators.idempotent_id('70cdb8a1-89f8-437d-9448-8844fd82bf46')
|
||||
def test_rescued_vm_rebuild(self):
|
||||
self.assertRaises(lib_exc.Conflict,
|
||||
self.servers_client.rebuild_server,
|
||||
self.rescue_id,
|
||||
self.image_ref_alt)
|
||||
|
||||
@test.idempotent_id('d0ccac79-0091-4cf4-a1ce-26162d0cc55f')
|
||||
@decorators.idempotent_id('d0ccac79-0091-4cf4-a1ce-26162d0cc55f')
|
||||
@test.services('volume')
|
||||
@test.attr(type=['negative'])
|
||||
def test_rescued_vm_attach_volume(self):
|
||||
|
@ -127,7 +128,7 @@ class ServerRescueNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
volumeId=volume['id'],
|
||||
device='/dev/%s' % self.device)
|
||||
|
||||
@test.idempotent_id('f56e465b-fe10-48bf-b75d-646cda3a8bc9')
|
||||
@decorators.idempotent_id('f56e465b-fe10-48bf-b75d-646cda3a8bc9')
|
||||
@test.services('volume')
|
||||
@test.attr(type=['negative'])
|
||||
def test_rescued_vm_detach_volume(self):
|
||||
|
|
|
@ -19,7 +19,7 @@ from tempest.api.compute import base
|
|||
from tempest.common.utils import data_utils
|
||||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
from tempest import test
|
||||
from tempest.lib import decorators
|
||||
|
||||
CONF = config.CONF
|
||||
|
||||
|
@ -35,7 +35,7 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
|||
self.clear_servers()
|
||||
super(ServersTestJSON, self).tearDown()
|
||||
|
||||
@test.idempotent_id('b92d5ec7-b1dd-44a2-87e4-45e888c46ef0')
|
||||
@decorators.idempotent_id('b92d5ec7-b1dd-44a2-87e4-45e888c46ef0')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.
|
||||
enable_instance_password,
|
||||
'Instance password not available.')
|
||||
|
@ -47,7 +47,7 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
|||
# Verify the password is set correctly in the response
|
||||
self.assertEqual('testpassword', server['adminPass'])
|
||||
|
||||
@test.idempotent_id('8fea6be7-065e-47cf-89b8-496e6f96c699')
|
||||
@decorators.idempotent_id('8fea6be7-065e-47cf-89b8-496e6f96c699')
|
||||
def test_create_with_existing_server_name(self):
|
||||
# Creating a server with a name that already exists is allowed
|
||||
|
||||
|
@ -67,7 +67,7 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
|||
name2 = server['name']
|
||||
self.assertEqual(name1, name2)
|
||||
|
||||
@test.idempotent_id('f9e15296-d7f9-4e62-b53f-a04e89160833')
|
||||
@decorators.idempotent_id('f9e15296-d7f9-4e62-b53f-a04e89160833')
|
||||
def test_create_specify_keypair(self):
|
||||
# Specify a keypair while creating a server
|
||||
|
||||
|
@ -94,7 +94,7 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertEqual(new_name, server['name'])
|
||||
return server
|
||||
|
||||
@test.idempotent_id('5e6ccff8-349d-4852-a8b3-055df7988dd2')
|
||||
@decorators.idempotent_id('5e6ccff8-349d-4852-a8b3-055df7988dd2')
|
||||
def test_update_server_name(self):
|
||||
# The server name should be changed to the provided value
|
||||
server = self.create_test_server(wait_until='ACTIVE')
|
||||
|
@ -102,7 +102,7 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
|||
prefix_name = u'\u00CD\u00F1st\u00E1\u00F1c\u00E9'
|
||||
self._update_server_name(server['id'], 'ACTIVE', prefix_name)
|
||||
|
||||
@test.idempotent_id('6ac19cb1-27a3-40ec-b350-810bdc04c08e')
|
||||
@decorators.idempotent_id('6ac19cb1-27a3-40ec-b350-810bdc04c08e')
|
||||
def test_update_server_name_in_stop_state(self):
|
||||
# The server name should be changed to the provided value
|
||||
server = self.create_test_server(wait_until='ACTIVE')
|
||||
|
@ -115,7 +115,7 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
|||
prefix_name)
|
||||
self.assertNotIn('progress', updated_server)
|
||||
|
||||
@test.idempotent_id('89b90870-bc13-4b73-96af-f9d4f2b70077')
|
||||
@decorators.idempotent_id('89b90870-bc13-4b73-96af-f9d4f2b70077')
|
||||
def test_update_access_server_address(self):
|
||||
# The server's access addresses should reflect the provided values
|
||||
server = self.create_test_server(wait_until='ACTIVE')
|
||||
|
@ -131,7 +131,7 @@ class ServersTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertEqual('1.1.1.1', server['accessIPv4'])
|
||||
self.assertEqual('::babe:202:202', server['accessIPv6'])
|
||||
|
||||
@test.idempotent_id('38fb1d02-c3c5-41de-91d3-9bc2025a75eb')
|
||||
@decorators.idempotent_id('38fb1d02-c3c5-41de-91d3-9bc2025a75eb')
|
||||
def test_create_server_with_ipv6_addr_only(self):
|
||||
# Create a server without an IPv4 address(only IPv6 address).
|
||||
server = self.create_test_server(accessIPv6='2001:2001::3')
|
||||
|
|
|
@ -22,6 +22,7 @@ from tempest.common import compute
|
|||
from tempest.common.utils import data_utils
|
||||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
from tempest.lib import decorators
|
||||
from tempest.lib import exceptions as lib_exc
|
||||
from tempest import test
|
||||
|
||||
|
@ -54,7 +55,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
cls.server_id = server['id']
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('dbbfd247-c40c-449e-8f6c-d2aa7c7da7cf')
|
||||
@decorators.idempotent_id('dbbfd247-c40c-449e-8f6c-d2aa7c7da7cf')
|
||||
def test_server_name_blank(self):
|
||||
# Create a server with name parameter empty
|
||||
|
||||
|
@ -63,7 +64,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
name='')
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('b8a7235e-5246-4a8f-a08e-b34877c6586f')
|
||||
@decorators.idempotent_id('b8a7235e-5246-4a8f-a08e-b34877c6586f')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.personality,
|
||||
'Nova personality feature disabled')
|
||||
def test_personality_file_contents_not_encoded(self):
|
||||
|
@ -78,7 +79,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
personality=person)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('fcba1052-0a50-4cf3-b1ac-fae241edf02f')
|
||||
@decorators.idempotent_id('fcba1052-0a50-4cf3-b1ac-fae241edf02f')
|
||||
def test_create_with_invalid_image(self):
|
||||
# Create a server with an unknown image
|
||||
|
||||
|
@ -87,7 +88,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
image_id=-1)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('18f5227f-d155-4429-807c-ccb103887537')
|
||||
@decorators.idempotent_id('18f5227f-d155-4429-807c-ccb103887537')
|
||||
def test_create_with_invalid_flavor(self):
|
||||
# Create a server with an unknown flavor
|
||||
|
||||
|
@ -96,7 +97,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
flavor=-1,)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('7f70a4d1-608f-4794-9e56-cb182765972c')
|
||||
@decorators.idempotent_id('7f70a4d1-608f-4794-9e56-cb182765972c')
|
||||
def test_invalid_access_ip_v4_address(self):
|
||||
# An access IPv4 address must match a valid address pattern
|
||||
|
||||
|
@ -105,7 +106,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.create_test_server, accessIPv4=IPv4)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('5226dd80-1e9c-4d8a-b5f9-b26ca4763fd0')
|
||||
@decorators.idempotent_id('5226dd80-1e9c-4d8a-b5f9-b26ca4763fd0')
|
||||
def test_invalid_ip_v6_address(self):
|
||||
# An access IPv6 address must match a valid address pattern
|
||||
|
||||
|
@ -114,7 +115,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertRaises(lib_exc.BadRequest,
|
||||
self.create_test_server, accessIPv6=IPv6)
|
||||
|
||||
@test.idempotent_id('7ea45b3e-e770-46fa-bfcc-9daaf6d987c0')
|
||||
@decorators.idempotent_id('7ea45b3e-e770-46fa-bfcc-9daaf6d987c0')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.resize,
|
||||
'Resize not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -125,7 +126,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.client.resize_server,
|
||||
nonexistent_server, self.flavor_ref)
|
||||
|
||||
@test.idempotent_id('ced1a1d7-2ab6-45c9-b90f-b27d87b30efd')
|
||||
@decorators.idempotent_id('ced1a1d7-2ab6-45c9-b90f-b27d87b30efd')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.resize,
|
||||
'Resize not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -135,7 +136,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertRaises(lib_exc.BadRequest, self.client.resize_server,
|
||||
self.server_id, flavor_ref=nonexistent_flavor)
|
||||
|
||||
@test.idempotent_id('45436a7d-a388-4a35-a9d8-3adc5d0d940b')
|
||||
@decorators.idempotent_id('45436a7d-a388-4a35-a9d8-3adc5d0d940b')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.resize,
|
||||
'Resize not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -145,14 +146,14 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.server_id, flavor_ref="")
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('d4c023a0-9c55-4747-9dd5-413b820143c7')
|
||||
@decorators.idempotent_id('d4c023a0-9c55-4747-9dd5-413b820143c7')
|
||||
def test_reboot_non_existent_server(self):
|
||||
# Reboot a non existent server
|
||||
nonexistent_server = data_utils.rand_uuid()
|
||||
self.assertRaises(lib_exc.NotFound, self.client.reboot_server,
|
||||
nonexistent_server, type='SOFT')
|
||||
|
||||
@test.idempotent_id('d1417e7f-a509-41b5-a102-d5eed8613369')
|
||||
@decorators.idempotent_id('d1417e7f-a509-41b5-a102-d5eed8613369')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.pause,
|
||||
'Pause is not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -166,7 +167,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.client.unpause_server(self.server_id)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('98fa0458-1485-440f-873b-fe7f0d714930')
|
||||
@decorators.idempotent_id('98fa0458-1485-440f-873b-fe7f0d714930')
|
||||
def test_rebuild_deleted_server(self):
|
||||
# Rebuild a deleted server
|
||||
server = self.create_test_server()
|
||||
|
@ -178,7 +179,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
server['id'], self.image_ref_alt)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('581a397d-5eab-486f-9cf9-1014bbd4c984')
|
||||
@decorators.idempotent_id('581a397d-5eab-486f-9cf9-1014bbd4c984')
|
||||
def test_reboot_deleted_server(self):
|
||||
# Reboot a deleted server
|
||||
server = self.create_test_server()
|
||||
|
@ -189,7 +190,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
server['id'], type='SOFT')
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('d86141a7-906e-4731-b187-d64a2ea61422')
|
||||
@decorators.idempotent_id('d86141a7-906e-4731-b187-d64a2ea61422')
|
||||
def test_rebuild_non_existent_server(self):
|
||||
# Rebuild a non existent server
|
||||
nonexistent_server = data_utils.rand_uuid()
|
||||
|
@ -199,7 +200,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.image_ref_alt)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('fd57f159-68d6-4c2a-902b-03070828a87e')
|
||||
@decorators.idempotent_id('fd57f159-68d6-4c2a-902b-03070828a87e')
|
||||
def test_create_numeric_server_name(self):
|
||||
server_name = 12345
|
||||
self.assertRaises(lib_exc.BadRequest,
|
||||
|
@ -207,7 +208,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
name=server_name)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('c3e0fb12-07fc-4d76-a22e-37409887afe8')
|
||||
@decorators.idempotent_id('c3e0fb12-07fc-4d76-a22e-37409887afe8')
|
||||
def test_create_server_name_length_exceeds_256(self):
|
||||
# Create a server with name length exceeding 255 characters
|
||||
|
||||
|
@ -218,7 +219,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
|
||||
@test.attr(type=['negative'])
|
||||
@test.related_bug('1651064', status_code=500)
|
||||
@test.idempotent_id('12146ac1-d7df-4928-ad25-b1f99e5286cd')
|
||||
@decorators.idempotent_id('12146ac1-d7df-4928-ad25-b1f99e5286cd')
|
||||
def test_create_server_invalid_bdm_in_2nd_dict(self):
|
||||
volume = self.create_volume()
|
||||
bdm_1st = {"source_type": "image",
|
||||
|
@ -237,7 +238,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
block_device_mapping_v2=bdm)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('4e72dc2d-44c5-4336-9667-f7972e95c402')
|
||||
@decorators.idempotent_id('4e72dc2d-44c5-4336-9667-f7972e95c402')
|
||||
def test_create_with_invalid_network_uuid(self):
|
||||
# Pass invalid network uuid while creating a server
|
||||
|
||||
|
@ -248,7 +249,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
networks=networks)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('7a2efc39-530c-47de-b875-2dd01c8d39bd')
|
||||
@decorators.idempotent_id('7a2efc39-530c-47de-b875-2dd01c8d39bd')
|
||||
def test_create_with_non_existent_keypair(self):
|
||||
# Pass a non-existent keypair while creating a server
|
||||
|
||||
|
@ -258,7 +259,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
key_name=key_name)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('7fc74810-0bd2-4cd7-8244-4f33a9db865a')
|
||||
@decorators.idempotent_id('7fc74810-0bd2-4cd7-8244-4f33a9db865a')
|
||||
def test_create_server_metadata_exceeds_length_limit(self):
|
||||
# Pass really long metadata while creating a server
|
||||
|
||||
|
@ -268,7 +269,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
metadata=metadata)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('aa8eed43-e2cb-4ebf-930b-da14f6a21d81')
|
||||
@decorators.idempotent_id('aa8eed43-e2cb-4ebf-930b-da14f6a21d81')
|
||||
def test_update_name_of_non_existent_server(self):
|
||||
# Update name of a non-existent server
|
||||
|
||||
|
@ -280,7 +281,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
nonexistent_server, name=new_name)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('38204696-17c6-44da-9590-40f87fb5a899')
|
||||
@decorators.idempotent_id('38204696-17c6-44da-9590-40f87fb5a899')
|
||||
def test_update_server_set_empty_name(self):
|
||||
# Update name of the server to an empty string
|
||||
|
||||
|
@ -290,7 +291,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.server_id, name=new_name)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('5c8e244c-dada-4590-9944-749c455b431f')
|
||||
@decorators.idempotent_id('5c8e244c-dada-4590-9944-749c455b431f')
|
||||
def test_update_server_name_length_exceeds_256(self):
|
||||
# Update name of server exceed the name length limit
|
||||
|
||||
|
@ -301,7 +302,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
name=new_name)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('1041b4e6-514b-4855-96a5-e974b60870a3')
|
||||
@decorators.idempotent_id('1041b4e6-514b-4855-96a5-e974b60870a3')
|
||||
def test_delete_non_existent_server(self):
|
||||
# Delete a non existent server
|
||||
|
||||
|
@ -310,14 +311,14 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
nonexistent_server)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('75f79124-277c-45e6-a373-a1d6803f4cc4')
|
||||
@decorators.idempotent_id('75f79124-277c-45e6-a373-a1d6803f4cc4')
|
||||
def test_delete_server_pass_negative_id(self):
|
||||
# Pass an invalid string parameter to delete server
|
||||
|
||||
self.assertRaises(lib_exc.NotFound, self.client.delete_server, -1)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('f4d7279b-5fd2-4bf2-9ba4-ae35df0d18c5')
|
||||
@decorators.idempotent_id('f4d7279b-5fd2-4bf2-9ba4-ae35df0d18c5')
|
||||
def test_delete_server_pass_id_exceeding_length_limit(self):
|
||||
# Pass a server ID that exceeds length limit to delete server
|
||||
|
||||
|
@ -325,7 +326,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
sys.maxsize + 1)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('c5fa6041-80cd-483b-aa6d-4e45f19d093c')
|
||||
@decorators.idempotent_id('c5fa6041-80cd-483b-aa6d-4e45f19d093c')
|
||||
def test_create_with_nonexistent_security_group(self):
|
||||
# Create a server with a nonexistent security group
|
||||
|
||||
|
@ -335,7 +336,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
security_groups=security_groups)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('3436b02f-1b1e-4f03-881e-c6a602327439')
|
||||
@decorators.idempotent_id('3436b02f-1b1e-4f03-881e-c6a602327439')
|
||||
def test_get_non_existent_server(self):
|
||||
# Get a non existent server details
|
||||
nonexistent_server = data_utils.rand_uuid()
|
||||
|
@ -343,14 +344,14 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
nonexistent_server)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('a31460a9-49e1-42aa-82ee-06e0bb7c2d03')
|
||||
@decorators.idempotent_id('a31460a9-49e1-42aa-82ee-06e0bb7c2d03')
|
||||
def test_stop_non_existent_server(self):
|
||||
# Stop a non existent server
|
||||
nonexistent_server = data_utils.rand_uuid()
|
||||
self.assertRaises(lib_exc.NotFound, self.servers_client.stop_server,
|
||||
nonexistent_server)
|
||||
|
||||
@test.idempotent_id('6a8dc0c6-6cd4-4c0a-9f32-413881828091')
|
||||
@decorators.idempotent_id('6a8dc0c6-6cd4-4c0a-9f32-413881828091')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.pause,
|
||||
'Pause is not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -360,7 +361,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertRaises(lib_exc.NotFound, self.client.pause_server,
|
||||
nonexistent_server)
|
||||
|
||||
@test.idempotent_id('705b8e3a-e8a7-477c-a19b-6868fc24ac75')
|
||||
@decorators.idempotent_id('705b8e3a-e8a7-477c-a19b-6868fc24ac75')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.pause,
|
||||
'Pause is not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -370,7 +371,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertRaises(lib_exc.NotFound, self.client.unpause_server,
|
||||
nonexistent_server)
|
||||
|
||||
@test.idempotent_id('c8e639a7-ece8-42dd-a2e0-49615917ba4f')
|
||||
@decorators.idempotent_id('c8e639a7-ece8-42dd-a2e0-49615917ba4f')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.pause,
|
||||
'Pause is not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -380,7 +381,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.client.unpause_server,
|
||||
self.server_id)
|
||||
|
||||
@test.idempotent_id('d1f032d5-7b6e-48aa-b252-d5f16dd994ca')
|
||||
@decorators.idempotent_id('d1f032d5-7b6e-48aa-b252-d5f16dd994ca')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.suspend,
|
||||
'Suspend is not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -390,7 +391,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertRaises(lib_exc.NotFound, self.client.suspend_server,
|
||||
nonexistent_server)
|
||||
|
||||
@test.idempotent_id('7f323206-05a9-4bf8-996b-dd5b2036501b')
|
||||
@decorators.idempotent_id('7f323206-05a9-4bf8-996b-dd5b2036501b')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.suspend,
|
||||
'Suspend is not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -404,7 +405,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.server_id)
|
||||
self.client.resume_server(self.server_id)
|
||||
|
||||
@test.idempotent_id('221cd282-bddb-4837-a683-89c2487389b6')
|
||||
@decorators.idempotent_id('221cd282-bddb-4837-a683-89c2487389b6')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.suspend,
|
||||
'Suspend is not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -414,7 +415,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertRaises(lib_exc.NotFound, self.client.resume_server,
|
||||
nonexistent_server)
|
||||
|
||||
@test.idempotent_id('ccb6294d-c4c9-498f-8a43-554c098bfadb')
|
||||
@decorators.idempotent_id('ccb6294d-c4c9-498f-8a43-554c098bfadb')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.suspend,
|
||||
'Suspend is not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -425,7 +426,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.server_id)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('7dd919e7-413f-4198-bebb-35e2a01b13e9')
|
||||
@decorators.idempotent_id('7dd919e7-413f-4198-bebb-35e2a01b13e9')
|
||||
def test_get_console_output_of_non_existent_server(self):
|
||||
# get the console output for a non existent server
|
||||
nonexistent_server = data_utils.rand_uuid()
|
||||
|
@ -434,7 +435,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
nonexistent_server, length=10)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('6f47992b-5144-4250-9f8b-f00aa33950f3')
|
||||
@decorators.idempotent_id('6f47992b-5144-4250-9f8b-f00aa33950f3')
|
||||
def test_force_delete_nonexistent_server_id(self):
|
||||
# force-delete a non existent server
|
||||
nonexistent_server = data_utils.rand_uuid()
|
||||
|
@ -443,7 +444,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
nonexistent_server)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('9c6d38cc-fcfb-437a-85b9-7b788af8bf01')
|
||||
@decorators.idempotent_id('9c6d38cc-fcfb-437a-85b9-7b788af8bf01')
|
||||
def test_restore_nonexistent_server_id(self):
|
||||
# restore-delete a non existent server
|
||||
nonexistent_server = data_utils.rand_uuid()
|
||||
|
@ -452,14 +453,14 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
nonexistent_server)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('7fcadfab-bd6a-4753-8db7-4a51e51aade9')
|
||||
@decorators.idempotent_id('7fcadfab-bd6a-4753-8db7-4a51e51aade9')
|
||||
def test_restore_server_invalid_state(self):
|
||||
# we can only restore-delete a server in 'soft-delete' state
|
||||
self.assertRaises(lib_exc.Conflict,
|
||||
self.client.restore_soft_deleted_server,
|
||||
self.server_id)
|
||||
|
||||
@test.idempotent_id('abca56e2-a892-48ea-b5e5-e07e69774816')
|
||||
@decorators.idempotent_id('abca56e2-a892-48ea-b5e5-e07e69774816')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.shelve,
|
||||
'Shelve is not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -469,7 +470,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertRaises(lib_exc.NotFound, self.client.shelve_server,
|
||||
nonexistent_server)
|
||||
|
||||
@test.idempotent_id('443e4f9b-e6bf-4389-b601-3a710f15fddd')
|
||||
@decorators.idempotent_id('443e4f9b-e6bf-4389-b601-3a710f15fddd')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.shelve,
|
||||
'Shelve is not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -490,7 +491,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
|
||||
self.client.unshelve_server(self.server_id)
|
||||
|
||||
@test.idempotent_id('23d23b37-afaf-40d7-aa5d-5726f82d8821')
|
||||
@decorators.idempotent_id('23d23b37-afaf-40d7-aa5d-5726f82d8821')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.shelve,
|
||||
'Shelve is not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -500,7 +501,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.assertRaises(lib_exc.NotFound, self.client.unshelve_server,
|
||||
nonexistent_server)
|
||||
|
||||
@test.idempotent_id('8f198ded-1cca-4228-9e65-c6b449c54880')
|
||||
@decorators.idempotent_id('8f198ded-1cca-4228-9e65-c6b449c54880')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.shelve,
|
||||
'Shelve is not available.')
|
||||
@test.attr(type=['negative'])
|
||||
|
@ -511,7 +512,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
self.server_id)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('74085be3-a370-4ca2-bc51-2d0e10e0f573')
|
||||
@decorators.idempotent_id('74085be3-a370-4ca2-bc51-2d0e10e0f573')
|
||||
@test.services('volume', 'image')
|
||||
def test_create_server_from_non_bootable_volume(self):
|
||||
# Create a volume
|
||||
|
@ -565,7 +566,7 @@ class ServersNegativeTestMultiTenantJSON(base.BaseV2ComputeTest):
|
|||
cls.server_id = server['id']
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('543d84c1-dd2e-4c6d-8cb2-b9da0efaa384')
|
||||
@decorators.idempotent_id('543d84c1-dd2e-4c6d-8cb2-b9da0efaa384')
|
||||
def test_update_server_of_another_tenant(self):
|
||||
# Update name of a server that belongs to another tenant
|
||||
|
||||
|
@ -575,7 +576,7 @@ class ServersNegativeTestMultiTenantJSON(base.BaseV2ComputeTest):
|
|||
name=new_name)
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('5c75009d-3eea-423e-bea3-61b09fd25f9c')
|
||||
@decorators.idempotent_id('5c75009d-3eea-423e-bea3-61b09fd25f9c')
|
||||
def test_delete_a_server_of_another_tenant(self):
|
||||
# Delete a server that belongs to another tenant
|
||||
self.assertRaises(lib_exc.NotFound,
|
||||
|
|
|
@ -18,6 +18,7 @@ import testtools
|
|||
|
||||
from tempest.api.compute import base
|
||||
from tempest import config
|
||||
from tempest.lib import decorators
|
||||
from tempest.lib import exceptions
|
||||
from tempest import test
|
||||
|
||||
|
@ -42,7 +43,7 @@ class VirtualInterfacesTestJSON(base.BaseV2ComputeTest):
|
|||
super(VirtualInterfacesTestJSON, cls).resource_setup()
|
||||
cls.server = cls.create_test_server(wait_until='ACTIVE')
|
||||
|
||||
@test.idempotent_id('96c4e2ef-5e4d-4d7f-87f5-fed6dca18016')
|
||||
@decorators.idempotent_id('96c4e2ef-5e4d-4d7f-87f5-fed6dca18016')
|
||||
@test.services('network')
|
||||
def test_list_virtual_interfaces(self):
|
||||
# Positive test:Should be able to GET the virtual interfaces list
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
from tempest.api.compute import base
|
||||
from tempest.lib.common.utils import data_utils
|
||||
from tempest.lib import decorators
|
||||
from tempest.lib import exceptions as lib_exc
|
||||
from tempest import test
|
||||
|
||||
|
@ -33,7 +34,7 @@ class VirtualInterfacesNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
cls.client = cls.servers_client
|
||||
|
||||
@test.attr(type=['negative'])
|
||||
@test.idempotent_id('64ebd03c-1089-4306-93fa-60f5eb5c803c')
|
||||
@decorators.idempotent_id('64ebd03c-1089-4306-93fa-60f5eb5c803c')
|
||||
@test.services('network')
|
||||
def test_list_virtual_interfaces_invalid_server_id(self):
|
||||
# Negative test: Should not be able to GET virtual interfaces
|
||||
|
|
Loading…
Reference in New Issue