@@ -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
Add ovn-nb.{db,ovsschema}, ovn-sb.{db,ovsschema}, and vtep.{db,ovsschema} Signed-off-by: William Tu <u9012063@gmail.com> --- utilities/bugtool/ovs-bugtool.in | 63 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+)