diff options
author | Michal Minar <miminar@redhat.com> | 2014-04-28 17:07:36 +0200 |
---|---|---|
committer | Michal Minar <miminar@redhat.com> | 2014-04-28 17:07:36 +0200 |
commit | a6ee87e96aabae25f3d9b0377463d9ee0a30f5b6 (patch) | |
tree | 35e65e0ce03243820af2f77eac2f3ae54569a282 | |
parent | f25ddacac5b6783108734baef6844641660f86d9 (diff) | |
download | openlmi-scripts-a6ee87e96aabae25f3d9b0377463d9ee0a30f5b6.tar.gz openlmi-scripts-a6ee87e96aabae25f3d9b0377463d9ee0a30f5b6.tar.xz openlmi-scripts-a6ee87e96aabae25f3d9b0377463d9ee0a30f5b6.zip |
powermanagement: be more verbose with -v option
-rw-r--r-- | commands/powermanagement/lmi/scripts/powermanagement/cmd.py | 81 |
1 files changed, 39 insertions, 42 deletions
diff --git a/commands/powermanagement/lmi/scripts/powermanagement/cmd.py b/commands/powermanagement/lmi/scripts/powermanagement/cmd.py index e00cb69..a29d95f 100644 --- a/commands/powermanagement/lmi/scripts/powermanagement/cmd.py +++ b/commands/powermanagement/lmi/scripts/powermanagement/cmd.py @@ -39,6 +39,8 @@ Options: --force Skip shutting down services first """ +import abc + from lmi.scripts.common import command from lmi.scripts.common import errors from lmi.scripts.common.formatter import command as fcmd @@ -64,59 +66,54 @@ def cmd_list(ns): else: yield (name, "no") -def cmd_suspend(ns): - """ - Implementation of 'power suspend' command. - """ - return switch_power_state(ns, POWER_STATE_SUSPEND) - -def cmd_hibernate(ns): - """ - Implementation of 'power hibernate' command. - """ - return switch_power_state(ns, POWER_STATE_HIBERNATE) - -def cmd_poweroff(ns, force=False): - """ - Implementation of 'power poweroff' command. - """ - if force: - return switch_power_state(ns, POWER_STATE_POWEROFF_FORCE) - else: - return switch_power_state(ns, POWER_STATE_POWEROFF) - -def cmd_reboot(ns, force=False): +def _do_switch_power_state(ns, cmd): """ - Implementation of 'power reboot' command. + Executes given command on particular host and logs it. """ - if force: - return switch_power_state(ns, POWER_STATE_REBOOT_FORCE) - else: - return switch_power_state(ns, POWER_STATE_REBOOT) + res = switch_power_state(ns, cmd) + LOG().info('Machine %s has been %s.', ns.connection.uri, + { POWER_STATE_POWEROFF : "shut down" + , POWER_STATE_POWEROFF_FORCE : "forcefully shut down" + , POWER_STATE_REBOOT : "rebooted" + , POWER_STATE_REBOOT_FORCE : "forcefully rebooted" + , POWER_STATE_SUSPEND : "suspended" + , POWER_STATE_HIBERNATE : "hibernated"}[cmd]) + return res class Lister(command.LmiLister): CALLABLE = 'lmi.scripts.powermanagement.cmd:cmd_list' COLUMNS = ('PowerState','Available') -class Suspend(command.LmiCheckResult): +class PowerCmd(command.LmiCheckResult): EXPECT = 0 - def execute(self, ns): - return cmd_suspend(ns) + OPT_NO_UNDERSCORES = True -class Hibernate(command.LmiCheckResult): - EXPECT = 0 - def execute(self, ns): - return cmd_hibernate(ns) + @abc.abstractmethod + def get_cmd_code(self, force=False): + pass + + def execute(self, ns, **kwargs): + return _do_switch_power_state(ns, self.get_cmd_code(**kwargs)) -class Poweroff(command.LmiCheckResult): - EXPECT = 0 - def execute(self, ns, _force): - return cmd_poweroff(ns, _force) +class Suspend(PowerCmd): + + def get_cmd_code(self, force=False): + return POWER_STATE_SUSPEND -class Reboot(command.LmiCheckResult): - EXPECT = 0 - def execute(self, ns, _force): - return cmd_reboot(ns, _force) +class Hibernate(PowerCmd): + + def get_cmd_code(self, force=False): + return POWER_STATE_HIBERNATE + +class Poweroff(PowerCmd): + + def get_cmd_code(self, force=False): + return POWER_STATE_POWEROFF_FORCE if force else POWER_STATE_POWEROFF + +class Reboot(PowerCmd): + + def get_cmd_code(self, force=False): + return POWER_STATE_REBOOT_FORCE if force else POWER_STATE_REBOOT PowerManagement = command.register_subcommands( 'PowerManagement', __doc__, |