You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by sh...@apache.org on 2023/12/21 15:24:48 UTC
(cloudstack) branch 4.18 updated: test: additional check to ensure hosts are left in up state (#8383)
This is an automated email from the ASF dual-hosted git repository.
shwstppr pushed a commit to branch 4.18
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.18 by this push:
new d83d9949298 test: additional check to ensure hosts are left in up state (#8383)
d83d9949298 is described below
commit d83d994929828ab63f23047dfe819c4c2d637d8e
Author: Abhishek Kumar <ab...@gmail.com>
AuthorDate: Thu Dec 21 20:54:43 2023 +0530
test: additional check to ensure hosts are left in up state (#8383)
With this change, a fix is added for failures seen with test_08_migrate_vm or other migration-related tests because the target host is in `Connecting` state,
#8356 (comment)
#8374 (comment)
and more
---
test/integration/smoke/test_vm_life_cycle.py | 29 ++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/test/integration/smoke/test_vm_life_cycle.py b/test/integration/smoke/test_vm_life_cycle.py
index a9a554e19ad..6c824c1fe7d 100644
--- a/test/integration/smoke/test_vm_life_cycle.py
+++ b/test/integration/smoke/test_vm_life_cycle.py
@@ -1011,8 +1011,37 @@ class TestSecuredVmMigration(cloudstackTestCase):
@classmethod
def tearDownClass(cls):
+ if cls.hypervisor.lower() in ["kvm"]:
+ cls.ensure_all_hosts_are_up()
super(TestSecuredVmMigration, cls).tearDownClass()
+ @classmethod
+ def ensure_all_hosts_are_up(cls):
+ hosts = Host.list(
+ cls.apiclient,
+ zoneid=cls.zone.id,
+ type='Routing',
+ hypervisor='KVM'
+ )
+ for host in hosts:
+ if host.state != "Up":
+ SshClient(host.ipaddress, port=22, user=cls.hostConfig["username"], passwd=cls.hostConfig["password"]) \
+ .execute("service cloudstack-agent stop ; \
+ sleep 10 ; \
+ service cloudstack-agent start")
+ interval = 5
+ retries = 10
+ while retries > -1:
+ time.sleep(interval)
+ restarted_host = Host.list(
+ cls.apiclient,
+ hostid=host.id,
+ type='Routing'
+ )[0]
+ if restarted_host.state == "Up":
+ break
+ retries = retries - 1
+
def setUp(self):
self.apiclient = self.testClient.getApiClient()
self.dbclient = self.testClient.getDbConnection()