summaryrefslogtreecommitdiffstats
path: root/src/report-python/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/report-python/__init__.py')
-rw-r--r--src/report-python/__init__.py130
1 files changed, 130 insertions, 0 deletions
diff --git a/src/report-python/__init__.py b/src/report-python/__init__.py
new file mode 100644
index 00000000..0b0f5685
--- /dev/null
+++ b/src/report-python/__init__.py
@@ -0,0 +1,130 @@
+from _pyreport import *
+
+
+#Compatibility with report package:
+
+import os
+
+def createAlertSignature(component, hashmarkername, hashvalue, summary, alertSignature):
+
+ 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
+
+ cd = crash_data()
+ cd.add("component", component)
+ cd.add("hashmarkername", hashmarkername)
+ cd.add("localhash", hashvalue)
+ cd.add("summary", summary)
+ cd.add("description", alertSignature)
+ cd.add("product", getProduct())
+ cd.add("version", getVersion())
+ return cd
+
+def report(cd, io_unused):
+ #dd = cd.create_dump_dir()
+ #dir_name = dd.name
+ #dd.close()
+ #r = os.spawnlp(P_WAIT, "abrt-handle-crashdump", "abrt-handle-crashdump", "-d", dirname, "-e" , "report");
+ ### Silmpler alternative:
+ state = run_event_state()
+ #state.logging_callback = logfunc
+ r = state.run_event_on_crash_data(cd, "report")
+ return r