Fix dump_ovs_flows crashing when no nodes are passed 75/29075/1
authorJuan Vidal <juan.vidal.allende@ericsson.com>
Mon, 20 Feb 2017 13:47:59 +0000 (13:47 +0000)
committerJuan Vidal <juan.vidal.allende@ericsson.com>
Mon, 20 Feb 2017 13:51:53 +0000 (13:51 +0000)
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

index d650eb9..7777a9a 100644 (file)
@@ -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)