diff options
| author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-03-04 16:19:31 +0100 |
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-03-04 16:19:31 +0100 |
| commit | afb30fe1502e9c45b722da3b5c09e292d589aa7f (patch) | |
| tree | 8f0429ccc50987a34e73899c0a724ff6e0205c93 /src/Gui | |
| parent | 892b7fde75cafca50a18dcb8620ddc22b2e74688 (diff) | |
| download | abrt-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.py | 23 | ||||
| -rw-r--r-- | src/Gui/CCDump.py | 5 | ||||
| -rw-r--r-- | src/Gui/CCMainWindow.py | 4 | ||||
| -rw-r--r-- | src/Gui/CCReporterDialog.py | 4 |
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 |
