37 lines
896 B
Python
Executable File
37 lines
896 B
Python
Executable File
#!/usr/bin/python3
|
|
|
|
import logging
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
import shlex
|
|
from icinga_host_notify import assemble_sms
|
|
import sms_functions
|
|
|
|
def main():
|
|
sms_msg = assemble_sms()
|
|
sms_number = os.environ.get('USERMOBILE')
|
|
# logger.info("Remote - Sending SMS to %s: %s", sms_number, sms_msg)
|
|
|
|
hostname = sys.argv[1]
|
|
|
|
success = False
|
|
retries = 0
|
|
max_retries = 3
|
|
|
|
while not success and retries < max_retries:
|
|
retries += 1
|
|
try:
|
|
# Escape message and number for remote shell
|
|
sms_msg = shlex.quote(sms_msg)
|
|
sms_number = shlex.quote(sms_number)
|
|
# Contact remote host
|
|
subprocess.run([ '/usr/bin/ssh', hostname, '/opt/sms/send_sms.py', sms_msg, sms_number ], check=True)
|
|
except:
|
|
raise
|
|
else:
|
|
success = True
|
|
|
|
if __name__ == "__main__":
|
|
main()
|