[ovs-dev] [PATCH 2/2] ovs-bugtool: Add OVN/VTEP db and schema files

William Tu u9012063 at gmail.com
Sat Jan 16 00:05:27 UTC 2016


Add ovn-nb.{db,ovsschema}, ovn-sb.{db,ovsschema}, and vtep.{db,ovsschema}

Signed-off-by: William Tu <u9012063 at gmail.com>
---
 utilities/bugtool/ovs-bugtool.in | 63 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/utilities/bugtool/ovs-bugtool.in b/utilities/bugtool/ovs-bugtool.in
index aa4b567..331d8a6 100755
--- a/utilities/bugtool/ovs-bugtool.in
+++ b/utilities/bugtool/ovs-bugtool.in
@@ -113,6 +113,15 @@ OPENVSWITCH_DEFAULT_SWITCH = '/etc/default/openvswitch-switch' # Debian
 OPENVSWITCH_SYSCONFIG_SWITCH = '/etc/sysconfig/openvswitch'    # RHEL
 OPENVSWITCH_CONF_DB = '@DBDIR@/conf.db'
 OPENVSWITCH_COMPACT_DB = '@DBDIR@/bugtool-compact-conf.db'
+OPENVSWITCH_OVNNB_DB = '@DBDIR@/ovnnb.db'
+OPENVSWITCH_OVNNB_SCHEMA = '@abs_top_srcdir@/ovn/ovn-nb.ovsschema'
+OPENVSWITCH_COMPACT_OVNNB_DB = '@DBDIR@/bugtool-compact-ovnnb.db'
+OPENVSWITCH_OVNSB_DB = '@DBDIR@/ovnsb.db'
+OPENVSWITCH_OVNSB_SCHEMA = '@abs_top_srcdir@/ovn/ovn-sb.ovsschema'
+OPENVSWITCH_COMPACT_OVNSB_DB = '@DBDIR@/bugtool-compact-ovnsb.db'
+OPENVSWITCH_VTEP_DB = '@DBDIR@/vtep.db'
+OPENVSWITCH_VTEP_SCHEMA = '@abs_top_srcdir@/vtep/vtep.ovsschema'
+OPENVSWITCH_COMPACT_VTEP_DB = '@DBDIR@/bugtool-compact-vtep.db'
 OPENVSWITCH_VSWITCHD_PID = '@RUNDIR@/ovs-vswitchd.pid'
 VAR_LOG_DIR = '/var/log/'
 VAR_LOG_CORE_DIR = '/var/log/core'
@@ -611,6 +620,8 @@ exclude those logs from the archive.
     cmd_output(CAP_NETWORK_INFO, [TC, '-s', 'qdisc'])
     file_output(CAP_NETWORK_INFO, [PROC_NET_SOFTNET_STAT])
 
+    collect_ovnschema()
+    collect_ovndb()
     collect_ovsdb()
     if os.path.exists(OPENVSWITCH_VSWITCHD_PID):
         cmd_output(CAP_NETWORK_STATUS, [OVS_DPCTL, 'show', '-s'])
@@ -721,6 +732,7 @@ exclude those logs from the archive.
                                                      cap_sizes[c])
 
     cleanup_ovsdb()
+    cleanup_ovndb()
     return 0
 
 def dump_scsi_hosts(cap):
@@ -781,6 +793,57 @@ def dp_list():
         return output.getvalue().splitlines()
     return []
 
+def collect_ovnschema():
+    ovndbs_schema = [OPENVSWITCH_OVNNB_SCHEMA, OPENVSWITCH_OVNSB_SCHEMA, OPENVSWITCH_VTEP_SCHEMA]
+    for schema in ovndbs_schema:
+        if not os.path.isfile(schema):
+            continue
+        try:
+            file_output(CAP_NETWORK_STATUS, [schema])
+        except OSError, e:
+            return
+
+def collect_ovndb():
+    ovndbs = [OPENVSWITCH_OVNNB_DB, OPENVSWITCH_OVNSB_DB, OPENVSWITCH_VTEP_DB]
+    ovndbs_compact = [OPENVSWITCH_COMPACT_OVNNB_DB,
+                      OPENVSWITCH_COMPACT_OVNSB_DB, OPENVSWITCH_COMPACT_VTEP_DB]
+
+    max_size = 10*MB
+
+    for i in xrange(len(ovndbs)):
+        ovndb = ovndbs[i]
+        ovndb_compact = ovndbs_compact[i]
+
+        if not os.path.isfile(ovndb):
+            continue
+
+        try:
+            if os.path.getsize(ovndb) > max_size:
+                if os.path.isfile(ovndb_compact):
+                    os.unlink(ovndb_compact)
+
+                output = StringIO.StringIO()
+                max_time = 5
+                procs = [ProcOutput(['ovsdb-tool', 'compact',
+                                    ovndb, ovndb_compact],
+                                    max_time, output)]
+                run_procs([procs])
+                file_output(CAP_NETWORK_STATUS, [ovndb_compact])
+            else:
+                file_output(CAP_NETWORK_STATUS, [ovndb])
+        except OSError, e:
+            return
+
+def cleanup_ovndb():
+    ovndbs_compact = [OPENVSWITCH_COMPACT_OVNNB_DB,
+                      OPENVSWITCH_COMPACT_OVNSB_DB, OPENVSWITCH_COMPACT_VTEP_DB]
+    for ovndb_compact in ovndbs_compact:
+        try:
+            if os.path.isfile(ovndb_compact):
+                os.unlink(ovndb_compact)
+        except:
+            return
+
 def collect_ovsdb():
     if not os.path.isfile(OPENVSWITCH_CONF_DB):
         return
-- 
2.5.0




More information about the dev mailing list