aboutsummaryrefslogtreecommitdiffstats
path: root/extras/sos-open
diff options
context:
space:
mode:
Diffstat (limited to 'extras/sos-open')
-rwxr-xr-xextras/sos-open151
1 files changed, 0 insertions, 151 deletions
diff --git a/extras/sos-open b/extras/sos-open
deleted file mode 100755
index ffc9f051..00000000
--- a/extras/sos-open
+++ /dev/null
@@ -1,151 +0,0 @@
-#!/usr/bin/python
-
-import os, commands, getopt, sys, tarfile
-
-# FILES NEEDED BY CHECKSYSREPORT: /etc/redhat-release /etc/sysconfig/rhn/up2date rpm-Va installed-rpms uname lsmod
-
-CONFIG = {}
-report_dirs = []
-
-CONFIG["outdir"] = "/tmp/sysreports"
-CONFIG["extract_reports"] = []
-CONFIG["spawn_terminal"] = False
-if not sys.stdin.isatty(): CONFIG["spawn_terminal"] = True
-else: CONFIG["spawn_terminal"] = False
-
-def cat(fname):
- try:
- fp = open(fname,"r")
- print fp.read()
- fp.close()
- except: pass
-
-try:
- opts, args = getopt.getopt(sys.argv[1:], "hi:w:vxf", ["help", "input="])
-except getopt.GetoptError:
- # print help information and exit:
- usage()
- sys.exit(2)
-
-for o, a in opts:
- if o == "-v":
- verbose = True
- if o == "-f":
- CONFIG["spawn_terminal"] = False
- if o == "-x":
- CONFIG["spawn_terminal"] = True
- sys.argv[sys.argv.index("-x")] = "-f"
- if o in ("-h", "--help"):
- usage()
- sys.exit()
- if o in ("-d"):
- CONFIG["outdir"] = a
- if o in ("-w"):
- a = os.path.abspath(a)
- try: os.stat(a)
- except: print "ERROR: could not open", a
- else: report_dirs.append(a)
-
- if o in ("-i"):
- a = os.path.abspath(a)
- try: os.stat(a)
- except: print "ERROR: could not open", a
-
-if CONFIG["spawn_terminal"]:
- print "spawning new terminal"
- sys.argv[0] = os.path.abspath(sys.argv[0])
- os.system("gnome-terminal -e '%s'" % (' '.join(sys.argv)))
- sys.exit()
-
-CONFIG["extract_reports"] = [os.path.abspath(a) for a in args]
-
-if not os.path.isdir(CONFIG["outdir"]):
- if not os.path.exists(CONFIG["outdir"]):
- exit("ERROR: working directory path exists but it's not a directory")
- else:
- try: os.mkdir(CONFIG["outdir"])
- except: exit("ERROR: could not create working directory")
-
-try: os.chdir(CONFIG["outdir"])
-except: exit("ERROR: could not chdir into working directory, please check permissions")
-
-for report in CONFIG["extract_reports"]:
- report_ext = report.rsplit(".",1)[-1]
-
- if report_ext == "gpg":
- clear_fname = os.path.join(CONFIG["outdir"],os.path.basename(report.rsplit(".",1)[0]))
- status, output = commands.getstatusoutput("gpg --output %s %s" % (clear_fname,report))
- if status:
- sys.exit("ERROR: could not decrypt using gpg" + output )
- report = clear_fname
- report_ext = clear_fname.rsplit(".",1)[-1]
- del clear_fname
-
- outdir = None
- tar = tarfile.open(report, "r")
- for tarinfo in tar:
- if tarinfo.isdir(): outdir = tarinfo.name ; break
- tar.close()
-
- if not outdir:
- print("INFO: archive doesn't appear to be either a sysreport or sosreport")
- cddir = os.path.basename(report)
- for sout in [ ".tar.gz", ".tgz", ".tar.bz2" ]:
- if cddir.endswith(sout): cddir = cddir[:-len(sout)]
- cddir = os.path.abspath(os.path.join(CONFIG["outdir"],"extract_" + cddir))
- outdir = cddir
- else:
- cddir = CONFIG["outdir"]
- outdir = os.path.abspath(os.path.join(CONFIG["outdir"], outdir))
-
- extract = True
- if os.path.isdir(outdir):
- extract = False
- yorno = False
- print "This report already seems to have been extracted in:"
- print " " + outdir
- print
- while yorno not in ['y','n']: yorno = raw_input("Do you want to replace it with a fresh copy ? (y/n) ").lower()
- if yorno == 'y':
- print "Deleting previous copy..."
- os.system("chmod -R u+rw %s" % outdir)
- os.system("rm -rf %s" % outdir)
- extract = True
-
- if extract:
- print "Extracting..."
- if not os.path.isdir(cddir):
- os.mkdir(cddir)
- if report_ext == "bz2":
- status, output = commands.getstatusoutput("tar xCfj %s %s" % (cddir,report))
- elif report_ext == "gz" or report_ext == "tgz" :
- status, output = commands.getstatusoutput("tar xCfz %s %s" % (cddir,report))
-
- if status:
- print("ERROR: there was some problem extracting the report (%s)" % report)
-
- report_dirs.append(os.path.abspath(outdir))
-
-if len(report_dirs) == 1 and os.path.isdir(report_dirs[0]):
- os.chdir(report_dirs[0])
-
- if os.path.isfile("sos_reports/diagnose.txt"):
- print
- print "Diagnostics messages available:"
- print
- fp = open("sos_reports/diagnose.txt","r")
- for line in fp.readlines():
- print " " + line.strip("\n")
- fp.close()
- print
-
- report_dirs[0]
-
- print
- print "The extracted report is located in: "
- print " " + report_dirs[0]
- print "Once finished, press exit to return."
- print
- cat("uname")
- os.system("PS1='[SoS \W]\$ ' HOME='%s' /bin/bash -l" % (report_dirs[0]) )
- sys.exit(-1)