From 3d0ad679eea495c7430c365ffbc0f4e367b216f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxi=20Quo=C3=9F?= Date: Sat, 28 Jan 2023 13:57:46 +0100 Subject: [PATCH] improve ShutdownDevice func --- backend/networking/shutdown.go | 19 ++++++++++++------- backend/networking/wake.go | 2 +- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/backend/networking/shutdown.go b/backend/networking/shutdown.go index 50dd599b..d238b966 100644 --- a/backend/networking/shutdown.go +++ b/backend/networking/shutdown.go @@ -17,12 +17,17 @@ func ShutdownDevice(device *models.Record) error { } } - // we wait 1 minute for the device to come up - // after that, we check the state - time.Sleep(1 * time.Minute) - isOnline := PingDevice(device) - if isOnline { - return errors.New("device not offline after 1 min") + // check state every second for 2 min + start := time.Now() + for { + time.Sleep(1 * time.Second) + isOnline := PingDevice(device) + if !isOnline { + return nil + } + if time.Since(start) >= 2*time.Minute { + break + } } - return nil + return errors.New("device not offline after 2 min") } diff --git a/backend/networking/wake.go b/backend/networking/wake.go index b9524f4d..69799fd3 100644 --- a/backend/networking/wake.go +++ b/backend/networking/wake.go @@ -25,5 +25,5 @@ func WakeDevice(device *models.Record) error { break } } - return errors.New("device not online after 1 min") + return errors.New("device not online after 2 min") }