summaryrefslogtreecommitdiffstats
path: root/libreport/src/report-python/__init__.py
diff options
context:
space:
mode:
authorJiri Moskovcak <jmoskovc@redhat.com>2011-06-08 17:27:42 +0200
committerJiri Moskovcak <jmoskovc@redhat.com>2011-06-08 17:27:42 +0200
commit0e74f780545b1aa8f6a5277b3cfdc9887c37ed5e (patch)
treeb1249b7b96c908931f2c29f48f016da8be450429 /libreport/src/report-python/__init__.py
parent7ac32c68dea1fe0c6efa6ac9bb0e8ad8716d7f7d (diff)
downloadabrt-0e74f780545b1aa8f6a5277b3cfdc9887c37ed5e.tar.gz
abrt-0e74f780545b1aa8f6a5277b3cfdc9887c37ed5e.tar.xz
abrt-0e74f780545b1aa8f6a5277b3cfdc9887c37ed5e.zip
split libreport to a separate package
Diffstat (limited to 'libreport/src/report-python/__init__.py')
-rw-r--r--libreport/src/report-python/__init__.py147
1 files changed, 147 insertions, 0 deletions
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)