Projet

Général

Profil

majInfoZephir.py

Forcer la mise à jour des infos Zéphir de tous les serveurs dans la base ARV - Fabrice Barconnière, 15/01/2015 16:06

Télécharger (2,41 ko)

 
1
#!/usr/bin/python
2
# -*- coding: UTF-8 -*-
3
# Karim Ayari
4
# DSI - Rectorat de Lyon
5
# Met à jour les info serveurs Zéphir (id et version) dans arv
6

    
7
from arv.config import amon_module_list, sphynx_module_list
8
from arv.lib.logger import logger
9
from arv.lib.usezephir import Zephir
10
from arv.db.node import get_nodes
11
from arv.db.initialize import initialize_database, commit_database
12
from getpass import getpass
13
from commands import getstatusoutput
14

    
15
### Initialisation de la base arv
16
initialize_database(create=False)
17
###
18

    
19
### Connexion à Zéphir
20
user=raw_input("Nom d'utilisateur Zéphir : ")
21
password=getpass("Mot de passe Zéphir pour l'utilisateur "+user+": ")
22
zephir = Zephir(user=user, password=password)
23
###
24

    
25

    
26
for node in get_nodes():
27
    if zephir != None:
28
        uai=node.uai
29
        name=node.name
30
        id_zephir=node.id_zephir
31
        server = zephir.get_etab_server(uai, name, id_zephir)
32
        if server:
33
            if id_zephir is not None:
34
                print("Update uai and name from Zéphir")
35
                logger.debug("Update uai and name from Zéphir")
36
                uai = server['rne']
37
                libelle = server['libelle']
38
                if type(uai) == unicode:
39
                    node.uai = str(unicode.encode(uai, "utf-8")).decode('utf-8')
40
                else:
41
                    node.uai = uai
42
                if type(libelle) == unicode:
43
                    node.name = str(unicode.encode(libelle, 'utf-8')).decode('utf-8')
44
                else:
45
                    node.name = libelle
46
            else:
47
                 print("Fill id_zephir and eole_version")
48
                 logger.debug("Fill id_zephir and eole_version")
49
                 node.id_zephir = int(server['id'])
50
                 module_eole_version = zephir.dict_eole_version(amon_module_list + sphynx_module_list)
51
                 node.eole_version = module_eole_version[server['module_actuel']]
52
                 if type(node.eole_version) == unicode:
53
                     node.eole_version = str(unicode.encode(node.eole_version, 'utf-8')).decode('utf-8')
54
        else:
55
            print("Node does not exist in Zéphir")
56
            logger.debug("Node does not exist in Zéphir")
57
    else:
58
        print("No Zéphir connection")
59
        logger.debug("No Zéphir connection")
60

    
61
#enregistrement des modifications et redémarrage d'ARV
62
print "enregistrement et redémarrage d'ARV..."
63
commit_database()
64
ret,val=getstatusoutput("/etc/init.d/arv restart")
65
###