Improve ssh timeout in vping_ssh 11/57611/1
authorCédric Ollivier <cedric.ollivier@orange.com>
Mon, 7 May 2018 14:02:00 +0000 (16:02 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Sun, 20 May 2018 21:37:44 +0000 (23:37 +0200)
It seems that 10s is not enough for Fuel.

Change-Id: I46d3d2c9091946befb0e056a8c8cc56c59087471
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
(cherry picked from commit e1e1317226b4022b6e77ae7ddcc9a1ef9d8ccbd2)

functest/opnfv_tests/openstack/vping/vping_ssh.py

index 8cc251d..933779e 100644 (file)
@@ -97,13 +97,25 @@ class VPingSSH(vping_base.VPingBase):
             return testcase.TestCase.EX_RUN_ERROR
 
     def _do_vping(self):
-        time.sleep(10)
         self.ssh.set_missing_host_key_policy(paramiko.client.AutoAddPolicy())
-        self.ssh.connect(
-            self.vm2.public_v4,
-            username=getattr(config.CONF, 'openstack_image_user'),
-            key_filename=self.key_filename,
-            timeout=getattr(config.CONF, 'vping_vm_ssh_connect_timeout'))
+        for loop in range(6):
+            try:
+                self.ssh.connect(
+                    self.vm2.public_v4,
+                    username=getattr(config.CONF, 'openstack_image_user'),
+                    key_filename=self.key_filename,
+                    timeout=getattr(
+                        config.CONF, 'vping_vm_ssh_connect_timeout'))
+                break
+            except Exception:  # pylint: disable=broad-except
+                self.logger.info(
+                    "try %s: cannot connect to %s", loop + 1,
+                    self.vm2.public_v4)
+                time.sleep(10)
+        else:
+            self.logger.error("cannot connect to %s", self.vm2.public_v4)
+            return False
+
         self.logger.debug("ssh: %s", self.ssh)
         (_, stdout, _) = self.ssh.exec_command(
             'ping -c 1 ' + self.vm1.private_v4)