--- yum/history.py | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/yum/history.py b/yum/history.py index 9741d36..ea3a464 100644 --- a/yum/history.py +++ b/yum/history.py @@ -30,6 +30,9 @@ from yum.packages import YumInstalledPackage, YumAvailablePackage, PackageObject _history_dir = '/var/lib/yum/history' +# NOTE: That we don't list TS_FAILED, because pkgs shouldn't go into the +# transaction with that. And if they come out with that we don't want to +# match them to anything anyway. _stcode2sttxt = {TS_UPDATE : 'Update', TS_UPDATED : 'Updated', TS_ERASE: 'Erase', @@ -277,7 +280,7 @@ class YumHistory: if txmbr.downgraded_by: state = 'Downgraded' if state is None: - state = _stcode2sttxt[txmbr.output_state] + state = _stcode2sttxt.get(txmbr.output_state) return state def trans_with_pid(self, pid): @@ -289,7 +292,8 @@ class YumHistory: return cur.lastrowid def trans_data_pid_beg(self, pid, state): - if not hasattr(self, '_tid'): + assert state is not None + if not hasattr(self, '_tid') or state is None: return # Not configured to run cur = self._get_cursor() res = executeSQL(cur, @@ -298,7 +302,8 @@ class YumHistory: VALUES (?, ?, ?)""", (self._tid, pid, state)) return cur.lastrowid def trans_data_pid_end(self, pid, state): - if not hasattr(self, '_tid'): + # State can be none here, Eg. TS_FAILED from rpmtrans + if not hasattr(self, '_tid') or state is None: return # Not configured to run cur = self._get_cursor() -- 1.6.2.5 _______________________________________________ Yum-devel mailing list Yum-devel@lists.baseurl.org http://lists.baseurl.org/mailman/listinfo/yum-devel