[yum-commits] Branch 'yum-3_2_X' - 2 commits - yumcommands.py yum/__init__.py
James Antill
james at osuosl.org
Thu Jun 30 17:05:09 UTC 2011
yum/__init__.py | 14
yumcommands.py | 1148 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 1134 insertions(+), 28 deletions(-)
New commits:
commit ac2b120ae322dad4e0b8e8b4ffa6fff32c6ca5c3
Author: Nick Jacek <njacek at redhat.com>
Date: Thu Jun 30 11:04:29 2011 -0400
Adds documentation for the yumcommands module.
diff --git a/yumcommands.py b/yumcommands.py
index 4dcbea7..3a985c3 100644
--- a/yumcommands.py
+++ b/yumcommands.py
@@ -43,16 +43,22 @@ def _err_mini_usage(base, basecmd):
base.logger.critical(txt)
def checkRootUID(base):
- """
- Verify that the program is being run by the root user.
+ """Verify that the program is being run by the root user.
- @param base: a YumBase object.
+ :param base: a :class:`yum.Yumbase` object.
+ :raises: :class:`cli.CliError`
"""
if base.conf.uid != 0:
base.logger.critical(_('You need to be root to perform this command.'))
raise cli.CliError
def checkGPGKey(base):
+ """Verify that there are gpg keys for the enabled repositories in the
+ rpm database.
+
+ :param base: a :class:`yum.Yumbase` object.
+ :raises: :class:`cli.CliError`
+ """
if not base.gpgKeyCheck():
for repo in base.repos.listEnabled():
if (repo.gpgcheck or repo.repo_gpgcheck) and not repo.gpgkey:
@@ -75,6 +81,14 @@ For more information contact your distribution or package provider.
raise cli.CliError
def checkPackageArg(base, basecmd, extcmds):
+ """Verify that *extcmds* contains the name of at least one package for
+ *basecmd* to act on.
+
+ :param base: a :class:`yum.Yumbase` object.
+ :param basecmd: the name of the command being checked for
+ :param extcmds: a list of arguments passed to *basecmd*
+ :raises: :class:`cli.CliError`
+ """
if len(extcmds) == 0:
base.logger.critical(
_('Error: Need to pass a list of pkgs to %s') % basecmd)
@@ -82,18 +96,44 @@ def checkPackageArg(base, basecmd, extcmds):
raise cli.CliError
def checkItemArg(base, basecmd, extcmds):
+ """Verify that *extcmds* contains the name of at least one item for
+ *basecmd* to act on. Generally, the items are command-line
+ arguments that are not the name of a package, such as a file name
+ passed to provides.
+
+ :param base: a :class:`yum.Yumbase` object.
+ :param basecmd: the name of the command being checked for
+ :param extcmds: a list of arguments passed to *basecmd*
+ :raises: :class:`cli.CliError`
+ """
if len(extcmds) == 0:
base.logger.critical(_('Error: Need an item to match'))
_err_mini_usage(base, basecmd)
raise cli.CliError
def checkGroupArg(base, basecmd, extcmds):
+ """Verify that *extcmds* contains the name of at least one group for
+ *basecmd* to act on.
+
+ :param base: a :class:`yum.Yumbase` object.
+ :param basecmd: the name of the command being checked for
+ :param extcmds: a list of arguments passed to *basecmd*
+ :raises: :class:`cli.CliError`
+ """
if len(extcmds) == 0:
base.logger.critical(_('Error: Need a group or list of groups'))
_err_mini_usage(base, basecmd)
raise cli.CliError
def checkCleanArg(base, basecmd, extcmds):
+ """Verify that *extcmds* contains at least one argument, and that all
+ arguments in *extcmds* are valid options for clean.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command being checked for
+ :param extcmds: a list of arguments passed to *basecmd*
+ :raises: :class:`cli.CliError`
+ """
VALID_ARGS = ('headers', 'packages', 'metadata', 'dbcache', 'plugins',
'expire-cache', 'rpmdb', 'all')
@@ -108,12 +148,14 @@ def checkCleanArg(base, basecmd, extcmds):
raise cli.CliError
def checkShellArg(base, basecmd, extcmds):
- """
- Verify that the arguments given to 'yum shell' are valid.
-
- yum shell can be given either no args, or exactly one argument,
- which is the name of a file. If these are not met,
- raise cli.CliError.
+ """Verify that the arguments given to 'yum shell' are valid. yum
+ shell can be given either no argument, or exactly one argument,
+ which is the name of a file.
+
+ :param base: a :class:`yum.Yumbase` object.
+ :param basecmd: the name of the command being checked for
+ :param extcmds: a list of arguments passed to *basecmd*
+ :raises: :class:`cli.CliError`
"""
if len(extcmds) == 0:
base.verbose_logger.debug(_("No argument to shell"))
@@ -133,10 +175,12 @@ def checkShellArg(base, basecmd, extcmds):
raise cli.CliError
def checkEnabledRepo(base, possible_local_files=[]):
- """
- Verify that there is at least one enabled repo.
+ """Verify that there is at least one enabled repo.
- @param base: a YumBase object.
+ :param base: a :class:`yum.Yumbase` object.
+ :param basecmd: the name of the command being checked for
+ :param extcmds: a list of arguments passed to *basecmd*
+ :raises: :class:`cli.CliError`:
"""
if base.repos.listEnabled():
return
@@ -152,63 +196,145 @@ def checkEnabledRepo(base, possible_local_files=[]):
raise cli.CliError
class YumCommand:
-
+ """An abstract base class that defines the methods needed by the cli
+ to execute a specific command. Subclasses must override at least
+ :func:`getUsage` and :func:`getSummary`.
+ """
+
def __init__(self):
self.done_command_once = False
self.hidden = False
def doneCommand(self, base, msg, *args):
+ """ Output *msg* the first time that this method is called, and do
+ nothing on subsequent calls. This is to prevent duplicate
+ messages from being printed for the same command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param msg: the message to be output
+ :param *args: additional arguments associated with the message
+ """
if not self.done_command_once:
base.verbose_logger.info(msg, *args)
self.done_command_once = True
def getNames(self):
+ """Return a list of strings that are the names of the command.
+ The command can be called from the command line by using any
+ of these names.
+
+ :return: a list containing the names of the command
+ """
return []
def getUsage(self):
- """
- @return: A usage string for the command, including arguments.
+ """Return a usage string for the command, including arguments.
+
+ :return: a usage string for the command
"""
raise NotImplementedError
def getSummary(self):
- """
- @return: A one line summary of what the command does.
+ """Return a one line summary of what the command does.
+
+ :return: a one line summary of what the command does
"""
raise NotImplementedError
def doCheck(self, base, basecmd, extcmds):
+ """Verify that various conditions are met so that the command
+ can run.
+
+ :param base: a :class:`yum.Yumbase` object.
+ :param basecmd: the name of the command being checked for
+ :param extcmds: a list of arguments passed to *basecmd*
+ """
pass
def doCommand(self, base, basecmd, extcmds):
- """
- @return: (exit_code, [ errors ]) where exit_code is:
- 0 = we're done, exit
- 1 = we've errored, exit with error string
- 2 = we've got work yet to do, onto the next stage
+ """Execute the command
+
+ :param base: a :class:`yum.Yumbase` object.
+ :param basecmd: the name of the command being executed
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
"""
return 0, [_('Nothing to do')]
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before the
+ command can run
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
return True
class InstallCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ install command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of
+ these names.
+
+ :return: a list containing the names of this command
+ """
return ['install']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return _("PACKAGE...")
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Install a package or packages on your system")
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can run.
+ These include that the program is being run by the root user,
+ that there are enabled repositories with gpg keys, and that
+ this command is called with appropriate arguments.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
checkRootUID(base)
checkGPGKey(base)
checkPackageArg(base, basecmd, extcmds)
checkEnabledRepo(base, extcmds)
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
self.doneCommand(base, _("Setting up Install Process"))
try:
return base.installPkgs(extcmds)
@@ -216,21 +342,60 @@ class InstallCommand(YumCommand):
return 1, [str(e)]
class UpdateCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ update command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can by called from the command line by using any of
+ these names.
+
+ :return: a list containing the names of this command
+ """
return ['update', 'update-to']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return _("[PACKAGE...]")
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Update a package or packages on your system")
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can run.
+ These include that there are enabled repositories with gpg
+ keys, and that this command is being run by the root user.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
checkRootUID(base)
checkGPGKey(base)
checkEnabledRepo(base, extcmds)
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
self.doneCommand(base, _("Setting up Update Process"))
try:
return base.updatePkgs(extcmds, update_to=(basecmd == 'update-to'))
@@ -238,21 +403,59 @@ class UpdateCommand(YumCommand):
return 1, [str(e)]
class DistroSyncCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ distro-synch command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['distribution-synchronization', 'distro-sync']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return _("[PACKAGE...]")
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Synchronize installed packages to the latest available versions")
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can run.
+ These include that the program is being run by the root user,
+ and that there are enabled repositories with gpg keys.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
checkRootUID(base)
checkGPGKey(base)
checkEnabledRepo(base, extcmds)
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
self.doneCommand(base, _("Setting up Distribution Synchronization Process"))
try:
base.conf.obsoletes = 1
@@ -289,16 +492,46 @@ def _list_cmd_calc_columns(base, ypl):
return (-columns[0], -columns[1], -columns[2])
class InfoCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ update command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['info']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "[PACKAGE|all|available|installed|updates|extras|obsoletes|recent]"
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Display details about a package or group of packages")
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
try:
highlight = base.term.MODE['bold']
ypl = base.returnPkgLists(extcmds, installed_available=highlight)
@@ -389,35 +622,95 @@ class InfoCommand(YumCommand):
return 0, []
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
if len(extcmds) and extcmds[0] == 'installed':
return False
return True
class ListCommand(InfoCommand):
+ """A class containing methods needed by the cli to execute the
+ list command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['list']
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("List a package or groups of packages")
class EraseCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ erase command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['erase', 'remove']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "PACKAGE..."
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Remove a package or packages from your system")
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can
+ run. These include that the program is being run by the root
+ user, and that this command is called with appropriate
+ arguments.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
checkRootUID(base)
checkPackageArg(base, basecmd, extcmds)
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
self.doneCommand(base, _("Setting up Remove Process"))
try:
return base.erasePkgs(extcmds)
@@ -425,9 +718,25 @@ class EraseCommand(YumCommand):
return 1, [str(e)]
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
return False
def needTsRemove(self, base, basecmd, extcmds):
+ """Return whether a transaction set for removal only must be
+ set up before this command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a remove-only transaction set is needed, False otherwise
+ """
return True
@@ -442,12 +751,25 @@ class GroupsCommand(YumCommand):
'groupinfo' : 'info'}
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['groups', 'group'] + self.direct_commands.keys()
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "[list|info|summary|install|upgrade|remove|mark] [GROUP]"
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Display, or use, the groups information")
def _grp_setup_doCommand(self, base):
@@ -479,6 +801,14 @@ class GroupsCommand(YumCommand):
return cmd, extcmds
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can run.
+ The exact conditions checked will vary depending on the
+ subcommand that is being called.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
cmd, extcmds = self._grp_cmd(basecmd, extcmds)
checkEnabledRepo(base)
@@ -505,6 +835,19 @@ class GroupsCommand(YumCommand):
raise cli.CliError
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
cmd, extcmds = self._grp_cmd(basecmd, extcmds)
self._grp_setup_doCommand(base)
@@ -529,6 +872,14 @@ class GroupsCommand(YumCommand):
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
cmd, extcmds = self._grp_cmd(basecmd, extcmds)
if cmd in ('list', 'info', 'remove', 'summary'):
@@ -536,6 +887,14 @@ class GroupsCommand(YumCommand):
return True
def needTsRemove(self, base, basecmd, extcmds):
+ """Return whether a transaction set for removal only must be
+ set up before this command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a remove-only transaction set is needed, False otherwise
+ """
cmd, extcmds = self._grp_cmd(basecmd, extcmds)
if cmd in ('remove',):
@@ -543,20 +902,56 @@ class GroupsCommand(YumCommand):
return False
class MakeCacheCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ makecache command.
+ """
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['makecache']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return ""
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Generate the metadata cache")
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can
+ run; namely that there is an enabled repository.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
checkEnabledRepo(base)
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
base.logger.debug(_("Making cache files for all metadata files."))
base.logger.debug(_("This may take a while depending on the speed of this computer"))
try:
@@ -582,44 +977,134 @@ class MakeCacheCommand(YumCommand):
return 0, [_('Metadata Cache Created')]
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
return False
class CleanCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ clean command.
+ """
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['clean']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "[headers|packages|metadata|dbcache|plugins|expire-cache|all]"
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Remove cached data")
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can run.
+ These include that there is at least one enabled repository,
+ and that this command is called with appropriate arguments.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
checkCleanArg(base, basecmd, extcmds)
checkEnabledRepo(base)
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
base.conf.cache = 1
return base.cleanCli(extcmds)
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
return False
class ProvidesCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ provides command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['provides', 'whatprovides']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "SOME_STRING"
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Find what package provides the given value")
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can
+ run; namely that this command is called with appropriate arguments.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
checkItemArg(base, basecmd, extcmds)
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
base.logger.debug("Searching Packages: ")
try:
return base.provides(extcmds)
@@ -627,19 +1112,56 @@ class ProvidesCommand(YumCommand):
return 1, [str(e)]
class CheckUpdateCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ update command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['check-update']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "[PACKAGE...]"
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Check for available package updates")
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can
+ run; namely that there is at least one enabled repository.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
checkEnabledRepo(base)
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
obscmds = ['obsoletes'] + extcmds
base.extcmds.insert(0, 'updates')
result = 0
@@ -681,19 +1203,56 @@ class CheckUpdateCommand(YumCommand):
return result, []
class SearchCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ search command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['search']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "SOME_STRING"
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Search package details for the given string")
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can
+ run; namely that this command is called with appropriate arguments.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
checkItemArg(base, basecmd, extcmds)
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
base.logger.debug(_("Searching Packages: "))
try:
return base.search(extcmds)
@@ -701,24 +1260,70 @@ class SearchCommand(YumCommand):
return 1, [str(e)]
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
return False
class UpgradeCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ update command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['upgrade', 'upgrade-to']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return 'PACKAGE...'
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Update packages taking obsoletes into account")
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can
+ run. These include that the program is being run by the root
+ user, and that there are enabled repositories with gpg.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
checkRootUID(base)
checkGPGKey(base)
checkEnabledRepo(base, extcmds)
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
base.conf.obsoletes = 1
self.doneCommand(base, _("Setting up Upgrade Process"))
try:
@@ -727,25 +1332,64 @@ class UpgradeCommand(YumCommand):
return 1, [str(e)]
class LocalInstallCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ localinstall command.
+ """
+
def __init__(self):
YumCommand.__init__(self)
self.hidden = True
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['localinstall', 'localupdate']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "FILE"
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Install a local RPM")
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can
+ run. These include that there are enabled repositories with
+ gpg keys, and that this command is called with appropriate
+ arguments.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
checkRootUID(base)
checkGPGKey(base)
checkPackageArg(base, basecmd, extcmds)
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is:
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
self.doneCommand(base, _("Setting up Local Package Process"))
updateonly = basecmd == 'localupdate'
@@ -755,19 +1399,57 @@ class LocalInstallCommand(YumCommand):
return 1, [str(e)]
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
return False
class ResolveDepCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ resolvedep command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['resolvedep']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "DEPENDENCY"
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Determine which package provides the given dependency")
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
base.logger.debug(_("Searching Packages for Dependency:"))
try:
return base.resolveDepCli(extcmds)
@@ -775,19 +1457,56 @@ class ResolveDepCommand(YumCommand):
return 1, [str(e)]
class ShellCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ shell command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['shell']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "[FILENAME]"
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Run an interactive yum shell")
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can
+ run; namely that this command is called with appropriate arguments.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
checkShellArg(base, basecmd, extcmds)
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
self.doneCommand(base, _('Setting up Yum Shell'))
try:
return base.doShell()
@@ -795,23 +1514,69 @@ class ShellCommand(YumCommand):
return 1, [str(e)]
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
return False
class DepListCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ deplist command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['deplist']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return 'PACKAGE...'
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("List a package's dependencies")
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can
+ run; namely that this command is called with appropriate
+ arguments.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
checkPackageArg(base, basecmd, extcmds)
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
self.doneCommand(base, _("Finding dependencies: "))
try:
return base.deplist(extcmds)
@@ -820,17 +1585,46 @@ class DepListCommand(YumCommand):
class RepoListCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ repolist command.
+ """
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ('repolist',)
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return '[all|enabled|disabled]'
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _('Display the configured software repositories')
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
def _repo_size(repo):
ret = 0
for pkg in repo.sack.returnPackages():
@@ -1088,21 +1882,54 @@ class RepoListCommand(YumCommand):
return 0, ['repolist: ' +to_unicode(locale.format("%d", tot_num, True))]
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
return False
class HelpCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ help command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['help']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "COMMAND"
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Display a helpful usage message")
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can
+ run; namely that this command is called with appropriate
+ arguments.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
if len(extcmds) == 0:
base.usage()
raise cli.CliError
@@ -1147,28 +1974,85 @@ class HelpCommand(YumCommand):
return help_output
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
if extcmds[0] in base.yum_cli_commands:
command = base.yum_cli_commands[extcmds[0]]
base.verbose_logger.info(self._makeOutput(command))
return 0, []
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
return False
class ReInstallCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ reinstall command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['reinstall']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "PACKAGE..."
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can
+ run. These include that the program is being run by the root
+ user, that there are enabled repositories with gpg keys, and
+ that this command is called with appropriate arguments.
+
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
checkRootUID(base)
checkGPGKey(base)
checkPackageArg(base, basecmd, extcmds)
checkEnabledRepo(base, extcmds)
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
self.doneCommand(base, _("Setting up Reinstall Process"))
try:
return base.reinstallPkgs(extcmds)
@@ -1177,25 +2061,73 @@ class ReInstallCommand(YumCommand):
return 1, [to_unicode(e)]
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("reinstall a package")
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
return False
class DowngradeCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ downgrade command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['downgrade']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "PACKAGE..."
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can
+ run. These include that the program is being run by the root
+ user, that there are enabled repositories with gpg keys, and
+ that this command is called with appropriate arguments.
+
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
checkRootUID(base)
checkGPGKey(base)
checkPackageArg(base, basecmd, extcmds)
checkEnabledRepo(base, extcmds)
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
self.doneCommand(base, _("Setting up Downgrade Process"))
try:
return base.downgradePkgs(extcmds)
@@ -1203,23 +2135,65 @@ class DowngradeCommand(YumCommand):
return 1, [str(e)]
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("downgrade a package")
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
return False
class VersionCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ version command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['version']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "[all|installed|available]"
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Display a version for the machine and/or available repos.")
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
vcmd = 'installed'
if extcmds:
vcmd = extcmds[0]
@@ -1344,6 +2318,14 @@ class VersionCommand(YumCommand):
return 0, ['version']
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
vcmd = 'installed'
if extcmds:
vcmd = extcmds[0]
@@ -1354,13 +2336,30 @@ class VersionCommand(YumCommand):
class HistoryCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ history command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['history']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "[info|list|packages-list|summary|addon-info|redo|undo|rollback|new]"
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Display, or use, the transaction history")
def _hcmd_redo(self, base, extcmds):
@@ -1427,6 +2426,14 @@ class HistoryCommand(YumCommand):
base.history._create_db_file()
def doCheck(self, base, basecmd, extcmds):
+ """Verify that conditions are met so that this command can
+ run. The exact conditions checked will vary depending on the
+ subcommand that is being called.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ """
cmds = ('list', 'info', 'summary', 'repeat', 'redo', 'undo', 'new',
'rollback',
'addon', 'addon-info',
@@ -1444,6 +2451,19 @@ class HistoryCommand(YumCommand):
raise cli.CliError
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
vcmd = 'list'
if extcmds:
vcmd = extcmds[0]
@@ -1474,6 +2494,14 @@ class HistoryCommand(YumCommand):
return ret
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
vcmd = 'list'
if extcmds:
vcmd = extcmds[0]
@@ -1481,16 +2509,46 @@ class HistoryCommand(YumCommand):
class CheckRpmdbCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ check-rpmdb command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['check', 'check-rpmdb']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "[dependencies|duplicates|all]"
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("Check for problems in the rpmdb")
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
chkcmd = 'all'
if extcmds:
chkcmd = extcmds
@@ -1505,19 +2563,57 @@ class CheckRpmdbCommand(YumCommand):
return rc, ['%s %s' % (basecmd, chkcmd)]
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
return False
class LoadTransactionCommand(YumCommand):
+ """A class containing methods needed by the cli to execute the
+ load-transaction command.
+ """
+
def getNames(self):
+ """Return a list containing the names of this command. This
+ command can be called from the command line by using any of these names.
+
+ :return: a list containing the names of this command
+ """
return ['load-transaction', 'load-ts']
def getUsage(self):
+ """Return a usage string for this command.
+
+ :return: a usage string for this command
+ """
return "filename"
def getSummary(self):
+ """Return a one line summary of this command.
+
+ :return: a one line summary of this command
+ """
return _("load a saved transaction from filename")
def doCommand(self, base, basecmd, extcmds):
+ """Execute this command.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: the command line arguments passed to *basecmd*
+ :return: (exit_code, [ errors ])
+
+ exit_code is::
+
+ 0 = we're done, exit
+ 1 = we've errored, exit with error string
+ 2 = we've got work yet to do, onto the next stage
+ """
if not extcmds:
base.logger.critical(_("No saved transaction file specified."))
raise cli.CliError
@@ -1533,5 +2629,13 @@ class LoadTransactionCommand(YumCommand):
def needTs(self, base, basecmd, extcmds):
+ """Return whether a transaction set must be set up before this
+ command can run.
+
+ :param base: a :class:`yum.Yumbase` object
+ :param basecmd: the name of the command
+ :param extcmds: a list of arguments passed to *basecmd*
+ :return: True if a transaction set is needed, False otherwise
+ """
return True
commit 9b34422294b92d869130211d166ab489d7511df0
Author: James Antill <james at and.org>
Date: Thu Jun 30 12:05:39 2011 -0400
Fix confusion from passing pkgtup as an nevra_dict. BZ 717973.
diff --git a/yum/__init__.py b/yum/__init__.py
index 99039e0..e9bc1f9 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1242,13 +1242,15 @@ class YumBase(depsolve.Depsolve):
if None in pkgtup:
return None
return pkgtup
- def _add_not_found_a(self, pkgs, nevra_dict):
- pkgtup = self._add_not_found(pkgs, nevra_dict)
+ def _add_not_found_a(self, pkgs, nevra_dict={}, pkgtup=None):
+ if pkgtup is None and nevra_dict:
+ pkgtup = self._add_not_found(pkgs, nevra_dict)
if pkgtup is None:
return
self._not_found_a[pkgtup] = YumNotFoundPackage(pkgtup)
- def _add_not_found_i(self, pkgs, nevra_dict):
- pkgtup = self._add_not_found(pkgs, nevra_dict)
+ def _add_not_found_i(self, pkgs, nevra_dict={}, pkgtup=None):
+ if pkgtup is None and nevra_dict:
+ pkgtup = self._add_not_found(pkgs, nevra_dict)
if pkgtup is None:
return
self._not_found_i[pkgtup] = YumNotFoundPackage(pkgtup)
@@ -3049,7 +3051,7 @@ class YumBase(depsolve.Depsolve):
pkgs = self.pkgSack.searchPkgTuple(pkgtup)
if len(pkgs) == 0:
- self._add_not_found_a(pkgs, pkgtup)
+ self._add_not_found_a(pkgs, pkgtup=pkgtup)
if allow_missing: # This can happen due to excludes after .up has
return None # happened.
raise Errors.DepError, _('Package tuple %s could not be found in packagesack') % str(pkgtup)
@@ -3071,7 +3073,7 @@ class YumBase(depsolve.Depsolve):
pkgs = self.rpmdb.searchPkgTuple(pkgtup)
if len(pkgs) == 0:
- self._add_not_found_i(pkgs, pkgtup)
+ self._add_not_found_i(pkgs, pkgtup=pkgtup)
raise Errors.RpmDBError, _('Package tuple %s could not be found in rpmdb') % str(pkgtup)
# Dito. FIXME from getPackageObject() for len() > 1 ... :)
More information about the Yum-commits
mailing list