Separated function for assembling SMS and the main program
This commit is contained in:
parent
1745ad0be4
commit
6334bbda32
@ -4,42 +4,49 @@ import logging
|
||||
import os
|
||||
from pydbus import SystemBus
|
||||
from gi.repository import GLib
|
||||
from datetime import datetime
|
||||
import sms_functions
|
||||
|
||||
def assemble_sms():
|
||||
since_date = datetime.fromtimestamp(int(os.environ.get('LASTSTATECHANGE')))
|
||||
|
||||
str_list = []
|
||||
str_list.append("Icinga {}\n".format(os.environ.get('NOTIFICATIONTYPE')))
|
||||
str_list.append("{} is {} [{}]\n".format(os.environ.get('HOSTALIAS'), os.environ.get('HOSTSTATE'), os.environ.get('HOSTADDRESS')))
|
||||
str_list.append("since {}\n".format(os.environ.get('LASTSTATECHANGE')))
|
||||
str_list.append("since {}\n".format(since_date.strftime('%Y-%m-%dT%H:%M:%S')))
|
||||
str_list.append("Comment: [{}] {}".format(os.environ.get('NOTIFICATIONAUTHORNAME'), os.environ.get('NOTIFICATIONCOMMENT')))
|
||||
return ''.join(str_list)
|
||||
|
||||
# Setup logging
|
||||
logfile = "/opt/sms/sms.log"
|
||||
FORMAT = '%(asctime)-15s %(message)s'
|
||||
logging.basicConfig(format=FORMAT,filename=logfile,level=10)
|
||||
logger = logging.getLogger('observiumsms')
|
||||
def main():
|
||||
# Setup logging
|
||||
logfile = "/opt/sms/sms.log"
|
||||
FORMAT = '%(asctime)-15s %(message)s'
|
||||
logging.basicConfig(format=FORMAT,filename=logfile,level=10)
|
||||
logger = logging.getLogger('observiumsms')
|
||||
|
||||
# check param
|
||||
smsrcpt = os.environ.get('USERMOBILE')
|
||||
if not smsrcpt:
|
||||
logger.error('No SMS number given')
|
||||
raise Exception('No SMS number given for message')
|
||||
|
||||
# Assemble SMS
|
||||
smsstring = assemble_sms()
|
||||
logger.info("Sending SMS: %s", smsstring)
|
||||
|
||||
success = False
|
||||
retries = 0
|
||||
max_retries = 3
|
||||
|
||||
while not success and retries < max_retries:
|
||||
retries += 1
|
||||
try:
|
||||
# Contact ModemManager, unlock SIM and send SMS to emergency numbers
|
||||
sms_functions.send_sms([ smsrcpt ], smsstring)
|
||||
except sms_functions.ModemManagerError as err:
|
||||
logger.error('Error when sending SMS: {0}'.format(e.value))
|
||||
else:
|
||||
success = True
|
||||
|
||||
# check param
|
||||
smsrcpt = os.environ.get('USERMOBILE')
|
||||
if not smsrcpt:
|
||||
logger.error('No SMS number given')
|
||||
raise Exception('No SMS number given for message')
|
||||
|
||||
# Assemble SMS
|
||||
smsstring = assemble_sms()
|
||||
logger.info("Sending SMS: %s", smsstring)
|
||||
|
||||
success = False
|
||||
retries = 0
|
||||
max_retries = 3
|
||||
|
||||
while not success and retries < max_retries:
|
||||
retries += 1
|
||||
try:
|
||||
# Contact ModemManager, unlock SIM and send SMS to emergency numbers
|
||||
sms_functions.send_sms([ smsrcpt ], smsstring)
|
||||
except sms_functions.ModemManagerError as err:
|
||||
logger.error('Error when sending SMS: {0}'.format(e.value))
|
||||
else:
|
||||
success = True
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
Loading…
Reference in New Issue
Block a user