added ObjectAdded signal
diff --git a/bin/chassis_control.py b/bin/chassis_control.py
index 0cac579..dc5dee4 100755
--- a/bin/chassis_control.py
+++ b/bin/chassis_control.py
@@ -49,11 +49,16 @@
self.Set(DBUS_NAME,"last_system_state","")
bus.add_signal_receiver(self.power_button_signal_handler,
- dbus_interface = "org.openbmc.Button", signal_name = "ButtonPressed",
+ dbus_interface = "org.openbmc.Button", signal_name = "Released",
path="/org/openbmc/buttons/power0" )
+ bus.add_signal_receiver(self.reset_button_signal_handler,
+ dbus_interface = "org.openbmc.Button", signal_name = "Pressed_Long",
+ path="/org/openbmc/buttons/power0" )
+
bus.add_signal_receiver(self.host_watchdog_signal_handler,
dbus_interface = "org.openbmc.Watchdog", signal_name = "WatchdogError")
bus.add_signal_receiver(self.SystemStateHandler,signal_name = "GotoSystemState")
+ self.ObjectAdded(name,CONTROL_INTF)
def getInterface(self,name):
@@ -114,8 +119,11 @@
in_signature='', out_signature='')
def reboot(self):
print "Rebooting"
- self.Set(DBUS_NAME,"reboot",1)
- intf.softPowerOff()
+ if state == POWER_OFF:
+ self.powerOn();
+ else:
+ self.Set(DBUS_NAME,"reboot",1)
+ intf.softPowerOff()
return None
@dbus.service.method(DBUS_NAME,
@@ -151,9 +159,10 @@
self.powerOn()
elif state == POWER_ON:
self.powerOff();
-
- # TODO: handle long press and reset
+ def reset_button_signal_handler(self):
+ self.reboot();
+
def host_watchdog_signal_handler(self):
print "Watchdog Error, Hard Rebooting"
#self.Set(DBUS_NAME,"reboot",1)