Patch to fix test_aggregates_basic_ops and test_aggregates tests
Use method list_hypervisor to get info about running vms on hypervisor
instead of deprecated in Nova method list_servers_on_hypervisors
Related-prod: PRODX-42808
Change-Id: Ib94a11748ad319bae85d1d1ef29ff31927020510
diff --git a/tempest/serial_tests/api/admin/test_aggregates.py b/tempest/serial_tests/api/admin/test_aggregates.py
index ce54957..4555dff 100644
--- a/tempest/serial_tests/api/admin/test_aggregates.py
+++ b/tempest/serial_tests/api/admin/test_aggregates.py
@@ -239,11 +239,14 @@
hosts_in_zone.extend(agg['hosts'])
hosts = [v for v in self.hosts_available if v not in hosts_in_zone]
hosts_available = []
+ list_hypervisors = (
+ self.os_admin.hypervisor_client.list_hypervisors(
+ {"with_servers": True}))["hypervisors"]
for host in hosts:
- hypervisor_servers = (
- self.os_admin.hypervisor_client.list_servers_on_hypervisor(
- host)["hypervisors"][0].get("servers", None))
- if not hypervisor_servers:
+ hypervisor_vms = next((
+ hyper["running_vms"] for hyper in list_hypervisors if
+ hyper['service']['host'] == host), None)
+ if hypervisor_vms == 0:
hosts_available.append(host)
if not hosts_available:
raise self.skipException("All hosts are already in other "
diff --git a/tempest/serial_tests/scenario/test_aggregates_basic_ops.py b/tempest/serial_tests/scenario/test_aggregates_basic_ops.py
index cc45297..ba10322 100644
--- a/tempest/serial_tests/scenario/test_aggregates_basic_ops.py
+++ b/tempest/serial_tests/scenario/test_aggregates_basic_ops.py
@@ -61,12 +61,15 @@
binary='nova-compute')['services']
self.assertNotEmpty(svc_list)
hosts_available = []
+ list_hypervisors = (
+ self.os_admin.hypervisor_client.list_hypervisors(
+ {"with_servers": True}))["hypervisors"]
for host in svc_list:
if (host['state'] == 'up' and host['status'] == 'enabled'):
- hypervisor_servers = (
- self.os_admin.hypervisor_client.list_servers_on_hypervisor(
- host["host"])["hypervisors"][0].get("servers", None))
- if not hypervisor_servers:
+ hypervisor_vms = next((
+ hyper["running_vms"] for hyper in list_hypervisors if
+ hyper['service']['host'] == host["host"]), None)
+ if hypervisor_vms == 0:
hosts_available.append(host["host"])
aggregates = self.aggregates_client.list_aggregates()['aggregates']
hosts_in_zone = []