summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Minar <miminar@redhat.com>2014-04-28 13:28:02 +0200
committerMichal Minar <miminar@redhat.com>2014-04-28 14:24:21 +0200
commit43d28f12b6835ebf077e4fe5a922e70f194d5cb6 (patch)
tree85b1336827f63a26953a32a267d2097481f68122
parentabbc629ee928abf48ae66fdfbbeefd6b03253950 (diff)
downloadopenlmi-scripts-43d28f12b6835ebf077e4fe5a922e70f194d5cb6.tar.gz
openlmi-scripts-43d28f12b6835ebf077e4fe5a922e70f194d5cb6.tar.xz
openlmi-scripts-43d28f12b6835ebf077e4fe5a922e70f194d5cb6.zip
software: be more verbose with -v option
Improved output of verify command. With verbose option, produce output also for passed packages. Do not treat installation of already install package as an error.
-rw-r--r--commands/software/lmi/scripts/software/__init__.py19
-rw-r--r--commands/software/lmi/scripts/software/cmd.py21
2 files changed, 24 insertions, 16 deletions
diff --git a/commands/software/lmi/scripts/software/__init__.py b/commands/software/lmi/scripts/software/__init__.py
index 7446d59..0330bc7 100644
--- a/commands/software/lmi/scripts/software/__init__.py
+++ b/commands/software/lmi/scripts/software/__init__.py
@@ -447,6 +447,11 @@ def set_repository_enabled(ns, repository, enable=True):
if results.errorstr:
msg += ': ' + results.errorstr
raise LmiFailed(msg)
+ LOG().info('Repository "%s" %s.', repository.Name,
+ "enabled" if enable else "disabled")
+ else:
+ LOG().info('Repository "%s" is already %s.', repository.Name,
+ "enabled" if enable else "disabled")
return repository.EnabledState
def install_package(ns, package, force=False, update=False):
@@ -497,14 +502,15 @@ def install_package(ns, package, force=False, update=False):
except pywbem.CIMError:
pass
if getattr(package, 'InstallDate', None) is not None:
- raise LmiFailed('Package "%s" is already installed!' % nevra)
+ LOG().info('Package "%s" is already installed.' % nevra)
+ return
msg = 'Failed to %s package "%s".' % (
'update' if update else 'install', nevra)
if job.ErrorDescription:
msg += ': ' + job.ErrorDescription
raise LmiFailed(msg)
else:
- LOG().info('Installed package "%s" on remote host "%s".',
+ LOG().info('Installed package "%s".',
nevra, ns.connection.uri)
installed = job.associators(
@@ -549,7 +555,7 @@ def install_from_uri(ns, uri, force=False, update=False):
msg += ': ' + results.errorstr
raise LmiFailed(msg)
else:
- LOG().info('Installed package from uri.')
+ LOG().info('Installed package from uri %s.', uri)
def remove_package(ns, package):
"""
@@ -578,7 +584,9 @@ def remove_package(ns, package):
get_package_nevra(package))
for assoc in installed_assocs:
+ nevra = get_package_nevra(assoc.InstalledSoftware)
assoc.to_instance().delete()
+ LOG().info('Removed package %s.', nevra)
def render_failed_flags(failed_flags):
"""
@@ -647,15 +655,12 @@ def verify_package(ns, package):
if job.ErrorDescription:
msg += ': ' + job.ErrorDescription
raise LmiFailed(msg)
- LOG().debug('Verified package "%s" on remote host "%s".',
- nevra, ns.connection.uri)
failed = job.associators(
Role='AffectingElement',
ResultRole='AffectedElement',
AssocClass="LMI_AffectedSoftwareJobElement",
ResultClass='LMI_SoftwareIdentityFileCheck')
- LOG().debug('Verified package "%s" on remote host "%s" with %d failures.',
- nevra, ns.connection.uri, len(failed))
+ LOG().debug('Verified package "%s" with %d failures.', nevra, len(failed))
return failed
diff --git a/commands/software/lmi/scripts/software/cmd.py b/commands/software/lmi/scripts/software/cmd.py
index c3ec888..a3f4792 100644
--- a/commands/software/lmi/scripts/software/cmd.py
+++ b/commands/software/lmi/scripts/software/cmd.py
@@ -330,21 +330,24 @@ class Verify(command.LmiLister):
COLUMNS = []
def execute(self, ns, package_array):
- failed_identity_checks = []
+ identity_checks = []
def _verify_identity(identity):
failed_checks = list(software.verify_package(ns, identity))
+ identity_checks.append((identity, failed_checks))
+
+ for_each_package_specs(ns, package_array, 'verify', _verify_identity)
+ for identity, failed_checks in identity_checks:
if len(failed_checks):
- failed_identity_checks.append((identity, failed_checks))
+ yield fcmd.NewTableCommand(title=identity.ElementName)
+ for file_check in failed_checks:
+ yield ( software.render_failed_flags(file_check.FailedFlags)
+ , file_check.Name)
+ elif self.app.config.verbose:
+ yield fcmd.NewTableCommand(title=identity.ElementName)
+ yield ('', 'passed')
else:
LOG().debug('Package "%s" passed.', identity.ElementName)
- for_each_package_specs(ns, package_array, 'verify', _verify_identity)
- for identity, checks in failed_identity_checks:
- yield fcmd.NewTableCommand(title=identity.ElementName)
- for file_check in checks:
- yield ( software.render_failed_flags(file_check.FailedFlags)
- , file_check.Name)
-
class ChangeEnabledState(command.LmiCheckResult):
"""
Class for 'enable' and 'disable' commands. This particular class allows