Yum List Command
The parsers contains in this module are:
YumListInstalled - Command yum list installed
YumListAvailable - Command yum list available
- class insights.parsers.yum_list.YumListAvailable(context)[source]
Bases:
YumListBase
The
YumListAvailable
class parses the output of theyum list available
command. Each line is parsed and stored in aYumListRpm
object.Input and usage examples are identical to
YumListInstalled
but with “Installed” replaced with “Available” wherever applicable.
- class insights.parsers.yum_list.YumListBase(context, package_status)[source]
Bases:
CommandParser
,RpmList
Base class for the
yum list [installed|available]
commands. Each line is parsed and stored in aYumListRpm
object.Note
YumListBase
shares theinsights.parsers.installed_rpms.RpmList
interface withinsights.parsers.installed_rpms.InstalledRpms
. The only difference isYumListBase
takes the output ofyum list
as its source data, and theYumListRpm
instances it produces contain a.repo
attribute.- expired_cache
Indicates if the yum repo cache is expired.
- Type:
bool
- package_status
Indicates if the list is of installed or available packages.
- Type:
str
- parse_content(content)[source]
yum list
output is basically tabular with an ignorable set of rows at the top and a line “Installed Packages” that designates the following rows as data. Each column has a maximum width, and if any column overflows, the following columns wrap to the next line and indent to their usual starting positions. It’s also possible for the data rows to be followed by more lines that should be ignored. Sinceyum list
is for human consumption, the footer lines can be syntactically ambiguous with data lines. We use heuristics to check for an invalid row to signal the end of data.
- class insights.parsers.yum_list.YumListInstalled(context)[source]
Bases:
YumListBase
The
YumListInstalled
class parses the output of theyum list installed
command. Each line is parsed and stored in aYumListRpm
object.Sample input data:
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast Loaded plugins: product-id, search-disabled-repos, subscription-manager Installed Packages GConf2.x86_64 3.2.6-8.el7 @rhel-7-server-rpms GeoIP.x86_64 1.5.0-11.el7 @anaconda/7.3 ImageMagick.x86_64 6.7.8.9-15.el7_2 @rhel-7-server-rpms NetworkManager.x86_64 1:1.4.0-17.el7_3 installed NetworkManager.x86_64 1:1.8.0-9.el7 installed NetworkManager-config-server.noarch 1:1.8.0-9.el7 installed Uploading Enabled Repositories Report Loaded plugins: priorities, product-id, rhnplugin, rhui-lb, subscription- : manager, versionlock
Examples
>>> type(installed_rpms) <class 'insights.parsers.yum_list.YumListInstalled'> >>> 'GeoIP' in installed_rpms True >>> installed_rpms.get_max('GeoIP') 0:GeoIP-1.5.0-11.el7 >>> installed_rpms.expired_cache True >>> type(installed_rpms.get_max('GeoIP')) <class 'insights.parsers.yum_list.YumListRpm'> >>> rpm1 = installed_rpms.get_max('GeoIP') >>> rpm1.package == 'GeoIP-1.5.0-11.el7' True >>> rpm1.nvr == 'GeoIP-1.5.0-11.el7' True >>> rpm1.source >>> rpm1.name 'GeoIP' >>> rpm1.version '1.5.0' >>> rpm1.release '11.el7' >>> rpm1.arch 'x86_64' >>> rpm1.epoch '0' >>> from insights.parsers.yum_list import YumListRpm >>> rpm2 = YumListRpm.from_package('GeoIP-1.6.0-11.el7.x86_64') >>> rpm1 == rpm2 False >>> rpm1 > rpm2 False >>> rpm1 < rpm2 True
- class insights.parsers.yum_list.YumListRpm(data)[source]
Bases:
InstalledRpm
The same as
insights.parsers.installed_rpms.InstalledRpm
but with an additional.repo
attribute.- repo
yum / dnf repository name, if available.
- Type:
str