From 8f02d2dd1f2674d0268ff73ae80fa0b7534d1931 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20de=20Saint=20Martin?= <cedric.dsm@tiolive.com>
Date: Tue, 24 Sep 2013 15:40:13 +0200
Subject: [PATCH] kvm resiliency test: better handling when takeover fails.

---
 slapos/resiliencytest/suites/kvm.py | 29 +++++++++++++++++++----------
 1 file changed, 19 insertions(+), 10 deletions(-)

diff --git a/slapos/resiliencytest/suites/kvm.py b/slapos/resiliencytest/suites/kvm.py
index 0edd1a4..d348b78 100644
--- a/slapos/resiliencytest/suites/kvm.py
+++ b/slapos/resiliencytest/suites/kvm.py
@@ -163,16 +163,25 @@ def runTestSuite(server_url, key_file, cert_file,
 
     # Make the clone instance takeover the main instance
     logger.info('Replacing main instance by clone instance...')
-    takeover(
-        server_url=server_url,
-        key_file=key_file,
-        cert_file=cert_file,
-        computer_guid=computer_id,
-        partition_id=partition_id,
-        software_release=software,
-        namebase=namebase,
-        winner_instance_suffix=str(current_clone),
-    )
+    for i in range(0, 10):
+      try:
+        takeover(
+            server_url=server_url,
+            key_file=key_file,
+            cert_file=cert_file,
+            computer_guid=computer_id,
+            partition_id=partition_id,
+            software_release=software,
+            namebase=namebase,
+            winner_instance_suffix=str(current_clone),
+        )
+        break
+      except: # SSLError
+        traceback.print_exc()
+        if i is 9:
+          raise
+        logger.warning('takeover failed. Retrying...')
+        time.sleep(10)
     logger.info('Done.')
 
     # Wait for the new IP (of old-clone new-main instance) to appear.
-- 
2.30.9