X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=debian%2Fovs-bugtool;h=65569649a043413e5517503cd74717b04e16fa23;hb=f8cd50a42b8a816204a8955772d4493a0fb12686;hp=9bdf289a073da3f175c16caa852c1c86779922df;hpb=36f0987fc984fff0893c5929161acd50871b2987;p=openvswitch diff --git a/debian/ovs-bugtool b/debian/ovs-bugtool index 9bdf289a..65569649 100755 --- a/debian/ovs-bugtool +++ b/debian/ovs-bugtool @@ -14,7 +14,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Copyright (c) 2005, 2007 XenSource Ltd. -# Copyright (c) 2010, Nicira Networks. +# Copyright (c) 2010, 2011 Nicira Networks. # # To add new entries to the bugtool, you need to: @@ -33,6 +33,9 @@ # or func_output(). # +import warnings +warnings.filterwarnings(action="ignore", category=DeprecationWarning) + import getopt import re import os @@ -358,6 +361,7 @@ def main(argv = None): print >>sys.stderr, "Error: ovs-bugtool must be run as root" return 1 + output_file = None output_type = 'tar.bz2' output_fd = -1 @@ -367,7 +371,8 @@ def main(argv = None): try: (options, params) = getopt.gnu_getopt( argv, 'sy', ['capabilities', 'silent', 'yestoall', 'entries=', - 'output=', 'outfd=', 'all', 'unlimited', 'debug']) + 'output=', 'outfd=', 'outfile=', 'all', 'unlimited', + 'debug']) except getopt.GetoptError, opterr: print >>sys.stderr, opterr return 2 @@ -386,7 +391,7 @@ def main(argv = None): return 0 if k == '--output': - if v in ['tar', 'tar.bz2', 'zip']: + if v in ['tar', 'tar.bz2', 'tar.gz', 'zip']: output_type = v else: print >>sys.stderr, "Invalid output format '%s'" % v @@ -414,6 +419,9 @@ def main(argv = None): print >>sys.stderr, "Invalid output file descriptor", output_fd return 2 + if k == '--outfile': + output_file = v + elif k == '--all': entries = caps.keys() elif k == '--unlimited': @@ -430,6 +438,10 @@ def main(argv = None): print >>sys.stderr, "Option '--outfd' only valid with '--output=tar'" return 2 + if output_fd != -1 and output_file is not None: + print >>sys.stderr, "Cannot set both '--outfd' and '--outfile'" + return 2 + if ANSWER_YES_TO_ALL: output("Warning: '--yestoall' argument provided, will not prompt for individual files.") @@ -515,7 +527,6 @@ exclude those logs from the archive. cmd_output(CAP_NETWORK_STATUS, [OVS_DPCTL, 'show']) for d in dp_list(): cmd_output(CAP_NETWORK_STATUS, [OVS_OFCTL, 'show', d]) - cmd_output(CAP_NETWORK_STATUS, [OVS_OFCTL, 'status', d]) cmd_output(CAP_NETWORK_STATUS, [OVS_OFCTL, 'dump-flows', d]) cmd_output(CAP_NETWORK_STATUS, [OVS_DPCTL, 'dump-flows', d]) try: @@ -572,19 +583,24 @@ exclude those logs from the archive. data['inventory.xml'] = {'cap': None, 'output': StringIOmtime(make_inventory(data, subdir))} # create archive - if output_fd == -1 and not os.path.exists(BUG_DIR): - try: - os.makedirs(BUG_DIR) - except: - pass + if output_fd == -1: + if output_file is None: + dirname = BUG_DIR + else: + dirname = os.path.dirname(output_file) + if dirname and not os.path.exists(dirname): + try: + os.makedirs(dirname) + except: + pass if output_fd == -1: output_ts('Creating output file') if output_type.startswith('tar'): - make_tar(subdir, output_type, output_fd) + make_tar(subdir, output_type, output_fd, output_file) else: - make_zip(subdir) + make_zip(subdir, output_file) clean_tapdisk_logs() @@ -772,15 +788,20 @@ def load_plugins(just_capabilities = False): if label == '': label = None cmd_output(dir, getText(el.childNodes), label) -def make_tar(subdir, suffix, output_fd): +def make_tar(subdir, suffix, output_fd, output_file): global SILENT_MODE, data mode = 'w' if suffix == 'tar.bz2': mode = 'w:bz2' - filename = "%s/%s.%s" % (BUG_DIR, subdir, suffix) + elif suffix == 'tar.gz': + mode = 'w:gz' if output_fd == -1: + if output_file is None: + filename = "%s/%s.%s" % (BUG_DIR, subdir, suffix) + else: + filename = output_file tf = tarfile.open(filename, mode) else: tf = tarfile.open(None, 'w', os.fdopen(output_fd, 'a')) @@ -815,10 +836,13 @@ def make_tar(subdir, suffix, output_fd): print filename -def make_zip(subdir): +def make_zip(subdir, output_file): global SILENT_MODE, data - filename = "%s/%s.zip" % (BUG_DIR, subdir) + if output_file is None: + filename = "%s/%s.zip" % (BUG_DIR, subdir) + else: + filename = output_file zf = zipfile.ZipFile(filename, 'w', zipfile.ZIP_DEFLATED) try: