summaryrefslogtreecommitdiffstats
path: root/pyhwmon
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2016-08-30 19:51:51 -0400
committerPatrick Williams <patrick@stwcx.xyz>2016-09-06 12:46:19 +0000
commit2fa78fbe8a7cb97d158b98d261c43708a7df0470 (patch)
tree83f778adfdf611340e979700d9fdabd8132bd7f9 /pyhwmon
parentf5110e11ffa71d4168b6cfaefc5ab03b64c4537f (diff)
downloadtalos-skeleton-2fa78fbe8a7cb97d158b98d261c43708a7df0470.tar.gz
talos-skeleton-2fa78fbe8a7cb97d158b98d261c43708a7df0470.zip
hwmon: pep8 fixes
Change-Id: I94fa21938796a694d8bb653b45b7f5379c7e6bc4 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'pyhwmon')
-rw-r--r--pyhwmon/hwmon.py277
1 files changed, 137 insertions, 140 deletions
diff --git a/pyhwmon/hwmon.py b/pyhwmon/hwmon.py
index e7b9f1c..0b6cf5f 100644
--- a/pyhwmon/hwmon.py
+++ b/pyhwmon/hwmon.py
@@ -1,6 +1,5 @@
-#!/usr/bin/python -u
+#!/usr/bin/env python
-import sys
import os
import gobject
import glob
@@ -23,146 +22,144 @@ HWMON_PATH = '/sys/class/hwmon'
## static define which interface each property is under
## need a better way that is not slow
IFACE_LOOKUP = {
- 'units' : SensorValue.IFACE_NAME,
- 'adjust' : HwmonSensor.IFACE_NAME,
- 'scale' : HwmonSensor.IFACE_NAME,
- 'offset' : HwmonSensor.IFACE_NAME,
- 'critical_upper' : SensorThresholds.IFACE_NAME,
- 'warning_upper' : SensorThresholds.IFACE_NAME,
- 'critical_lower' : SensorThresholds.IFACE_NAME,
- 'warning_lower' : SensorThresholds.IFACE_NAME,
- 'emergency_enabled' : SensorThresholds.IFACE_NAME,
+ 'units': SensorValue.IFACE_NAME,
+ 'adjust': HwmonSensor.IFACE_NAME,
+ 'scale': HwmonSensor.IFACE_NAME,
+ 'offset': HwmonSensor.IFACE_NAME,
+ 'critical_upper': SensorThresholds.IFACE_NAME,
+ 'warning_upper': SensorThresholds.IFACE_NAME,
+ 'critical_lower': SensorThresholds.IFACE_NAME,
+ 'warning_lower': SensorThresholds.IFACE_NAME,
+ 'emergency_enabled': SensorThresholds.IFACE_NAME,
}
+
class Hwmons():
- def __init__(self,bus):
- self.sensors = { }
- self.hwmon_root = { }
- self.scanDirectory()
- gobject.timeout_add(DIR_POLL_INTERVAL, self.scanDirectory)
-
- def readAttribute(self,filename):
- val = "-1"
- try:
- with open(filename, 'r') as f:
- for line in f:
- val = line.rstrip('\n')
- except (OSError, IOError):
- print "Cannot read attributes:", filename
- return val
-
- def writeAttribute(self,filename,value):
- with open(filename, 'w') as f:
- f.write(str(value)+'\n')
-
-
- def poll(self,objpath,attribute):
- try:
- raw_value = int(self.readAttribute(attribute))
- obj = bus.get_object(SENSOR_BUS,objpath,introspect=False)
- intf = dbus.Interface(obj,HwmonSensor.IFACE_NAME)
- rtn = intf.setByPoll(raw_value)
- if (rtn[0] == True):
- self.writeAttribute(attribute,rtn[1])
- except:
- print "HWMON: Attibute no longer exists: "+attribute
- self.sensors.pop(objpath,None)
- return False
-
-
- return True
-
-
- def addObject(self,dpath,hwmon_path,hwmon):
- objsuf = hwmon['object_path']
- objpath = SENSOR_PATH+'/'+objsuf
-
- if (self.sensors.has_key(objpath) == False):
- print "HWMON add: "+objpath+" : "+hwmon_path
-
- ## register object with sensor manager
- obj = bus.get_object(SENSOR_BUS,SENSOR_PATH,introspect=False)
- intf = dbus.Interface(obj,SENSOR_BUS)
- intf.register("HwmonSensor",objpath)
-
- ## set some properties in dbus object
- obj = bus.get_object(SENSOR_BUS,objpath,introspect=False)
- intf = dbus.Interface(obj,dbus.PROPERTIES_IFACE)
- intf.Set(HwmonSensor.IFACE_NAME,'filename',hwmon_path)
-
- ## check if one of thresholds is defined to know
- ## whether to enable thresholds or not
- if (hwmon.has_key('critical_upper')):
- intf.Set(SensorThresholds.IFACE_NAME,'thresholds_enabled',True)
-
- for prop in hwmon.keys():
- if (IFACE_LOOKUP.has_key(prop)):
- intf.Set(IFACE_LOOKUP[prop],prop,hwmon[prop])
- print "Setting: "+prop+" = "+str(hwmon[prop])
-
- self.sensors[objpath]=True
- self.hwmon_root[dpath].append(objpath)
- gobject.timeout_add(hwmon['poll_interval'],self.poll,objpath,hwmon_path)
-
- def scanDirectory(self):
- devices = os.listdir(HWMON_PATH)
- found_hwmon = {}
- regx = re.compile('([a-z]+)\d+\_')
- for d in devices:
- dpath = HWMON_PATH+'/'+d+'/'
- found_hwmon[dpath] = True
- if (self.hwmon_root.has_key(dpath) == False):
- self.hwmon_root[dpath] = []
- ## the instance name is a soft link
- instance_name = os.path.realpath(dpath+'device').split('/').pop()
-
-
- if (System.HWMON_CONFIG.has_key(instance_name)):
- hwmon = System.HWMON_CONFIG[instance_name]
-
- if (hwmon.has_key('labels')):
- label_files = glob.glob(dpath+'/*_label')
- for f in label_files:
- label_key = self.readAttribute(f)
- if (hwmon['labels'].has_key(label_key)):
- namef = f.replace('_label','_input')
- self.addObject(dpath,namef,hwmon['labels'][label_key])
- else:
- pass
- #print "WARNING - hwmon: label ("+label_key+") not found in lookup: "+f
-
- if hwmon.has_key('names'):
- for attribute in hwmon['names'].keys():
- self.addObject(dpath,dpath+attribute,hwmon['names'][attribute])
-
- else:
- print "WARNING - hwmon: Unhandled hwmon: "+dpath
-
-
- for k in self.hwmon_root.keys():
- if (found_hwmon.has_key(k) == False):
- ## need to remove all objects associated with this path
- print "Removing: "+k
- for objpath in self.hwmon_root[k]:
- if (self.sensors.has_key(objpath) == True):
- print "HWMON remove: "+objpath
- self.sensors.pop(objpath,None)
- obj = bus.get_object(SENSOR_BUS,SENSOR_PATH,introspect=False)
- intf = dbus.Interface(obj,SENSOR_BUS)
- intf.delete(objpath)
-
- self.hwmon_root.pop(k,None)
-
- return True
-
-
-if __name__ == '__main__':
-
- dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
- bus = get_dbus()
- root_sensor = Hwmons(bus)
- mainloop = gobject.MainLoop()
+ def __init__(self, bus):
+ self.sensors = {}
+ self.hwmon_root = {}
+ self.scanDirectory()
+ gobject.timeout_add(DIR_POLL_INTERVAL, self.scanDirectory)
+
+ def readAttribute(self, filename):
+ val = "-1"
+ try:
+ with open(filename, 'r') as f:
+ for line in f:
+ val = line.rstrip('\n')
+ except (OSError, IOError):
+ print "Cannot read attributes:", filename
+ return val
+
+ def writeAttribute(self, filename, value):
+ with open(filename, 'w') as f:
+ f.write(str(value)+'\n')
+
+ def poll(self, objpath, attribute):
+ try:
+ raw_value = int(self.readAttribute(attribute))
+ obj = bus.get_object(SENSOR_BUS, objpath, introspect=False)
+ intf = dbus.Interface(obj, HwmonSensor.IFACE_NAME)
+ rtn = intf.setByPoll(raw_value)
+ if rtn[0]:
+ self.writeAttribute(attribute, rtn[1])
+ except:
+ print "HWMON: Attibute no longer exists: "+attribute
+ self.sensors.pop(objpath, None)
+ return False
+
+ return True
+
+ def addObject(self, dpath, hwmon_path, hwmon):
+ objsuf = hwmon['object_path']
+ objpath = SENSOR_PATH+'/'+objsuf
+
+ if objpath not in self.sensors:
+ print "HWMON add: "+objpath+" : "+hwmon_path
+
+ ## register object with sensor manager
+ obj = bus.get_object(SENSOR_BUS, SENSOR_PATH, introspect=False)
+ intf = dbus.Interface(obj, SENSOR_BUS)
+ intf.register("HwmonSensor", objpath)
+
+ ## set some properties in dbus object
+ obj = bus.get_object(SENSOR_BUS, objpath, introspect=False)
+ intf = dbus.Interface(obj, dbus.PROPERTIES_IFACE)
+ intf.Set(HwmonSensor.IFACE_NAME, 'filename', hwmon_path)
+
+ ## check if one of thresholds is defined to know
+ ## whether to enable thresholds or not
+ if 'critical_upper' in hwmon:
+ intf.Set(
+ SensorThresholds.IFACE_NAME, 'thresholds_enabled', True)
+
+ for prop in hwmon.keys():
+ if prop in IFACE_LOOKUP:
+ intf.Set(IFACE_LOOKUP[prop], prop, hwmon[prop])
+ print "Setting: "+prop+" = "+str(hwmon[prop])
+
+ self.sensors[objpath] = True
+ self.hwmon_root[dpath].append(objpath)
+ gobject.timeout_add(
+ hwmon['poll_interval'], self.poll, objpath, hwmon_path)
+
+ def scanDirectory(self):
+ devices = os.listdir(HWMON_PATH)
+ found_hwmon = {}
+ regx = re.compile('([a-z]+)\d+\_')
+ for d in devices:
+ dpath = HWMON_PATH+'/'+d+'/'
+ found_hwmon[dpath] = True
+ if dpath not in self.hwmon_root:
+ self.hwmon_root[dpath] = []
+ ## the instance name is a soft link
+ instance_name = os.path.realpath(dpath+'device').split('/').pop()
+
+ if instance_name in System.HWMON_CONFIG:
+ hwmon = System.HWMON_CONFIG[instance_name]
+
+ if 'labels' in hwmon:
+ label_files = glob.glob(dpath+'/*_label')
+ for f in label_files:
+ label_key = self.readAttribute(f)
+ if label_key in hwmon['labels']:
+ namef = f.replace('_label', '_input')
+ self.addObject(
+ dpath, namef, hwmon['labels'][label_key])
+ else:
+ pass
+
+ if 'names' in hwmon:
+ for attribute in hwmon['names'].keys():
+ self.addObject(
+ dpath, dpath+attribute, hwmon['names'][attribute])
+
+ else:
+ print "WARNING - hwmon: Unhandled hwmon: "+dpath
+
+ for k in self.hwmon_root.keys():
+ if k not in found_hwmon:
+ ## need to remove all objects associated with this path
+ print "Removing: "+k
+ for objpath in self.hwmon_root[k]:
+ if objpath in self.sensors:
+ print "HWMON remove: "+objpath
+ self.sensors.pop(objpath, None)
+ obj = bus.get_object(
+ SENSOR_BUS, SENSOR_PATH, introspect=False)
+ intf = dbus.Interface(obj, SENSOR_BUS)
+ intf.delete(objpath)
+
+ self.hwmon_root.pop(k, None)
+
+ return True
- print "Starting HWMON sensors"
- mainloop.run()
+if __name__ == '__main__':
+ dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+ bus = get_dbus()
+ root_sensor = Hwmons(bus)
+ mainloop = gobject.MainLoop()
+
+ print "Starting HWMON sensors"
+ mainloop.run()
OpenPOWER on IntegriCloud