51 lines
1.2 KiB
Python
Executable file
51 lines
1.2 KiB
Python
Executable file
#!/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))
|