diff --git a/scripts/zephir/set_timeout_servers_group.py b/scripts/zephir/set_timeout_servers_group.py index d620058..19ba84d 100644 --- a/scripts/zephir/set_timeout_servers_group.py +++ b/scripts/zephir/set_timeout_servers_group.py @@ -97,7 +97,7 @@ def main(): if ret[1] != "OK": print_orange('Erreur : ' + str(ret[1])) sys.exit(1) - rint('Polling mis à jour sur les serveurs {}'.format(liste_serveurs)) + print('Polling mis à jour sur les serveurs {}'.format(liste_serveurs)) def make_group(): cx_pool = CxPool() cu = cx_pool.create() diff --git a/scripts/zephir/set_var.py b/scripts/zephir/set_var.py index 4e29823..2753406 100644 --- a/scripts/zephir/set_var.py +++ b/scripts/zephir/set_var.py @@ -76,22 +76,24 @@ 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) - + 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] # on récupère toutes les master/slaves du groupe de serveurs - liste_serveurs = groups[group_id][1] params = convert(proxy.serveurs.get_groupe_vars(liste_serveurs, True)) @@ -107,9 +109,66 @@ def main(): valvar = raw_input("Valeur de la variable (séparateur |): ") ret = proxy.serveurs.set_groupe_var(liste_serveurs, varc, valvar, False) # on affiche les erreurs si nécessaire - if ret[1]: - print_orange('Erreur : ' + str(ret[1])) + if ret[1]: + if ret[1] != "OK": + print_orange('Erreur : ' + str(ret[1])) + sys.exit(1) + print('Variable {} mis à jour sur les serveurs {}'.format(varc, 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