check_modem.py: represent modem state as string, check for more status codes
This commit is contained in:
parent
1f5c87cb36
commit
93757f5f1a
1 changed files with 34 additions and 18 deletions
|
|
@ -4,6 +4,7 @@ import logging
|
|||
import os
|
||||
import sys
|
||||
import time
|
||||
from enum import IntEnum
|
||||
from pydbus import SystemBus
|
||||
from gi.repository import GLib
|
||||
import sms_functions
|
||||
|
|
@ -28,19 +29,20 @@ import sms_functions
|
|||
# * Enumeration of possible modem states.
|
||||
# */
|
||||
# mm_modem_state
|
||||
MM_MODEM_STATE_FAILED = -1
|
||||
MM_MODEM_STATE_UNKNOWN = 0
|
||||
MM_MODEM_STATE_INITIALIZING = 1
|
||||
MM_MODEM_STATE_LOCKED = 2
|
||||
MM_MODEM_STATE_DISABLED = 3
|
||||
MM_MODEM_STATE_DISABLING = 4
|
||||
MM_MODEM_STATE_ENABLING = 5
|
||||
MM_MODEM_STATE_ENABLED = 6
|
||||
MM_MODEM_STATE_SEARCHING = 7
|
||||
MM_MODEM_STATE_REGISTERED = 8
|
||||
MM_MODEM_STATE_DISCONNECTING = 9
|
||||
MM_MODEM_STATE_CONNECTING = 10
|
||||
MM_MODEM_STATE_CONNECTED = 11
|
||||
class MMModemState(IntEnum):
|
||||
FAILED = -1
|
||||
UNKNOWN = 0
|
||||
INITIALIZING = 1
|
||||
LOCKED = 2
|
||||
DISABLED = 3
|
||||
DISABLING = 4
|
||||
ENABLING = 5
|
||||
ENABLED = 6
|
||||
SEARCHING = 7
|
||||
REGISTERED = 8
|
||||
DISCONNECTING = 9
|
||||
CONNECTING = 10
|
||||
CONNECTED = 11
|
||||
|
||||
# Setup logging
|
||||
logfile = "/opt/sms/sms.log"
|
||||
|
|
@ -49,14 +51,28 @@ logging.basicConfig(format=FORMAT,filename=logfile,level=10)
|
|||
logger = logging.getLogger('check_modem')
|
||||
|
||||
if __name__ == "__main__":
|
||||
exit_code = 3 # Unknown (for Nagios)
|
||||
|
||||
modem = sms_functions.unlock_and_enable_modem()
|
||||
time.sleep(2)
|
||||
modem = sms_functions.get_modem()
|
||||
|
||||
status = modem.GetStatus()
|
||||
print(status)
|
||||
status['state_text'] = MMModemState(status['state']).name
|
||||
|
||||
# return code: if registered and signal > 0, return 0
|
||||
if modem.GetStatus()["state"] in [ MM_MODEM_STATE_REGISTERED, MM_MODEM_STATE_CONNECTED ] and modem.SignalQuality[0] > 0 and modem.RegistrationState == 1:
|
||||
exit(0)
|
||||
if modem.GetStatus()["state"] in [ MMModemState.REGISTERED, MMModemState.CONNECTED ] and modem.SignalQuality[0] > 0 and modem.RegistrationState == 1:
|
||||
print("OK: ", end='')
|
||||
exit_code = 0
|
||||
elif modem.GetStatus()["state"] in [ MMModemState.INITIALIZING, MMModemState.ENABLED, MMModemState.SEARCHING, MMModemState.DISCONNECTING ]:
|
||||
print("WARNING: ", end='')
|
||||
exit_code = 1
|
||||
elif modem.GetStatus()["state"] in [ MMModemState.FAILED, MMModemState.LOCKED, MMModemState.DISABLED ]:
|
||||
print("CRITICAL: ", end='')
|
||||
exit_code = 2
|
||||
else:
|
||||
exit(1)
|
||||
print("UNKNOWN: ", end='')
|
||||
exit_code = 3
|
||||
|
||||
print(status)
|
||||
exit(exit_code)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue