AETHER-686 Reboot when the serial device is not loaded
Also, don't reboot but restart the service when disconnect action failed.
Change-Id: Ia06bc73d0a2643ff8ca8737c7985fbf9825e37de
diff --git a/edge-monitoring/agent_modem/edge-mon-agent.service b/edge-monitoring/agent_modem/edge-mon-agent.service
index 1d6ba22..7fa743d 100644
--- a/edge-monitoring/agent_modem/edge-mon-agent.service
+++ b/edge-monitoring/agent_modem/edge-mon-agent.service
@@ -5,7 +5,7 @@
[Service]
Environment=CONFIG_FILE=/home/pi/aether-monitoring/edge-monitoring/agent_modem/config.json
Type=simple
-ExecStartPre=/bin/sleep 30
+ExecStartPre=/bin/sleep 60
ExecStart=/usr/bin/python3 /home/pi/aether-monitoring/edge-monitoring/agent_modem/edge_monitoring_agent_modem.py
Restart=on-failure
diff --git a/edge-monitoring/agent_modem/edge_monitoring_agent_modem.py b/edge-monitoring/agent_modem/edge_monitoring_agent_modem.py
index bb41560..ad3f59f 100644
--- a/edge-monitoring/agent_modem/edge_monitoring_agent_modem.py
+++ b/edge-monitoring/agent_modem/edge_monitoring_agent_modem.py
@@ -198,7 +198,7 @@
modem.connect()
except serial.serialutil.SerialException as e:
logging.error("Failed to connect the modem for %s", e)
- sys.exit(1)
+ os.system("sudo shutdown -r now")
success = os.system("sudo ip route replace {}/32 via {}".format(
CONF.ping_to, CONF.modem.ip_addr))
@@ -212,7 +212,7 @@
if cp_state is State.error:
logging.error("Modem is in error state.")
- os.system("sudo shutdown -r now")
+ sys.exit(1)
report_status(cp_state, up_state)
time.sleep(CONF.report_interval)