diff options
author | Karel Klic <kklic@redhat.com> | 2010-03-31 15:12:52 +0200 |
---|---|---|
committer | Karel Klic <kklic@redhat.com> | 2010-03-31 15:12:52 +0200 |
commit | bbb5154ea8bdb42365f32159c24899b7e5b1b703 (patch) | |
tree | 01d8bcee52bdf40b5edaf821a334dc6dd9ac1316 /src/Gui/CCDump.py | |
parent | 41d165340e8367d66719d5e306cdf55164f6b3c3 (diff) | |
parent | 5bf1aed7bbd24c27f79f63f694d4e3677a34e5f9 (diff) | |
download | abrt-bbb5154ea8bdb42365f32159c24899b7e5b1b703.tar.gz abrt-bbb5154ea8bdb42365f32159c24899b7e5b1b703.tar.xz abrt-bbb5154ea8bdb42365f32159c24899b7e5b1b703.zip |
Merge branch 'master' of ssh://git.fedorahosted.org/git/abrt
Diffstat (limited to 'src/Gui/CCDump.py')
-rw-r--r-- | src/Gui/CCDump.py | 75 |
1 files changed, 46 insertions, 29 deletions
diff --git a/src/Gui/CCDump.py b/src/Gui/CCDump.py index fe903845..8a09b5b6 100644 --- a/src/Gui/CCDump.py +++ b/src/Gui/CCDump.py @@ -44,56 +44,73 @@ CD_MESSAGE = "Message" class Dump(): """Class for mapping the debug dump to python object""" + not_required_fields = ["comment", "Message"] def __init__(self): - self.UUID = None - self.uid = None - self.Count = None - self.executable = None - self.package = None - self.time = None - self.description = None - self.Message = None - self.Reported = None - self.analyzer = None + # we set all attrs dynamically, so no need to have it in init + for field in self.not_required_fields: + self.__dict__[field] = None + + def __setattr__(self, name, value): + if value != None: + if name == "time": + try: + self.__dict__["date"] = datetime.fromtimestamp(int(value[CD_CONTENT])).strftime("%c") + except Exception, ex: + self.__dict__["date"] = value[CD_CONTENT] + log2("can't convert timestamp to date: %s" % ex) + self.__dict__[name] = value[CD_CONTENT] + else: + self.__dict__[name] = value def getUUID(self): - return self.UUID[CD_CONTENT] + return self.UUID def getUID(self): - return self.uid[CD_CONTENT] + return self.uid def getCount(self): - return int(self.Count[CD_CONTENT]) + return int(self.Count) def getExecutable(self): - return self.executable[CD_CONTENT] + return self.executable def getPackage(self): - return self.package[CD_CONTENT] + return self.package def isReported(self): - return self.Reported[CD_CONTENT] == "1" + return self.Reported == "1" def getMessage(self): if not self.Message: return "" #[] #return self.Message[CD_CONTENT].split('\n') - return self.Message[CD_CONTENT] - - def getTime(self, fmt): - #print format - if fmt: - try: - return datetime.fromtimestamp(int(self.time[CD_CONTENT])).strftime(fmt) - except Exception, e: - print e - return int(self.time[CD_CONTENT]) + return self.Message + + def getTime(self, fmt=None): + if self.time: + if fmt: + try: + return datetime.fromtimestamp(int(self.time)).strftime(fmt) + except Exception, ex: + log1(ex) + return int(self.time) + return self.time def getPackageName(self): - return self.package[CD_CONTENT][:self.package[CD_CONTENT].find("-")] + name_delimiter_pos = self.package[:self.package.rfind("-")].rfind("-") + # fix for kerneloops + if name_delimiter_pos > 0: + return self.package[:name_delimiter_pos] + return self.package def getDescription(self): - return self.description[CD_CONTENT] + return self.description def getAnalyzerName(self): - return self.analyzer[CD_CONTENT] + return self.analyzer + + def get_reason(self): + return self.reason + + def get_comment(self): + return self.comment |