Avoid the ValueError exception for a ping timeout. 75/2975/3
authorwu.zhihui <wu.zhihui1@zte.com.cn>
Mon, 2 Nov 2015 08:11:54 +0000 (16:11 +0800)
committerwu.zhihui <wu.zhihui1@zte.com.cn>
Mon, 2 Nov 2015 09:25:53 +0000 (17:25 +0800)
In ping.py:
If ping a ip address timeout, the return value "stdout"
is null. And the code "rtt=float(stdout)" raises a
ValueError exception. The better handle is to avoid the
exception and log a ping timeout.

Change-Id: Ia2a3ff44c35dda1a700a5109f8e642a636e89bc6
Signed-off-by: wu.zhihui <wu.zhihui1@zte.com.cn>
yardstick/benchmark/scenarios/networking/ping.py

index 34278b9..c62c79e 100644 (file)
@@ -67,12 +67,15 @@ class Ping(base.Scenario):
         if exit_status != 0:
             raise RuntimeError(stderr)
 
-        result["rtt"] = float(stdout)
+        if stdout:
+            result["rtt"] = float(stdout)
 
-        if "sla" in self.scenario_cfg:
-            sla_max_rtt = int(self.scenario_cfg["sla"]["max_rtt"])
-            assert result["rtt"] <= sla_max_rtt, "rtt %f > sla:max_rtt(%f); " % \
-                (result["rtt"], sla_max_rtt)
+            if "sla" in self.scenario_cfg:
+                sla_max_rtt = int(self.scenario_cfg["sla"]["max_rtt"])
+                assert result["rtt"] <= sla_max_rtt, "rtt %f > sla:max_rtt(%f); " % \
+                    (result["rtt"], sla_max_rtt)
+        else:
+            LOG.error("ping '%s' '%s' timeout", options, destination)
 
 
 def _test():