diff options
author | Andrew Jeffery <andrew@aj.id.au> | 2017-10-11 18:08:01 +1030 |
---|---|---|
committer | Andrew Jeffery <andrew@aj.id.au> | 2017-10-17 11:45:17 +1030 |
commit | e4dcaef2605c87302d5826fc8d34a25ca8613c43 (patch) | |
tree | 8504da4c7447f5c5ea731c209ad51a51ce8a505c /pytools | |
parent | 554a0e5c82e94dc7fbbe40791872fa89399a171a (diff) | |
download | talos-skeleton-e4dcaef2605c87302d5826fc8d34a25ca8613c43.tar.gz talos-skeleton-e4dcaef2605c87302d5826fc8d34a25ca8613c43.zip |
pytools: obmcutil: Introduce run_one_command()
Move the complexity of the for-loop body implementation away from the
loop itself. This reduces the general cyclomatic complexity a little
and allows for easier consideration of the implementation in isolation.
Change-Id: Id779dec720d3582cf89cd9981bcfd8b101b0d386
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Diffstat (limited to 'pytools')
-rw-r--r-- | pytools/obmcutil | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/pytools/obmcutil b/pytools/obmcutil index ab5e884..77398e3 100644 --- a/pytools/obmcutil +++ b/pytools/obmcutil @@ -65,6 +65,26 @@ dbus_objects = { }, } +def run_one_command(dbus_bus, objinfo): + bus = objinfo['bus_name'] + obj = objinfo['object_name'] + iface = objinfo['interface_name'] + dbus_obj = dbus_bus.get_object(bus, obj) + + if (objinfo.has_key('property')): + prop = objinfo['property'] + dbus_iface = dbus.Interface(dbus_obj, "org.freedesktop.DBus.Properties") + if objinfo.has_key('value'): + dbus_iface.Set(iface, prop, objinfo['value']) + else: + dbus_prop = dbus_iface.Get(iface, prop) + print '{:<20}: {}'.format(prop, str(dbus_prop)) + else: + dbus_iface = dbus.Interface(dbus_obj, "org.freedesktop.DBus.Properties") + props = dbus_iface.GetAll(iface) + for p in props: + print p + " = " + str(props[p]) + def main(): # Commands that need to run multiple objects above multicmd_objects = { 'state' : ['bmcstate', 'chassisstate', 'hoststate'] } @@ -96,26 +116,7 @@ def main(): cmd = multicmd_objects[cmd[0]] for c in cmd: - objinfo = dbus_objects[c] - - bus = objinfo['bus_name'] - obj = objinfo['object_name'] - iface = objinfo['interface_name'] - dbus_obj = dbus_bus.get_object(bus, obj) - - if (objinfo.has_key('property')): - prop = objinfo['property'] - dbus_iface = dbus.Interface(dbus_obj, "org.freedesktop.DBus.Properties") - if objinfo.has_key('value'): - dbus_iface.Set(iface, prop, objinfo['value']) - else: - dbus_prop = dbus_iface.Get(iface, prop) - print '{:<20}: {}'.format(prop, str(dbus_prop)) - else: - dbus_iface = dbus.Interface(dbus_obj, "org.freedesktop.DBus.Properties") - props = dbus_iface.GetAll(iface) - for p in props: - print p + " = " + str(props[p]) + run_one_command(dbus_bus, dbus_objects[c]) if __name__ == "__main__": main() |