Minimize the tests footprint in multinode job
multinode job run all the tests including multinode and non multinode tests. But we do not need to run all the non multinode tests in this job instead smoke tests along with multinode tests should be enough to run. This make multinode jobs to run only smoke and multinode tests. For that, we need to tag the multinode tests with 'multinode' attr. Relavant-Bug: #2004780 Change-Id: I7e87d1db3ef3a00b3d27f0904d0af6a270e03837
This commit is contained in:
parent
6bb98c2aa4
commit
e2183ca8f6
|
@ -140,6 +140,7 @@ class LiveMigrationTest(LiveMigrationTestBase):
|
|||
LOG.info("Live migrate back to source %s", source_host)
|
||||
self._live_migrate(server_id, source_host, state, volume_backed)
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('1dce86b8-eb04-4c03-a9d8-9c1dc3ee0c7b')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.
|
||||
block_migration_for_live_migration,
|
||||
|
@ -148,6 +149,7 @@ class LiveMigrationTest(LiveMigrationTestBase):
|
|||
"""Test live migrating an active server"""
|
||||
self._test_live_migration()
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('1e107f21-61b2-4988-8f22-b196e938ab88')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.
|
||||
block_migration_for_live_migration,
|
||||
|
@ -158,6 +160,7 @@ class LiveMigrationTest(LiveMigrationTestBase):
|
|||
"""Test live migrating a paused server"""
|
||||
self._test_live_migration(state='PAUSED')
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.
|
||||
volume_backed_live_migration,
|
||||
'Volume-backed live migration not available')
|
||||
|
@ -167,6 +170,7 @@ class LiveMigrationTest(LiveMigrationTestBase):
|
|||
"""Test live migrating an active server booted from volume"""
|
||||
self._test_live_migration(volume_backed=True)
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('e19c0cc6-6720-4ed8-be83-b6603ed5c812')
|
||||
@testtools.skipIf(not CONF.compute_feature_enabled.
|
||||
block_migration_for_live_migration,
|
||||
|
@ -253,6 +257,7 @@ class LiveMigrationTest(LiveMigrationTestBase):
|
|||
port = self.ports_client.show_port(port_id)['port']
|
||||
return port['status'] == 'ACTIVE'
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('0022c12e-a482-42b0-be2d-396b5f0cffe3')
|
||||
@utils.requires_ext(service='network', extension='trunk')
|
||||
@utils.services('network')
|
||||
|
@ -297,6 +302,7 @@ class LiveMigrationRemoteConsolesV26Test(LiveMigrationTestBase):
|
|||
min_microversion = '2.6'
|
||||
max_microversion = 'latest'
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('6190af80-513e-4f0f-90f2-9714e84955d7')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.serial_console,
|
||||
'Serial console not supported.')
|
||||
|
|
|
@ -158,6 +158,7 @@ class MigrationsAdminTest(base.BaseV2ComputeAdminTest):
|
|||
dst_host = self.get_host_for_server(server['id'])
|
||||
assert_func(src_host, dst_host)
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('4bf0be52-3b6f-4746-9a27-3143636fe30d')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.cold_migration,
|
||||
'Cold migration not available.')
|
||||
|
@ -165,6 +166,7 @@ class MigrationsAdminTest(base.BaseV2ComputeAdminTest):
|
|||
"""Test cold migrating server and then confirm the migration"""
|
||||
self._test_cold_migrate_server(revert=False)
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('caa1aa8b-f4ef-4374-be0d-95f001c2ac2d')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.cold_migration,
|
||||
'Cold migration not available.')
|
||||
|
|
|
@ -61,6 +61,7 @@ class ServersOnMultiNodesTest(base.BaseV2ComputeAdminTest):
|
|||
|
||||
return hosts
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('26a9d5df-6890-45f2-abc4-a659290cb130')
|
||||
@testtools.skipUnless(
|
||||
compute.is_scheduler_filter_enabled("SameHostFilter"),
|
||||
|
@ -73,6 +74,7 @@ class ServersOnMultiNodesTest(base.BaseV2ComputeAdminTest):
|
|||
host02 = self.get_host_for_server(server02)
|
||||
self.assertEqual(self.host01, host02)
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('cc7ca884-6e3e-42a3-a92f-c522fcf25e8e')
|
||||
@testtools.skipUnless(
|
||||
compute.is_scheduler_filter_enabled("DifferentHostFilter"),
|
||||
|
@ -85,6 +87,7 @@ class ServersOnMultiNodesTest(base.BaseV2ComputeAdminTest):
|
|||
host02 = self.get_host_for_server(server02)
|
||||
self.assertNotEqual(self.host01, host02)
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('7869cc84-d661-4e14-9f00-c18cdc89cf57')
|
||||
@testtools.skipUnless(
|
||||
compute.is_scheduler_filter_enabled("DifferentHostFilter"),
|
||||
|
@ -97,6 +100,7 @@ class ServersOnMultiNodesTest(base.BaseV2ComputeAdminTest):
|
|||
host02 = self.get_host_for_server(server02)
|
||||
self.assertNotEqual(self.host01, host02)
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('f8bd0867-e459-45f5-ba53-59134552fe04')
|
||||
@testtools.skipUnless(
|
||||
compute.is_scheduler_filter_enabled("ServerGroupAntiAffinityFilter"),
|
||||
|
@ -112,6 +116,7 @@ class ServersOnMultiNodesTest(base.BaseV2ComputeAdminTest):
|
|||
self.assertNotEqual(hostnames[0], hostnames[1],
|
||||
'Servers are on the same host: %s' % hosts)
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('9d2e924a-baf4-11e7-b856-fa163e65f5ce')
|
||||
@testtools.skipUnless(
|
||||
compute.is_scheduler_filter_enabled("ServerGroupAffinityFilter"),
|
||||
|
@ -152,6 +157,7 @@ class UnshelveToHostMultiNodesTest(base.BaseV2ComputeAdminTest):
|
|||
waiters.wait_for_server_status(self.servers_client, server['id'],
|
||||
'ACTIVE')
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('b5cc0889-50c2-46a0-b8ff-b5fb4c3a6e20')
|
||||
def test_unshelve_to_specific_host(self):
|
||||
"""Test unshelve to a specific host, new behavior introduced in
|
||||
|
|
|
@ -218,7 +218,7 @@ class TestNetworkAdvancedServerOps(manager.NetworkScenarioTest):
|
|||
@testtools.skipUnless(CONF.compute.min_compute_nodes > 1,
|
||||
'Less than 2 compute nodes, skipping multinode '
|
||||
'tests.')
|
||||
@decorators.attr(type='slow')
|
||||
@decorators.attr(type=['slow', 'multinode'])
|
||||
@utils.services('compute', 'network')
|
||||
def test_server_connectivity_cold_migration(self):
|
||||
keypair = self.create_keypair()
|
||||
|
@ -244,7 +244,7 @@ class TestNetworkAdvancedServerOps(manager.NetworkScenarioTest):
|
|||
@testtools.skipUnless(CONF.compute.min_compute_nodes > 1,
|
||||
'Less than 2 compute nodes, skipping multinode '
|
||||
'tests.')
|
||||
@decorators.attr(type='slow')
|
||||
@decorators.attr(type=['slow', 'multinode'])
|
||||
@utils.services('compute', 'network')
|
||||
def test_server_connectivity_live_migration(self):
|
||||
keypair = self.create_keypair()
|
||||
|
@ -289,7 +289,7 @@ class TestNetworkAdvancedServerOps(manager.NetworkScenarioTest):
|
|||
@testtools.skipUnless(CONF.compute.min_compute_nodes > 1,
|
||||
'Less than 2 compute nodes, skipping multinode '
|
||||
'tests.')
|
||||
@decorators.attr(type='slow')
|
||||
@decorators.attr(type=['slow', 'multinode'])
|
||||
@utils.services('compute', 'network')
|
||||
def test_server_connectivity_cold_migration_revert(self):
|
||||
keypair = self.create_keypair()
|
||||
|
|
|
@ -278,6 +278,7 @@ class MinBwAllocationPlacementTest(NetworkQoSPlacementTestBase):
|
|||
port = self.os_admin.ports_client.show_port(not_valid_port['id'])
|
||||
self.assertEqual(0, len(port['port']['binding:profile']))
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('8a98150c-a506-49a5-96c6-73a5e7b04ada')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.cold_migration,
|
||||
'Cold migration is not available.')
|
||||
|
@ -851,6 +852,7 @@ class QoSBandwidthAndPacketRateTests(NetworkQoSPlacementTestBase):
|
|||
|
||||
self.assert_allocations(server, port, min_kbps, min_kpps)
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('bdd0b31c-c8b0-4b7b-b80a-545a46b32abe')
|
||||
@testtools.skipUnless(
|
||||
CONF.compute_feature_enabled.cold_migration,
|
||||
|
@ -1033,6 +1035,7 @@ class QoSBandwidthAndPacketRateTests(NetworkQoSPlacementTestBase):
|
|||
|
||||
self.assert_allocations(server, port2, 0, 0)
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('36ffdb85-6cc2-4cc9-a426-cad5bac8626b')
|
||||
@testtools.skipUnless(
|
||||
CONF.compute.min_compute_nodes > 1,
|
||||
|
|
|
@ -480,6 +480,7 @@ class TestSecurityGroupsBasicOps(manager.NetworkScenarioTest):
|
|||
direction='ingress')
|
||||
return ruleset
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('e79f879e-debb-440c-a7e4-efeda05b6848')
|
||||
@utils.services('compute', 'network')
|
||||
def test_cross_tenant_traffic(self):
|
||||
|
@ -510,6 +511,7 @@ class TestSecurityGroupsBasicOps(manager.NetworkScenarioTest):
|
|||
self._log_console_output_for_all_tenants()
|
||||
raise
|
||||
|
||||
@decorators.attr(type='multinode')
|
||||
@decorators.idempotent_id('63163892-bbf6-4249-aa12-d5ea1f8f421b')
|
||||
@utils.services('compute', 'network')
|
||||
def test_in_tenant_traffic(self):
|
||||
|
@ -524,7 +526,7 @@ class TestSecurityGroupsBasicOps(manager.NetworkScenarioTest):
|
|||
raise
|
||||
|
||||
@decorators.idempotent_id('f4d556d7-1526-42ad-bafb-6bebf48568f6')
|
||||
@decorators.attr(type='slow')
|
||||
@decorators.attr(type=['slow', 'multinode'])
|
||||
@utils.services('compute', 'network')
|
||||
def test_port_update_new_security_group(self):
|
||||
"""Verifies the traffic after updating the vm port
|
||||
|
@ -578,7 +580,7 @@ class TestSecurityGroupsBasicOps(manager.NetworkScenarioTest):
|
|||
raise
|
||||
|
||||
@decorators.idempotent_id('d2f77418-fcc4-439d-b935-72eca704e293')
|
||||
@decorators.attr(type='slow')
|
||||
@decorators.attr(type=['slow', 'multinode'])
|
||||
@utils.services('compute', 'network')
|
||||
def test_multiple_security_groups(self):
|
||||
"""Verify multiple security groups and checks that rules
|
||||
|
@ -610,7 +612,7 @@ class TestSecurityGroupsBasicOps(manager.NetworkScenarioTest):
|
|||
private_key=private_key,
|
||||
should_connect=True)
|
||||
|
||||
@decorators.attr(type='slow')
|
||||
@decorators.attr(type=['slow', 'multinode'])
|
||||
@utils.requires_ext(service='network', extension='port-security')
|
||||
@decorators.idempotent_id('7c811dcc-263b-49a3-92d2-1b4d8405f50c')
|
||||
@utils.services('compute', 'network')
|
||||
|
@ -650,7 +652,7 @@ class TestSecurityGroupsBasicOps(manager.NetworkScenarioTest):
|
|||
self._log_console_output_for_all_tenants()
|
||||
raise
|
||||
|
||||
@decorators.attr(type='slow')
|
||||
@decorators.attr(type=['slow', 'multinode'])
|
||||
@utils.requires_ext(service='network', extension='port-security')
|
||||
@decorators.idempotent_id('13ccf253-e5ad-424b-9c4a-97b88a026699')
|
||||
# TODO(mriedem): We shouldn't actually need to check this since neutron
|
||||
|
|
|
@ -35,7 +35,7 @@ class TestServerMultinode(manager.ScenarioTest):
|
|||
"Less than 2 compute nodes, skipping multinode tests.")
|
||||
|
||||
@decorators.idempotent_id('9cecbe35-b9d4-48da-a37e-7ce70aa43d30')
|
||||
@decorators.attr(type='smoke')
|
||||
@decorators.attr(type=['smoke', 'multinode'])
|
||||
@utils.services('compute', 'network')
|
||||
def test_schedule_to_all_nodes(self):
|
||||
available_zone = \
|
||||
|
|
|
@ -119,7 +119,7 @@ class TestShelveInstance(manager.ScenarioTest):
|
|||
def test_shelve_volume_backed_instance(self):
|
||||
self._create_server_then_shelve_and_unshelve(boot_from_volume=True)
|
||||
|
||||
@decorators.attr(type='slow')
|
||||
@decorators.attr(type=['slow', 'multinode'])
|
||||
@decorators.idempotent_id('1295fd9e-193a-4cf8-b211-55358e021bae')
|
||||
@testtools.skipUnless(CONF.network.public_network_id,
|
||||
'The public_network_id option must be specified.')
|
||||
|
|
12
tox.ini
12
tox.ini
|
@ -301,6 +301,18 @@ commands =
|
|||
find . -type f -name "*.pyc" -delete
|
||||
tempest run --regex {[testenv:slow]regex} {posargs}
|
||||
|
||||
[testenv:multinode]
|
||||
envdir = .tox/tempest
|
||||
sitepackages = {[tempestenv]sitepackages}
|
||||
basepython = {[tempestenv]basepython}
|
||||
setenv = {[tempestenv]setenv}
|
||||
deps = {[tempestenv]deps}
|
||||
# The regex below is used to select the multinode and smoke tagged tests
|
||||
regex = '\[.*\bsmoke|multinode\b.*\]'
|
||||
commands =
|
||||
find . -type f -name "*.pyc" -delete
|
||||
tempest run --regex {[testenv:multinode]regex} {posargs}
|
||||
|
||||
[testenv:ipv6-only]
|
||||
envdir = .tox/tempest
|
||||
sitepackages = {[tempestenv]sitepackages}
|
||||
|
|
|
@ -72,7 +72,8 @@
|
|||
and a tempest one exist.
|
||||
timeout: 10800
|
||||
vars:
|
||||
tox_envlist: full
|
||||
# This job run multinode and smoke tests.
|
||||
tox_envlist: multinode
|
||||
devstack_localrc:
|
||||
FORCE_CONFIG_DRIVE: false
|
||||
NOVA_ALLOW_MOVE_TO_SAME_HOST: false
|
||||
|
|
Loading…
Reference in New Issue