YumLog - file /var/log/yum.log
¶
This module provides parsing for the /var/log/yum.log
file.
The YumLog
class implements parsing for the file, which looks like:
May 13 15:54:49 Installed: libevent-2.0.21-4.el7.x86_64
May 13 15:54:49 Installed: tmux-1.8-4.el7.x86_64
May 23 18:06:24 Installed: wget-1.14-10.el7_0.1.x86_64
May 23 18:10:05 Updated: 1:openssl-libs-1.0.1e-51.el7_2.5.x86_64
May 23 18:10:05 Installed: 1:perl-parent-0.225-244.el7.noarch
May 23 18:10:05 Installed: perl-HTTP-Tiny-0.033-3.el7.noarch
May 23 16:09:09 Erased: redhat-access-insights-batch
May 23 18:10:05 Installed: perl-podlators-2.5.1-3.el7.noarch
May 23 18:10:05 Installed: perl-Pod-Perldoc-3.20-4.el7.noarch
May 23 18:10:05 Installed: 1:perl-Pod-Escapes-1.04-286.el7.noarch
May 23 18:10:06 Installed: perl-Text-ParseWords-3.29-4.el7.noarch
The information is stored as a list
of Entry
objects, each of which
contains attributes for the position in the log, timestamp of the action,
the package’s state in the system, and the affected package as an
InstalledRpm
.
Note
The examples in this module may be executed with the following command:
python -m insights.parsers.yumlog
Examples
>>> content = '''
... May 23 18:06:24 Installed: wget-1.14-10.el7_0.1.x86_64
... Jan 24 00:24:00 Updated: glibc-2.12-1.149.el6_6.4.x86_64
... Jan 24 00:24:09 Updated: glibc-devel-2.12-1.149.el6_6.4.x86_64
... Jan 24 00:24:10 Updated: nss-softokn-3.14.3-19.el6_6.x86_64
... Jan 24 18:10:05 Updated: 1:openssl-libs-1.0.1e-51.el7_2.5.x86_64
... Jan 24 00:24:11 Updated: glibc-2.12-1.149.el6_6.4.i686
... May 23 16:09:09 Erased: redhat-access-insights-batch
... Jan 24 00:24:11 Updated: glibc-devel-2.12-1.149.el6_6.4.i686
... '''.strip()
>>> from insights.tests import context_wrap
>>> yl = YumLog(context_wrap(content))
>>> e = yl.present_packages.get('nss-softokn')
>>> e.pkg.release
'19.el6_6'
>>> e = yl.present_packages.get('openssl-libs')
>>> e.pkg.name
'openssl-libs'
>>> e.pkg.version
'1.0.1e'
>>> len(yl)
8
>>> indices = [e.idx for e in yl]
>>> indices == range(len(yl))
True
- class insights.parsers.yumlog.Entry(idx, timestamp, state, pkg)¶
Bases:
tuple
namedtuple: Represents a line in
/var/log/yum.log
.- property idx¶
- property pkg¶
- property state¶
- property timestamp¶
- class insights.parsers.yumlog.YumLog(context)[source]¶
Bases:
Parser
Class for parsing /var/log/yum.log
- ERASED = 'Erased'¶
Package Erased
- INSTALLED = 'Installed'¶
Package Installed
- UPDATED = 'Updated'¶
Package Updated
- parse_content(content)[source]¶
Parses contents of each line in
/var/log/yum.log
.Each line in the file contains 5 fields that are parsed into the attributes of
Entry
instances:month
day
time
state
package
The month, day, and time form the
Entry.timestamp
.Entry.state
contains the state of the package, one ofERASED
,INSTALLED
, orUPDATED
.Entry.pkg
contains theInstalledRpm
instance corresponding to the parse package.Entry.idx
is the zero-based line number of theEntry
in the file. It can be used to tell ordering of events.- Parameters:
content (list) -- Lines of
/var/log/yum.log
to be parsed.- Raises:
ParseException -- if a line can’t be parsed for any reason.
- property present_packages¶
list
of latestEntry
instances for installed packages.