X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=utilities%2Fbugtool%2Fovs-bugtool.in;h=61c21db5c14cce48b13bbafdabc51980b3cfffa9;hb=77d14d9c7f9ce7245eff56aacd420646577892d0;hp=854dfa10bc27cd8c56e8f4567d46bfa906344695;hpb=eb6f3089276fefe62e5f8cc138afcbf09e655085;p=sliver-openvswitch.git diff --git a/utilities/bugtool/ovs-bugtool.in b/utilities/bugtool/ovs-bugtool.in index 854dfa10b..61c21db5c 100755 --- a/utilities/bugtool/ovs-bugtool.in +++ b/utilities/bugtool/ovs-bugtool.in @@ -113,6 +113,7 @@ OPENVSWITCH_DEFAULT_SWITCH = '/etc/default/openvswitch-switch' # Debian OPENVSWITCH_SYSCONFIG_SWITCH = '/etc/sysconfig/openvswitch' # RHEL OPENVSWITCH_DEFAULT_CONTROLLER = '/etc/default/openvswitch-controller' OPENVSWITCH_CONF_DB = '@DBDIR@/conf.db' +OPENVSWITCH_COMPACT_DB = '@DBDIR@/bugtool-compact-conf.db' OPENVSWITCH_VSWITCHD_PID = '@RUNDIR@/ovs-vswitchd.pid' VAR_LOG_DIR = '/var/log/' VAR_LOG_CORE_DIR = '/var/log/core' @@ -233,7 +234,7 @@ cap(CAP_BOOT_LOADER, PII_NO, max_size=3*KB, max_time=5) cap(CAP_DISK_INFO, PII_MAYBE, max_size=50*KB, max_time=20) -cap(CAP_HARDWARE_INFO, PII_MAYBE, max_size=30*KB, +cap(CAP_HARDWARE_INFO, PII_MAYBE, max_size=2*MB, max_time=20) cap(CAP_KERNEL_INFO, PII_MAYBE, max_size=120*KB, max_time=5) @@ -241,7 +242,7 @@ cap(CAP_LOSETUP_A, PII_MAYBE, max_size=KB, max_time=5) cap(CAP_MULTIPATH, PII_MAYBE, max_size=20*KB, max_time=10) cap(CAP_NETWORK_CONFIG, PII_IF_CUSTOMIZED, - min_size=0, max_size=40*KB) + min_size=0, max_size=5*MB) cap(CAP_NETWORK_INFO, PII_YES, max_size=50*MB, max_time=30) cap(CAP_NETWORK_STATUS, PII_YES, max_size=-1, @@ -543,7 +544,8 @@ exclude those logs from the archive. tree_output(CAP_NETWORK_CONFIG, SYSCONFIG_NETWORK_SCRIPTS, ROUTE_RE) file_output(CAP_NETWORK_CONFIG, [SYSCONFIG_NETWORK, RESOLV_CONF, NSSWITCH_CONF, HOSTS]) file_output(CAP_NETWORK_CONFIG, [NTP_CONF, IPTABLES_CONFIG, HOSTS_ALLOW, HOSTS_DENY]) - file_output(CAP_NETWORK_CONFIG, [OPENVSWITCH_CONF_DB]) + file_output(CAP_NETWORK_CONFIG, [OPENVSWITCH_DEFAULT_SWITCH, + OPENVSWITCH_SYSCONFIG_SWITCH, OPENVSWITCH_DEFAULT_CONTROLLER]) cmd_output(CAP_NETWORK_INFO, [IFCONFIG, '-a']) cmd_output(CAP_NETWORK_INFO, [ROUTE, '-n']) @@ -575,6 +577,8 @@ exclude those logs from the archive. tree_output(CAP_NETWORK_INFO, PROC_NET_VLAN_DIR) cmd_output(CAP_NETWORK_INFO, [TC, '-s', 'qdisc']) file_output(CAP_NETWORK_INFO, [PROC_NET_SOFTNET_STAT]) + + collect_ovsdb() if os.path.exists(OPENVSWITCH_VSWITCHD_PID): cmd_output(CAP_NETWORK_STATUS, [OVS_DPCTL, 'show', '-s']) for d in dp_list(): @@ -679,6 +683,8 @@ exclude those logs from the archive. for c in caps.keys(): print >>sys.stderr, " %s (%d, %d)" % (c, caps[c][MAX_SIZE], cap_sizes[c]) + + cleanup_ovsdb() return 0 def dump_scsi_hosts(cap): @@ -739,6 +745,36 @@ def dp_list(): return output.getvalue().splitlines() return [] +def collect_ovsdb(): + if not os.path.isfile(OPENVSWITCH_CONF_DB): + return + + max_size = 10*MB + + try: + if os.path.getsize(OPENVSWITCH_CONF_DB) > max_size: + if os.path.isfile(OPENVSWITCH_COMPACT_DB): + os.unlink(OPENVSWITCH_COMPACT_DB) + + output = StringIO.StringIO() + max_time = 5 + procs = [ProcOutput(['ovsdb-tool', 'compact', + OPENVSWITCH_CONF_DB, OPENVSWITCH_COMPACT_DB], + max_time, output)] + run_procs([procs]) + file_output(CAP_NETWORK_STATUS, [OPENVSWITCH_COMPACT_DB]) + else: + file_output(CAP_NETWORK_STATUS, [OPENVSWITCH_CONF_DB]) + except OSError, e: + return + +def cleanup_ovsdb(): + try: + if os.path.isfile(OPENVSWITCH_COMPACT_DB): + os.unlink(OPENVSWITCH_COMPACT_DB) + except: + return + def fd_usage(cap): output = '' fd_dict = {}