summaryrefslogtreecommitdiffstats
path: root/src/Gui
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-03-04 16:19:31 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2010-03-04 16:19:31 +0100
commitafb30fe1502e9c45b722da3b5c09e292d589aa7f (patch)
tree8f0429ccc50987a34e73899c0a724ff6e0205c93 /src/Gui
parent892b7fde75cafca50a18dcb8620ddc22b2e74688 (diff)
downloadabrt-afb30fe1502e9c45b722da3b5c09e292d589aa7f.tar.gz
abrt-afb30fe1502e9c45b722da3b5c09e292d589aa7f.tar.xz
abrt-afb30fe1502e9c45b722da3b5c09e292d589aa7f.zip
*: UID:UUID -> crash_id conversion
This fixes at least three instances where we did not check whether user is even allowed to report or delete a crash. Also fixes a few cases when root might inadvertently act on (e.g. delete) mote than one crash. Renamed FILENAME_UID to CD_UID - makes more sense this way. Added COL_INFORMALL and CD_INFORMALL. Nuked UID == -1 hacks. Renamed getReport() to start_job on Python side. Dropped a few unused parameters from server -> client dbus signals. Fixed CLI's way of reverencing crashes (see updated help text). Run-tested (GUI and CLI). Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> Acked-by: Nikola Pajkovsky <npajkovs@redhat.com>
Diffstat (limited to 'src/Gui')
-rw-r--r--src/Gui/CCDBusBackend.py23
-rw-r--r--src/Gui/CCDump.py5
-rw-r--r--src/Gui/CCMainWindow.py4
-rw-r--r--src/Gui/CCReporterDialog.py4
4 files changed, 18 insertions, 18 deletions
diff --git a/src/Gui/CCDBusBackend.py b/src/Gui/CCDBusBackend.py
index 7aa179b..6c2bb2e 100644
--- a/src/Gui/CCDBusBackend.py
+++ b/src/Gui/CCDBusBackend.py
@@ -149,11 +149,11 @@ class DBusManager(gobject.GObject):
#print "crash"
self.emit("crash")
- def update_cb(self, message, job_id=0):
+ def update_cb(self, message):
log1("Update:%s", message)
self.emit("update", message)
- def warning_cb(self, message, job_id=0):
+ def warning_cb(self, message):
log1("Warning:%s", message)
self.emit("warning", message)
@@ -164,22 +164,21 @@ class DBusManager(gobject.GObject):
else:
self.emit("daemon-state-changed", "down")
- def jobdone_cb(self, dest, uuid):
- # TODO: check that it is indeed OUR job:
- # remember uuid in getReport and compare here
- log1("Our job for UUID %s is done", uuid)
- dump = self.daemon().CreateReport(uuid)
+ def jobdone_cb(self):
+ log1("Our job for crash_id %s is done", self.job_crash_id)
+ dump = self.daemon().CreateReport(self.job_crash_id)
if dump:
self.emit("analyze-complete", dump)
else:
- self.emit("abrt-error",_("Daemon didn't return valid report info\nDebuginfo is missing?"))
+ self.emit("abrt-error", _("Daemon didn't return valid report info\nDebuginfo is missing?"))
def report_done(self, result):
self.emit("report-done", result)
- def getReport(self, UUID, force=0):
+ def start_job(self, crash_id, force=0):
# 2nd param is "force recreating of backtrace etc"
- self.daemon().StartJob(UUID, force, timeout=60)
+ self.daemon().StartJob(crash_id, force, timeout=60)
+ self.job_crash_id = crash_id
def Report(self, report, reporters, reporters_settings = None):
# map < Plguin_name vec <status, message> >
@@ -188,8 +187,8 @@ class DBusManager(gobject.GObject):
else:
self.daemon().Report(report, reporters, reply_handler=self.report_done, error_handler=self.error_handler_cb, timeout=60)
- def DeleteDebugDump(self,UUID):
- return self.daemon().DeleteDebugDump(UUID)
+ def DeleteDebugDump(self, crash_id):
+ return self.daemon().DeleteDebugDump(crash_id)
def getDumps(self):
row_dict = None
diff --git a/src/Gui/CCDump.py b/src/Gui/CCDump.py
index 3d6e870..ad7e4d5 100644
--- a/src/Gui/CCDump.py
+++ b/src/Gui/CCDump.py
@@ -15,7 +15,6 @@ CD_TXT = "t"
FILENAME_ARCHITECTURE = "architecture"
FILENAME_KERNEL = "kernel"
FILENAME_TIME = "time"
-FILENAME_UID = "uid"
FILENAME_PACKAGE = "package"
FILENAME_COMPONENT = "component"
FILENAME_DESCRIPTION = "description"
@@ -32,8 +31,10 @@ FILENAME_BACKTRACE = "backtrace"
FILENAME_MEMORYMAP = "memorymap"
FILENAME_KERNELOOPS = "kerneloops"
-CD_DUPHASH = "DUPHASH"
+CD_UID = "uid"
CD_UUID = "UUID"
+CD_INFORMALL = "InformAll"
+CD_DUPHASH = "DUPHASH"
CD_DUMPDIR = "DumpDir"
CD_COUNT = "Count"
CD_REPORTED = "Reported"
diff --git a/src/Gui/CCMainWindow.py b/src/Gui/CCMainWindow.py
index 74291fb..4d7dff4 100644
--- a/src/Gui/CCMainWindow.py
+++ b/src/Gui/CCMainWindow.py
@@ -190,7 +190,7 @@ class MainWindow():
except:
icon = None
user = "N/A"
- if entry.getUID() != "-1":
+ if entry.getUID() != "-1": # compat: only abrt <= 1.0.9 used UID = -1
try:
user = pwd.getpwuid(int(entry.getUID()))[0]
except Exception, ex:
@@ -244,7 +244,7 @@ class MainWindow():
# this should work until we keep the row object in the last position
dump = dumpsListStore.get_value(dumpsListStore.get_iter(path[0]), dumpsListStore.get_n_columns()-1)
try:
- self.ccdaemon.DeleteDebugDump(dump.getUUID())
+ self.ccdaemon.DeleteDebugDump("%s:%s" % (dump.getUID(), dump.getUUID()))
self.hydrate()
treeview.emit("cursor-changed")
except Exception, ex:
diff --git a/src/Gui/CCReporterDialog.py b/src/Gui/CCReporterDialog.py
index 7cbe219..94b9495 100644
--- a/src/Gui/CCReporterDialog.py
+++ b/src/Gui/CCReporterDialog.py
@@ -514,7 +514,7 @@ class ReporterSelector():
# show the report window with selected report
try:
- self.daemon.getReport(report[CD_UUID][CD_CONTENT], force=1)
+ self.daemon.start_job("%s:%s" % (report[CD_UID][CD_CONTENT], report[CD_UUID][CD_CONTENT]), force=1)
except Exception, ex:
# FIXME #3 dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply
# do this async and wait for yum to end with debuginfoinstal
@@ -535,7 +535,7 @@ class ReporterSelector():
# when getReport is done it emits "analyze-complete" and on_analyze_complete_cb is called
# FIXME: does it make sense to change it to use callback rather then signal emitting?
try:
- self.daemon.getReport(self.dump.getUUID())
+ self.daemon.start_job("%s:%s" % (self.dump.getUID(), self.dump.getUUID()))
except Exception, ex:
# FIXME #3 dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply
# do this async and wait for yum to end with debuginfoinstal