summaryrefslogtreecommitdiffstats
path: root/pytools
diff options
context:
space:
mode:
authorAndrew Jeffery <andrew@aj.id.au>2017-10-11 18:08:01 +1030
committerAndrew Jeffery <andrew@aj.id.au>2017-10-17 11:45:17 +1030
commite4dcaef2605c87302d5826fc8d34a25ca8613c43 (patch)
tree8504da4c7447f5c5ea731c209ad51a51ce8a505c /pytools
parent554a0e5c82e94dc7fbbe40791872fa89399a171a (diff)
downloadtalos-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/obmcutil41
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()
OpenPOWER on IntegriCloud