blob: 375eb2ad26b72012656b23fe5d3238b4e474bb9b [file] [log] [blame]
Norman James90baede2015-09-02 20:32:49 -05001#!/usr/bin/env python
2
3import sys
4import subprocess
Norman James90baede2015-09-02 20:32:49 -05005import dbus
Norman James5d78b4d2015-09-05 13:34:34 -05006from gi.repository import GObject
Norman James90baede2015-09-02 20:32:49 -05007import dbus.service
8import dbus.mainloop.glib
Norman James90baede2015-09-02 20:32:49 -05009
10if (len(sys.argv) < 2):
11 print "Usage: ipmi_bt.py [system name]"
12 exit(1)
13
14System = __import__(sys.argv[1])
15import Openbmc
16
17DBUS_NAME = 'org.openbmc.control.IpmiBt'
18OBJ_NAME = '/org/openbmc/control/IpmiBt'
19
20class IpmiBt(dbus.service.Object):
21 def __init__(self,bus,name):
22 dbus.service.Object.__init__(self,bus,name)
23
24 @dbus.service.signal(DBUS_NAME)
25 def UpdateFru(self, iid, message):
26 pass
27
28 @dbus.service.signal(DBUS_NAME)
29 def UpdateSensor(self, iid, message):
30 pass
31
32 @dbus.service.method(DBUS_NAME)
33 def emitUpdateFru(self,ipmi_id,mfg):
34 data = {
35 'manufacturer' : mfg
36 }
37 self.UpdateFru(ipmi_id,data)
38 return 'Signal emitted'
39
40 @dbus.service.method(DBUS_NAME)
41 def emitUpdateSensor(self,ipmi_id,data):
42 self.UpdateSensor(ipmi_id,int(data))
43 print "update sensor emitted"
44 return 'Signal emitted'
45
46 def getSensor(self,ipmi_id):
47 obj = bus.get_object('org.openbmc.managers.IpmiTranslator',
48 '/org/openbmc/managers/IpmiTranslator/Barreleye')
49 intf = dbus.Interface(obj, 'org.openbmc.managers.IpmiTranslator' )
50 return intf.getSensor(ipmi_id)
51
52
53if __name__ == '__main__':
54
55 cmd = sys.argv[2]
56 ipmi_id = int(sys.argv[3])
57 if (len(sys.argv)>4):
58 data = sys.argv[4]
59
60 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
61 bus = dbus.SessionBus()
62 name = dbus.service.BusName(DBUS_NAME,bus)
63 obj = IpmiBt(bus,OBJ_NAME)
Norman James5d78b4d2015-09-05 13:34:34 -050064 mainloop = GObject.MainLoop()
Norman James90baede2015-09-02 20:32:49 -050065
66 if (cmd == 'updatefru'):
67 obj.emitUpdateFru(ipmi_id,data)
68 elif (cmd == 'setsensor'):
69 obj.emitUpdateSensor(ipmi_id,data)
70 elif (cmd == 'getsensor'):
71 print obj.getSensor(ipmi_id)
72
73
74 #mainloop.run()
75