From 9b255bbb30ad473d0b1a3048938d3094baa601a6 Mon Sep 17 00:00:00 2001 From: Gabriel Detraz Date: Thu, 27 Aug 2015 15:59:25 +0200 Subject: [PATCH] Script d'alerte sms en cas de ro sur zbee (cron puis rabitmq) --- surveillance/alert_ro.py | 51 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100755 surveillance/alert_ro.py diff --git a/surveillance/alert_ro.py b/surveillance/alert_ro.py new file mode 100755 index 00000000..df240a9b --- /dev/null +++ b/surveillance/alert_ro.py @@ -0,0 +1,51 @@ +#!/bin/bash /usr/scripts/python.sh +# -*- coding: utf-8 -*- +""" +Script qui alerte dès qu'une partition se monte en ro + +Gabriel Détraz +Licence GPL2 +""" + +import subprocess + +from lc_ldap import shortcuts +from gestion import secrets_new as secrets +import pika +import json + +ldap = shortcuts.lc_ldap_readonly() + +nounous_actif = ldap.search(u'(&(droits=nounou)(droits=cableur))',mode='rw') + +list_num = [unicode(noun['tel'][0]) for noun in nounous_actif] + +partoches_ro = [] + +QUEUE_NAME = 'SMS' + +# On controle les partoches +partoches = subprocess.check_output(['mount']) + +for part in partoches.split('\n'): + if '(ro,' in part: + print part + partoches_ro.append(part.split()[2]) + +# On alerte +if partoches_ro: + CREDS = pika.credentials.PlainCredentials('sms', secrets.get('rabbitmq_sms'), True) + + PARAMS = pika.ConnectionParameters(host='rabbitmq.crans.org', + port=5671, credentials=CREDS, ssl=True) + + rabbit_c = pika.BlockingConnection(PARAMS) + ch = rabbit_c.channel() + + ch.queue_declare(QUEUE_NAME) + + for num in list_num: + SMS = {'numero': num, 'sms': 'Des partitions sont en ro sur zbee : ' + str(partoches_ro)} + + ch.basic_publish(exchange='', routing_key=QUEUE_NAME, + body=json.dumps(SMS))