From a6b75432354e1ec3af421bdf1042c39845d9070e Mon Sep 17 00:00:00 2001 From: George Kraft Date: Fri, 17 Aug 2012 11:20:23 -0500 Subject: cxmanage: Add "fwinfo" command For convenience. This is pretty much just a shortcut to the ipmitool cxoem fw info command. --- cxmanage/controller.py | 25 ++++++++++++++++++++++++- scripts/cxmanage | 9 +++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) 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 -- cgit v1.2.1