Scénario #29758
script d'affichage ou d'export d'infos serveurs zephir
100%
Sous-tâches
Révisions associées
ajout du script liste_serveur_zephir (ref #29758)
pouvoir choisir le nom du fichier a exporter dans liste_serveur_zephir (ref #29758)
Historique
#1 Mis à jour par Thierry Bertrand il y a environ 4 ans
Sur Zephir, lorsqu'on se trouve sur la page d'état d'un serveur, on peut voir l'information "adresse IP du serveur ayant contacté zephir dernièrement"
Cette information est stockée en bdd sous serveurs.ip_publique
Il faudrait créer un script exécutable sous zephir permettant de lister et/ou d'exporter une liste d'adresse IP de serveurs correspondant à une version d'eole donnée, un module donné, une variante donnée.
Par exemple :
saisissez votre login
saisissez votre mdp
=> liste des versions supportées par le zephir
choisissez votre version
=> liste des modules dans cette version
choisissez votre module
=> liste des variantes dans ce module
choisissez votre variante
=> affiche ip - nom -rne des serveurs concernés
voulez vous exporter ?
oui
=> fichier de valeurs séparées par :
#2 Mis à jour par Emmanuel GARETTE il y a environ 4 ans
from zephir.backend.lib_backend import CxPool cx_pool = CxPool() cu = cx_pool.create() cu.execute("""select libelle,id from modules""") infos = {} variante_infos = {} for module_name in cu.fetchall(): module, version = module_name[0].rsplit('-', 1) infos.setdefault(version, {})[module] = module_name[1] versions = infos.keys() versions.sort() print('Choix de la version :') for idx, version in enumerate(versions): print('{}: {}'.format(idx, version)) idx = input('> ') version = versions[int(idx)] print print('Choix du module :') modules = infos[version].keys() modules.sort() for idx, module in enumerate(modules): print('{}: {}'.format(idx, module)) idx = input('> ') module = modules[int(idx)] print cu.execute("select libelle,id from variantes where module = " + str(infos[version][module])) for variante_obj in cu.fetchall(): variante_infos[variante_obj[0]] = variante_obj[1] print('Choix de la variante :') variantes = variante_infos.keys() variantes.sort() for idx, variante in enumerate(variantes): print('{}: {}'.format(idx, variante)) idx = input('> ') variante = variante_infos[variantes[idx]] print cu.execute('select ip_publique,rne,libelle from serveurs where variante=' + str(variante)) print("Liste des serveurs : ") for server in cu.fetchall(): print('{} - {} - {}'.format(server[0], server[1], server[2]))
#3 Mis à jour par Emmanuel GARETTE il y a environ 4 ans
Version avec l'exportation :
from zephir.backend.lib_backend import CxPool cx_pool = CxPool() cu = cx_pool.create() cu.execute("""select libelle,id from modules""") infos = {} variante_infos = {} server_infos = [] for module_name in cu.fetchall(): module, version = module_name[0].rsplit('-', 1) infos.setdefault(version, {})[module] = module_name[1] versions = infos.keys() versions.sort() print('Choix de la version :') for idx, version in enumerate(versions): print('{}: {}'.format(idx, version)) idx = input('> ') version = versions[int(idx)] print print('Choix du module :') modules = infos[version].keys() modules.sort() for idx, module in enumerate(modules): print('{}: {}'.format(idx, module)) idx = input('> ') module = modules[int(idx)] print cu.execute("select libelle,id from variantes where module = " + str(infos[version][module])) for variante_obj in cu.fetchall(): variante_infos[variante_obj[0]] = variante_obj[1] print('Choix de la variante :') variantes = variante_infos.keys() variantes.sort() for idx, variante in enumerate(variantes): print('{}: {}'.format(idx, variante)) idx = input('> ') variante = variante_infos[variantes[idx]] print cu.execute('select ip_publique,rne,libelle from serveurs where variante=' + str(variante)) print("Liste des serveurs : ") for server in cu.fetchall(): print('{} - {} - {}'.format(server[0], server[1], server[2])) server_infos.append((server[0], server[1], server[2])) if server_infos: print print("Voulez l'exporter sous forme de CSV ?") print('0: oui') print('1: non') idx = input('> ') if idx == 0: with open('exportation.csv', 'w') as fh: fh.write('ip;rne;nom') for server_info in server_infos: ip, rne, nom = server_info if ip is None: ip = '' fh.write("{};{};{}\n".format(ip, rne, nom)) print('Exporter dans le fichier exportation.csv')
#4 Mis à jour par Thierry Bertrand il y a environ 4 ans
2 ajouts :
pourrait-on choisir le nom du fichier d'export en mettant une val par defaut à exportation-{version}-{module}-{variante} ?
pouvoir choisir toutes les variantes d'un module donné ?
#5 Mis à jour par Thierry Bertrand il y a environ 4 ans
- Echéance mis à 10/04/2020
- Version cible mis à MTES - Prestation Cadoles - 13 - 15
- Début mis à 23/03/2020
- Points de scénarios mis à 1.0
#6 Mis à jour par Thierry Bertrand il y a environ 4 ans
- Release changé de MTES à EOLE 2.7.1
#7 Mis à jour par Thierry Bertrand il y a environ 4 ans
L'information d'id du serveur est aussi une donnée intéressante. Il faudrait l'ajouter.
Pour un traitement automatisé des fichiers généralisés, il serait bien de ne pas inclure la 1ere ligne des fichiers.
#8 Mis à jour par Thierry Bertrand il y a plus de 3 ans
- Statut changé de Nouveau à Terminé (Sprint)