Merge "Remove unnecessary class variable in v3 snapshots_client"
diff --git a/.zuul.yaml b/.zuul.yaml
index ee0ae9c..17ec1fc 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -164,6 +164,16 @@
tempest_concurrency: 2
- job:
+ name: tempest-full-rocky
+ parent: tempest-full
+ override-checkout: stable/rocky
+
+- job:
+ name: tempest-full-rocky-py3
+ parent: tempest-full-py3
+ override-checkout: stable/rocky
+
+- job:
name: tempest-full-queens
parent: tempest-full
override-checkout: stable/queens
@@ -314,6 +324,26 @@
- ^setup.cfg$
- ^tempest/hacking/.*$
- ^tempest/tests/.*$
+ - tempest-full-rocky:
+ irrelevant-files:
+ - ^(test-|)requirements.txt$
+ - ^.*\.rst$
+ - ^doc/.*$
+ - ^etc/.*$
+ - ^releasenotes/.*$
+ - ^setup.cfg$
+ - ^tempest/hacking/.*$
+ - ^tempest/tests/.*$
+ - tempest-full-rocky-py3:
+ irrelevant-files:
+ - ^(test-|)requirements.txt$
+ - ^.*\.rst$
+ - ^doc/.*$
+ - ^etc/.*$
+ - ^releasenotes/.*$
+ - ^setup.cfg$
+ - ^tempest/hacking/.*$
+ - ^tempest/tests/.*$
- tempest-full-queens:
irrelevant-files:
- ^(test-|)requirements.txt$
@@ -422,6 +452,8 @@
- ^tempest/tests/.*$
periodic-stable:
jobs:
+ - tempest-full-rocky
+ - tempest-full-rocky-py3
- tempest-full-queens
- tempest-full-queens-py3
- tempest-full-pike
diff --git a/README.rst b/README.rst
index c93e19f..0a130dc 100644
--- a/README.rst
+++ b/README.rst
@@ -111,15 +111,18 @@
$ tempest run --workspace cloud-01
- There is also the option to use testr directly, or any `testr`_ based test
- runner, like `ostestr`_. For example, from the workspace dir run::
+ There is also the option to use `stestr`_ directly. For example, from
+ the workspace dir run::
- $ ostestr --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.(api|scenario))'
+ $ stestr run --black-regex '\[.*\bslow\b.*\]' '^tempest\.(api|scenario)'
- will run the same set of tests as the default gate jobs.
+ will run the same set of tests as the default gate jobs. Or you can
+ use `unittest`_ compatible test runners such as `testr`_, `pytest`_ etc.
+.. _unittest: https://docs.python.org/3/library/unittest.html
.. _testr: https://testrepository.readthedocs.org/en/latest/MANUAL.html
-.. _ostestr: https://docs.openstack.org/os-testr/latest/
+.. _stestr: https://stestr.readthedocs.org/en/latest/MANUAL.html
+.. _pytest: https://docs.pytest.org/en/latest/
Library
-------
diff --git a/tempest/api/compute/admin/test_aggregates.py b/tempest/api/compute/admin/test_aggregates.py
index c9d5733..bf46320 100644
--- a/tempest/api/compute/admin/test_aggregates.py
+++ b/tempest/api/compute/admin/test_aggregates.py
@@ -224,11 +224,10 @@
self.client.add_host(aggregate['id'], host=host)
self.addCleanup(self.client.remove_host, aggregate['id'], host=host)
- admin_servers_client = self.os_admin.servers_client
server = self.create_test_server(availability_zone=az_name,
wait_until='ACTIVE')
- body = admin_servers_client.show_server(server['id'])['server']
- self.assertEqual(host, body['OS-EXT-SRV-ATTR:host'])
+ server_host = self.get_host_for_server(server['id'])
+ self.assertEqual(host, server_host)
class AggregatesAdminTestV241(AggregatesAdminTestBase):
diff --git a/tempest/api/compute/admin/test_migrations.py b/tempest/api/compute/admin/test_migrations.py
index e030575..83f2e61 100644
--- a/tempest/api/compute/admin/test_migrations.py
+++ b/tempest/api/compute/admin/test_migrations.py
@@ -114,8 +114,7 @@
raise self.skipException(msg)
server = self.create_test_server(wait_until="ACTIVE")
- src_host = self.admin_servers_client.show_server(
- server['id'])['server']['OS-EXT-SRV-ATTR:host']
+ src_host = self.get_host_for_server(server['id'])
self.admin_servers_client.migrate_server(server['id'])
@@ -131,8 +130,7 @@
waiters.wait_for_server_status(self.servers_client,
server['id'], 'ACTIVE')
- dst_host = self.admin_servers_client.show_server(
- server['id'])['server']['OS-EXT-SRV-ATTR:host']
+ dst_host = self.get_host_for_server(server['id'])
assert_func(src_host, dst_host)
@decorators.idempotent_id('4bf0be52-3b6f-4746-9a27-3143636fe30d')
diff --git a/tempest/api/compute/admin/test_servers_on_multinodes.py b/tempest/api/compute/admin/test_servers_on_multinodes.py
index d32a5b4..5cd98f4 100644
--- a/tempest/api/compute/admin/test_servers_on_multinodes.py
+++ b/tempest/api/compute/admin/test_servers_on_multinodes.py
@@ -28,7 +28,7 @@
def resource_setup(cls):
super(ServersOnMultiNodesTest, cls).resource_setup()
cls.server01 = cls.create_test_server(wait_until='ACTIVE')['id']
- cls.host01 = cls._get_host(cls.server01)
+ cls.host01 = cls.get_host_for_server(cls.server01)
@classmethod
def skip_checks(cls):
@@ -38,11 +38,6 @@
raise cls.skipException(
"Less than 2 compute nodes, skipping multi-nodes test.")
- @classmethod
- def _get_host(cls, server_id):
- return cls.os_admin.servers_client.show_server(
- server_id)['server']['OS-EXT-SRV-ATTR:host']
-
def _create_servers_with_group(self, policy):
group_id = self.create_test_server_group(policy=[policy])['id']
hints = {'group': group_id}
@@ -61,7 +56,7 @@
hosts = {}
for server in servers:
self.assertIn(server['id'], server_group['members'])
- hosts[server['id']] = self._get_host(server['id'])
+ hosts[server['id']] = self.get_host_for_server(server['id'])
return hosts
@@ -73,7 +68,7 @@
hints = {'same_host': self.server01}
server02 = self.create_test_server(scheduler_hints=hints,
wait_until='ACTIVE')['id']
- host02 = self._get_host(server02)
+ host02 = self.get_host_for_server(server02)
self.assertEqual(self.host01, host02)
@decorators.idempotent_id('cc7ca884-6e3e-42a3-a92f-c522fcf25e8e')
@@ -84,7 +79,7 @@
hints = {'different_host': self.server01}
server02 = self.create_test_server(scheduler_hints=hints,
wait_until='ACTIVE')['id']
- host02 = self._get_host(server02)
+ host02 = self.get_host_for_server(server02)
self.assertNotEqual(self.host01, host02)
@decorators.idempotent_id('7869cc84-d661-4e14-9f00-c18cdc89cf57')
@@ -96,7 +91,7 @@
hints = {'different_host': [self.server01]}
server02 = self.create_test_server(scheduler_hints=hints,
wait_until='ACTIVE')['id']
- host02 = self._get_host(server02)
+ host02 = self.get_host_for_server(server02)
self.assertNotEqual(self.host01, host02)
@decorators.idempotent_id('f8bd0867-e459-45f5-ba53-59134552fe04')
diff --git a/tempest/api/compute/base.py b/tempest/api/compute/base.py
index 834983b..ff2f99c 100644
--- a/tempest/api/compute/base.py
+++ b/tempest/api/compute/base.py
@@ -591,8 +591,9 @@
self.addCleanup(client.delete_flavor, flavor['id'])
return flavor
- def get_host_for_server(self, server_id):
- server_details = self.admin_servers_client.show_server(server_id)
+ @classmethod
+ def get_host_for_server(cls, server_id):
+ server_details = cls.admin_servers_client.show_server(server_id)
return server_details['server']['OS-EXT-SRV-ATTR:host']
def get_host_other_than(self, server_id):
diff --git a/tempest/scenario/manager.py b/tempest/scenario/manager.py
index cdc30b9..dff50a9 100644
--- a/tempest/scenario/manager.py
+++ b/tempest/scenario/manager.py
@@ -704,6 +704,11 @@
else:
raise lib_exc.InvalidConfiguration()
+ @classmethod
+ def get_host_for_server(cls, server_id):
+ server_details = cls.os_admin.servers_client.show_server(server_id)
+ return server_details['server']['OS-EXT-SRV-ATTR:host']
+
class NetworkScenarioTest(ScenarioTest):
"""Base class for network scenario tests.
diff --git a/tempest/scenario/test_network_advanced_server_ops.py b/tempest/scenario/test_network_advanced_server_ops.py
index 7452ee6..8827610 100644
--- a/tempest/scenario/test_network_advanced_server_ops.py
+++ b/tempest/scenario/test_network_advanced_server_ops.py
@@ -102,10 +102,6 @@
'ACTIVE')
self._check_network_connectivity(server, keypair, floating_ip)
- def _get_host_for_server(self, server_id):
- body = self.admin_servers_client.show_server(server_id)['server']
- return body['OS-EXT-SRV-ATTR:host']
-
@decorators.idempotent_id('61f1aa9a-1573-410e-9054-afa557cab021')
@decorators.attr(type='slow')
@utils.services('compute', 'network')
@@ -220,7 +216,7 @@
keypair = self.create_keypair()
server = self._setup_server(keypair)
floating_ip = self._setup_network(server, keypair)
- src_host = self._get_host_for_server(server['id'])
+ src_host = self.get_host_for_server(server['id'])
self._wait_server_status_and_check_network_connectivity(
server, keypair, floating_ip)
@@ -230,7 +226,7 @@
self.servers_client.confirm_resize_server(server['id'])
self._wait_server_status_and_check_network_connectivity(
server, keypair, floating_ip)
- dst_host = self._get_host_for_server(server['id'])
+ dst_host = self.get_host_for_server(server['id'])
self.assertNotEqual(src_host, dst_host)
@@ -246,7 +242,7 @@
keypair = self.create_keypair()
server = self._setup_server(keypair)
floating_ip = self._setup_network(server, keypair)
- src_host = self._get_host_for_server(server['id'])
+ src_host = self.get_host_for_server(server['id'])
self._wait_server_status_and_check_network_connectivity(
server, keypair, floating_ip)
@@ -256,6 +252,6 @@
self.servers_client.revert_resize_server(server['id'])
self._wait_server_status_and_check_network_connectivity(
server, keypair, floating_ip)
- dst_host = self._get_host_for_server(server['id'])
+ dst_host = self.get_host_for_server(server['id'])
self.assertEqual(src_host, dst_host)
diff --git a/tempest/scenario/test_security_groups_basic_ops.py b/tempest/scenario/test_security_groups_basic_ops.py
index f5805ef..28a2d64 100644
--- a/tempest/scenario/test_security_groups_basic_ops.py
+++ b/tempest/scenario/test_security_groups_basic_ops.py
@@ -282,11 +282,8 @@
# Verify servers are on different compute nodes
if self.multi_node:
- adm_get_server = self.os_admin.servers_client.show_server
- new_host = adm_get_server(server["id"])["server"][
- "OS-EXT-SRV-ATTR:host"]
- host_list = [adm_get_server(s)["server"]["OS-EXT-SRV-ATTR:host"]
- for s in self.servers]
+ new_host = self.get_host_for_server(server["id"])
+ host_list = [self.get_host_for_server(s) for s in self.servers]
self.assertNotIn(new_host, host_list,
message="Failed to boot servers on different "
"Compute nodes.")
diff --git a/tempest/tests/cmd/test_tempest_init.py b/tempest/tests/cmd/test_tempest_init.py
index 5f39ac9..9042b12 100644
--- a/tempest/tests/cmd/test_tempest_init.py
+++ b/tempest/tests/cmd/test_tempest_init.py
@@ -22,7 +22,7 @@
class TestTempestInit(base.TestCase):
- def test_generate_testr_conf(self):
+ def test_generate_stestr_conf(self):
# Create fake conf dir
conf_dir = self.useFixture(fixtures.TempDir())
diff --git a/tox.ini b/tox.ini
index d61a7fe..970f415 100644
--- a/tox.ini
+++ b/tox.ini
@@ -78,6 +78,7 @@
deps = {[tempestenv]deps}
# The regex below is used to select which tests to run and exclude the slow tag:
# See the testrepository bug: https://bugs.launchpad.net/testrepository/+bug/1208610
+# FIXME: We can replace it with the `--black-regex` option to exclude tests now.
commands =
find . -type f -name "*.pyc" -delete
tempest run --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.api)' {posargs}
@@ -100,6 +101,7 @@
deps = {[tempestenv]deps}
# The regex below is used to select which tests to run and exclude the slow tag:
# See the testrepository bug: https://bugs.launchpad.net/testrepository/+bug/1208610
+# FIXME: We can replace it with the `--black-regex` option to exclude tests now.
commands =
find . -type f -name "*.pyc" -delete
tempest run --serial --regex '(?!.*\[.*\bslow\b.*\])(^tempest\.(api|scenario))' {posargs}