From 0e74f780545b1aa8f6a5277b3cfdc9887c37ed5e Mon Sep 17 00:00:00 2001 From: Jiri Moskovcak Date: Wed, 8 Jun 2011 17:27:42 +0200 Subject: split libreport to a separate package --- libreport/src/report-python/__init__.py | 147 ++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 libreport/src/report-python/__init__.py (limited to 'libreport/src/report-python/__init__.py') diff --git a/libreport/src/report-python/__init__.py b/libreport/src/report-python/__init__.py new file mode 100644 index 00000000..9efd5257 --- /dev/null +++ b/libreport/src/report-python/__init__.py @@ -0,0 +1,147 @@ +from _pyreport import * + + +#Compatibility with report package: + +import os + +SYSTEM_RELEASE_PATHS = ["/etc/system-release","/etc/redhat-release"] +####SYSTEM_RELEASE_DEPS = ["system-release", "redhat-release"] + +_hardcoded_default_product = "" +_hardcoded_default_version = "" + +####def getProduct_fromPRODUCT(): +#### try: +#### import product +#### return product.productName +#### except: +#### return "" + +####def getVersion_fromPRODUCT(): +#### try: +#### import product +#### return product.productVersion +#### except: +#### return "" + +####def getProduct_fromRPM(): +#### try: +#### import rpm +#### ts = rpm.TransactionSet() +#### for each_dep in SYSTEM_RELEASE_DEPS: +#### mi = ts.dbMatch('provides', each_dep) +#### for h in mi: +#### if h['name']: +#### return h['name'].split("-")[0].capitalize() +#### +#### return "" +#### except: +#### return "" + +####def getVersion_fromRPM(): +#### try: +#### import rpm +#### ts = rpm.TransactionSet() +#### for each_dep in SYSTEM_RELEASE_DEPS: +#### mi = ts.dbMatch('provides', each_dep) +#### for h in mi: +#### if h['version']: +#### return str(h['version']) +#### return "" +#### except: +#### return "" + +def getProduct_fromFILE(): + for each_path in SYSTEM_RELEASE_PATHS: + try: + file = open(each_path, "r") + content = file.read() + if content.startswith("Red Hat Enterprise Linux"): + return "Red Hat Enterprise Linux" + if content.startswith("Fedora"): + return "Fedora" + i = content.find(" release") + if i > -1: + return content[0:i] + except: + pass + return "" + +def getVersion_fromFILE(): + for each_path in SYSTEM_RELEASE_PATHS: + try: + file = open(each_path, "r") + content = file.read() + if content.find("Rawhide") > -1: + return "rawhide" + clist = content.split(" ") + i = clist.index("release") + return clist[i+1] + except: + pass + return "" + +def getProduct(): + ####product = getProduct_fromPRODUCT() + ####if product: + #### return product + product = getProduct_fromFILE() + if product: + return product + ####product = getProduct_fromRPM() + ####if product: + #### return product + return _hardcoded_default_product + +def getVersion(): + ####version = getVersion_fromPRODUCT() + ####if version: + #### return version + version = getVersion_fromFILE() + if version: + return version + ####version = getVersion_fromRPM() + ####if version: + #### return version + return _hardcoded_default_version + +def createAlertSignature(component, hashmarkername, hashvalue, summary, alertSignature): + pd = problem_data() + pd.add("component", component) + pd.add("hashmarkername", hashmarkername) + pd.add("duphash", hashvalue) + pd.add("reason", summary) + pd.add("description", alertSignature) + pd.add_basics() + + return pd + +# used in anaconda / python-meh +def createPythonUnhandledExceptionSignature(component, hashmarkername, hashvalue, summary, description, exnFileName): + pd = problem_data() + pd.add("component", component) + pd.add("hashmarkername", hashmarkername) + #cd.add("localhash", hashvalue) + pd.add("duphash", hashvalue) + pd.add("reason", summary) + pd.add("description", description) + #pd.add("product", getProduct()) + #pd.add("version", getVersion()) + pd.add_basics() # adds product and version + some other required field + # FIXME: how to handle files out of dump dir?? + #1 = flag BIN + pd.add("pythonUnhandledException", exnFileName, 1) + + return pd + +""" +def report(cd, io_unused): + state = run_event_state() + #state.logging_callback = logfunc + r = state.run_event_on_problem_data(cd, "report") + return r +""" + +def report(pd, io_unused): + result = report_problem(pd) -- cgit