initial commit
This commit is contained in:
65
kvmSensors.py
Normal file
65
kvmSensors.py
Normal file
@@ -0,0 +1,65 @@
|
||||
import subprocess
|
||||
|
||||
def fans(data):
|
||||
if "FAN" in data[0]:
|
||||
fandata = {}
|
||||
fandata["id"] = data[0]
|
||||
fandata["rpm"] = data[1]
|
||||
fandata["status"] = data[3]
|
||||
return fandata
|
||||
|
||||
def voltage(data):
|
||||
if "VOLT" in data[0]:
|
||||
voltdata = {}
|
||||
voltdata["id"] = data[0]
|
||||
voltdata["voltage"] = data[1]
|
||||
voltdata["status"] = data[3]
|
||||
|
||||
return voltdata
|
||||
|
||||
def temp(data):
|
||||
if "TEMP" in data[0]:
|
||||
tempdata = {}
|
||||
tempdata["id"] = data[0]
|
||||
tempdata["temp"] = data[1]
|
||||
tempdata["status"] = data[3]
|
||||
|
||||
return tempdata
|
||||
|
||||
def readSensors():
|
||||
result = subprocess.run(['ipmitool', 'sensor'], stdout=subprocess.PIPE)
|
||||
result = str(result.stdout).replace(" ", "").replace("b'", "").replace("'", "").split("\\n")
|
||||
|
||||
retdata = {}
|
||||
fandata = {}
|
||||
tempdata = {}
|
||||
voltdata = {}
|
||||
fanindex = 0
|
||||
voltindex = 0
|
||||
tempindex = 0
|
||||
|
||||
for sensor in result:
|
||||
data = sensor.split("|")
|
||||
try:
|
||||
if data[1] != "na":
|
||||
if data[1] != "0x0":
|
||||
# print(data)
|
||||
if fans(data) != None:
|
||||
fandata[str(fanindex)] = fans(data)
|
||||
fanindex += 1
|
||||
if voltage(data) != None:
|
||||
voltdata[str(voltindex)] = voltage(data)
|
||||
voltindex += 1
|
||||
if temp(data) != None:
|
||||
tempdata[str(tempindex)] = temp(data)
|
||||
tempindex += 1
|
||||
|
||||
except: # Exception as e: print(e)
|
||||
pass
|
||||
retdata["fans"] = fandata
|
||||
retdata["volt"] = voltdata
|
||||
retdata["temp"] = tempdata
|
||||
return retdata
|
||||
|
||||
if __name__ == "__main__":
|
||||
print(readSensors())
|
||||
Reference in New Issue
Block a user