From fa9e51776151df5ce23d56671ea05501e0cefb04 Mon Sep 17 00:00:00 2001
From: Juan Vidal <juan.vidal.allende@ericsson.com>
Date: Mon, 20 Feb 2017 13:47:59 +0000
Subject: Fix dump_ovs_flows crashing when no nodes are passed

Although it makes no sense that the lists of controller/compute nodes
are empty, the function should not crash.

This check ensures that the directory where the logs are written to is
always created before dumping anything.

Change-Id: I3a1fd8ac8ab983decb0bc227a2a22286ff5e34ce
Signed-off-by: Juan Vidal <juan.vidal.allende@ericsson.com>
---
 modules/opnfv/utils/ovs_logger.py | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

(limited to 'modules/opnfv/utils')

diff --git a/modules/opnfv/utils/ovs_logger.py b/modules/opnfv/utils/ovs_logger.py
index d650eb9ab..7777a9a16 100644
--- a/modules/opnfv/utils/ovs_logger.py
+++ b/modules/opnfv/utils/ovs_logger.py
@@ -101,19 +101,13 @@ class OVSLogger(object):
         if timestamp is None:
             timestamp = time.strftime("%Y%m%d-%H%M%S")
 
-        for controller_client in controller_clients:
-            self.ofctl_dump_flows(controller_client,
-                                  timestamp=timestamp)
-            self.vsctl_show(controller_client,
-                            timestamp=timestamp)
-
-        for compute_client in compute_clients:
-            self.ofctl_dump_flows(compute_client,
-                                  timestamp=timestamp)
-            self.vsctl_show(compute_client,
-                            timestamp=timestamp)
+        clients = controller_clients + compute_clients
+        for client in clients:
+            self.ofctl_dump_flows(client, timestamp=timestamp)
+            self.vsctl_show(client, timestamp=timestamp)
 
         if related_error is not None:
             dumpdir = os.path.join(self.ovs_dir, timestamp)
+            self.__mkdir_p(dumpdir)
             with open(os.path.join(dumpdir, 'error'), 'w') as f:
                 f.write(related_error)
-- 
cgit