summaryrefslogtreecommitdiffstats
path: root/pytools
diff options
context:
space:
mode:
authorAndrew Jeffery <andrew@aj.id.au>2017-10-11 22:08:55 +1030
committerAndrew Jeffery <andrew@aj.id.au>2017-10-17 16:30:50 +1030
commit0b6883d858be9e816ba867d441d4ec450f1da617 (patch)
tree68e35f073b5e1a606fcf0b54745c9fa27792db47 /pytools
parentda3b35ccf06ac9501eb639319894b8dc7ec80040 (diff)
downloadtalos-skeleton-0b6883d858be9e816ba867d441d4ec450f1da617.tar.gz
talos-skeleton-0b6883d858be9e816ba867d441d4ec450f1da617.zip
pytools: obmcutil: Use argparse
Change-Id: Id33e3802530aa1bf0cb2af88c16bd94f8bfa219d Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Diffstat (limited to 'pytools')
-rw-r--r--pytools/obmcutil37
1 files changed, 9 insertions, 28 deletions
diff --git a/pytools/obmcutil b/pytools/obmcutil
index 42f34e5..06d3fae 100644
--- a/pytools/obmcutil
+++ b/pytools/obmcutil
@@ -2,6 +2,7 @@
import sys
import dbus
+import argparse
dbus_objects = {
'power': {
@@ -61,6 +62,7 @@ dbus_objects = {
'interface_name': 'xyz.openbmc_project.State.Boot.Progress',
'property': 'BootProgress',
},
+ 'state' : ['bmcstate', 'chassisstate', 'hoststate']
}
def run_one_command(dbus_bus, objinfo):
@@ -93,36 +95,15 @@ def run_all_commands(dbus_bus, commands):
run_one_command(dbus_bus, dbus_objects[command])
def main():
- # Commands that need to run multiple objects above
- multicmd_objects = { 'state' : ['bmcstate', 'chassisstate', 'hoststate'] }
+ parser = argparse.ArgumentParser()
+ parser.add_argument('recipe', choices=sorted(dbus_objects.keys()))
+ args = parser.parse_args()
dbus_bus = dbus.SystemBus()
-
- if (len(sys.argv) == 1 or sys.argv[1] == "-h" or
- (not(dbus_objects.has_key(sys.argv[1])) and
- (not(multicmd_objects.has_key(sys.argv[1]))))):
- print "Usage: obmcutil [command]"
- print "Available commands:"
- for name in sorted(dbus_objects.keys()):
- m = ""
- if (dbus_objects[name].has_key('property') == True):
- m = " (" + dbus_objects[name]['interface_name'] + "->" + \
- dbus_objects[name]['property'] + ")"
-
- print "\t" + name + m
- print "Multi-Commands:"
- for name in sorted(multicmd_objects.keys()):
- print "\t" + name + " -> " + ",".join(multicmd_objects[name])
- exit(0)
-
- sys.argv.pop(0)
- recipe = sys.argv.pop(0)
-
- # Check if this is a multicmd command and update if it is
- if(multicmd_objects.has_key(recipe)):
- recipe = multicmd_objects[recipe]
-
- run_all_commands(dbus_bus, recipe)
+ try:
+ run_all_commands(dbus_bus, dbus_objects[args.recipe], args)
+ finally:
+ dbus_bus.close()
if __name__ == "__main__":
main()
OpenPOWER on IntegriCloud