Merge pull request #4 from resin-io/RES-1304-investigate-use-of-logfatal-and

Prevent non-fatal errors from closing the supervisor.
This commit is contained in:
Lorenzo Stoakes 2015-10-15 18:43:37 +01:00
commit d90c3f0414
2 changed files with 19 additions and 4 deletions

View File

@ -120,7 +120,12 @@ func inASecond(theFunc func()) {
//RebootHandler Reboots the device using Systemd
func RebootHandler(writer http.ResponseWriter, request *http.Request) {
log.Println("Rebooting")
sendResponse, _ := responseSenders(writer)
sendResponse, sendError := responseSenders(writer)
if systemd.Logind == nil {
sendError(fmt.Errorf("Logind unavailable, cannot reboot."))
return
}
sendResponse("OK", "", http.StatusAccepted)
go inASecond(func() { systemd.Logind.Reboot(false) })
}
@ -129,7 +134,11 @@ func RebootHandler(writer http.ResponseWriter, request *http.Request) {
func ShutdownHandler(writer http.ResponseWriter, request *http.Request) {
log.Println("Shutting down")
sendResponse, _ := responseSenders(writer)
sendResponse, sendError := responseSenders(writer)
if systemd.Logind == nil {
sendError(fmt.Errorf("Logind unavailable, cannot shut down."))
return
}
sendResponse("OK", "", http.StatusAccepted)
go inASecond(func() { systemd.Logind.PowerOff(false) })
}
@ -192,6 +201,12 @@ func VPNControl(writer http.ResponseWriter, request *http.Request) {
sendResponse("Error", err.Error(), http.StatusBadRequest)
return
}
if systemd.Dbus == nil {
sendError(fmt.Errorf("Systemd dbus unavailable, cannot set VPN state."))
return
}
action := systemd.Dbus.StopUnit
actionDescr := "VPN Disable"
if body.Enable {

View File

@ -17,9 +17,9 @@ var (
func init() {
var err error
if Logind, err = login1.New(); err != nil {
log.Fatalf("Failed to connect to host system bus: %s", err)
log.Printf("Failed to connect to host system bus: %s", err)
}
if Dbus, err = dbus.New(); err != nil {
log.Fatalf("Failed to connect to host DBUS: %s", err)
log.Printf("Failed to connect to host DBUS: %s", err)
}
}