From d6e88016844886c7691e379bd0bafdf16fe6520f Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Fri, 9 Jul 2021 10:13:00 +0200 Subject: [PATCH] maj set timeout --- scripts/zephir/set_timeout_servers_group.py | 85 +++++++++++++++++---- 1 file changed, 72 insertions(+), 13 deletions(-) diff --git a/scripts/zephir/set_timeout_servers_group.py b/scripts/zephir/set_timeout_servers_group.py index 4d48bd3..d620058 100644 --- a/scripts/zephir/set_timeout_servers_group.py +++ b/scripts/zephir/set_timeout_servers_group.py @@ -6,6 +6,7 @@ from pyeole.ihm import print_line from pyeole.ansiprint import print_orange, print_red from creole.client import CreoleClient from collections import OrderedDict +from zephir.backend.lib_backend import CxPool try: @@ -69,20 +70,23 @@ def main(): print('Liste des groupes :') for grp_id, group_infos in groups.items(): print(' - ' + str(grp_id) + ' : ' + group_infos[0]) + print( ' - N : Créer un nouveau groupe') while group_id is None: tmp_group_id = flushed_input("Numéro du groupe : ") - try: - group_id = int(tmp_group_id) - except Exception as err: - print(err) - continue - if not group_id in groups: - print_red('Groupe inconnu') - group_id = None - elif not group_id in groups: - print_red('Le groupe "{}" est inconnu'.format(group_id)) - sys.exit(1) - liste_serveurs = groups[group_id][1] + if tmp_group_id == 'N': + group_id = 'N' + liste_serveurs = make_group() + else: + try: + group_id = int(tmp_group_id) + except Exception as err: + print(err) + continue + if not group_id in groups: + print_red('Groupe inconnu') + group_id = None + sys.exit(1) + liste_serveurs = groups[group_id][1] if polling is None : polling = flushed_input("Durée du polling (en min) : ") @@ -90,9 +94,64 @@ def main(): ret = proxy.serveurs.groupe_params(liste_serveurs,{'timeout': str(int(polling)*60)}) # on affiche les erreurs si nécessaire if ret[1]: - if ret[1] != "ok": + if ret[1] != "OK": print_orange('Erreur : ' + str(ret[1])) + sys.exit(1) + rint('Polling mis à jour sur les serveurs {}'.format(liste_serveurs)) +def make_group(): + cx_pool = CxPool() + cu = cx_pool.create() + cu.execute("""select libelle,id from modules""") + infos = {} + variante_infos = {} + filename = 'exportation' + 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)] + filename += '-' + version + 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)] + filename += '-' + module + 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_all = idx + 1 + print('{}: toutes les variantes'.format(idx_all)) + idx = input('> ') + if idx == idx_all: + variantes = variante_infos.values() + else: + filename += '-' + variantes[idx] + variantes = [variante_infos[variantes[idx]]] + print + for variante in variantes: + cu.execute('select id,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[3])) + server_infos.append(server[0]) + return server_infos def get_pwd(addr, port): """lecture d'un login/passwd pour l'application zephir