diff options
author | George Kraft <george.kraft@calxeda.com> | 2012-08-17 11:20:23 -0500 |
---|---|---|
committer | George Kraft <george.kraft@calxeda.com> | 2012-08-17 11:20:23 -0500 |
commit | a6b75432354e1ec3af421bdf1042c39845d9070e (patch) | |
tree | 889d80d85651dcd5d5a243f07f527a9fefc456b1 | |
parent | 468c254cf594c6dde84532091d38d5084074b046 (diff) | |
download | cxmanage-a6b75432354e1ec3af421bdf1042c39845d9070e.tar.gz |
cxmanage: Add "fwinfo" command
For convenience. This is pretty much just a shortcut to the
ipmitool cxoem fw info command.
-rw-r--r-- | cxmanage/controller.py | 25 | ||||
-rwxr-xr-x | scripts/cxmanage | 9 |
2 files changed, 33 insertions, 1 deletions
diff --git a/cxmanage/controller.py b/cxmanage/controller.py index 3e2da84..1f7b0f9 100644 --- a/cxmanage/controller.py +++ b/cxmanage/controller.py @@ -286,7 +286,7 @@ class Controller: return self._retry_command("mc_reset") def update_firmware(self, partition_arg="INACTIVE"): - """ Send firmware update commands to all targets in group. """ + """ Send firmware update commands to all targets """ if self.verbosity >= 1: print "Updating firmware on these hosts:" for target in self.targets: @@ -296,6 +296,29 @@ class Controller: return self._retry_command("update_firmware", self.tftp, self.images, partition_arg) + def firmware_info(self): + """ Print firmware info for all targets """ + results, errors = self._run_command(self.targets, "get_firmware_info") + + for target in self.targets: + if target.address in results: + print "[ Firmware info for %s ]" % target.address + + for partition in results[target.address]: + print "Partition : %s" % partition.partition + print "Type : %s" % partition.type + print "Offset : %s" % partition.offset + print "Size : %s" % partition.size + print "Version : %s" % partition.version + print "Daddr : %s" % partition.daddr + print "Flags : %s" % partition.flags + print "In Use : %s" % partition.in_use + print + + self._print_errors(errors) + + return len(errors) > 0 + def get_sensors(self, name=""): """ Get sensor readings from all targets """ results, errors = self._run_command(self.targets, "get_sensors", name) diff --git a/scripts/cxmanage b/scripts/cxmanage index 9a5be3a..d83ba01 100755 --- a/scripts/cxmanage +++ b/scripts/cxmanage @@ -160,6 +160,10 @@ def build_parser(): default=False, action='store_true') p['fwupdate'].set_defaults(func=fwupdate_command) + #fwinfo command + p['fwinfo'] = p['subparsers'].add_parser('fwinfo', help='get FW info') + p['fwinfo'].set_defaults(func=fwinfo_command) + #sensor command p['sensor'] = p['subparsers'].add_parser('sensor', help='read sensor value') @@ -368,6 +372,11 @@ def fwupdate_command(controller, args): return controller.update_firmware(args.partition) +def fwinfo_command(controller, args): + """print firmware info""" + return controller.firmware_info() + + def sensor_command(controller, args): """read sensor values from a cluster or host""" sensor_name = args.sensor_name |