Scénario #29758
script d'affichage ou d'export d'infos serveurs zephir
100%
Subtasks
Associated revisions
ajout du script liste_serveur_zephir (ref #29758)
pouvoir choisir le nom du fichier a exporter dans liste_serveur_zephir (ref #29758)
History
#1 Updated by Thierry Bertrand over 3 years ago
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 Updated by Emmanuel GARETTE over 3 years ago
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 Updated by Emmanuel GARETTE over 3 years ago
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 Updated by Thierry Bertrand over 3 years ago
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 Updated by Thierry Bertrand over 3 years ago
- Due date set to 04/10/2020
- Target version set to MTES - Prestation Cadoles - 13 - 15
- Start date set to 03/23/2020
- Story points set to 1.0
#6 Updated by Thierry Bertrand over 3 years ago
- Release changed from MTES to EOLE 2.7.1
#7 Updated by Thierry Bertrand over 3 years ago
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 Updated by Thierry Bertrand about 3 years ago
- Status changed from Nouveau to Terminé (Sprint)