Séparation du fichier de config et multiserver(bis
This commit is contained in:
parent
9ed7d68cd9
commit
46aee7a197
2 changed files with 12 additions and 17 deletions
|
@ -4,6 +4,9 @@
|
||||||
import os
|
import os
|
||||||
|
|
||||||
servers = {
|
servers = {
|
||||||
|
'perso': {
|
||||||
|
'server_cmd' : [ '/home/dstan/passwords/cranspasswords/cranspasswords-server.py'],
|
||||||
|
'user' : 'dstan' },
|
||||||
'debug': {
|
'debug': {
|
||||||
'server_cmd' : ['/usr/bin/ssh', 'localhost', \
|
'server_cmd' : ['/usr/bin/ssh', 'localhost', \
|
||||||
'/home/dstan/crans/cranspasswords/cranspasswords-server.py'],
|
'/home/dstan/crans/cranspasswords/cranspasswords-server.py'],
|
||||||
|
|
|
@ -9,6 +9,7 @@ import tempfile
|
||||||
import os
|
import os
|
||||||
import atexit
|
import atexit
|
||||||
import argparse
|
import argparse
|
||||||
|
import config
|
||||||
|
|
||||||
######
|
######
|
||||||
## GPG Definitions
|
## GPG Definitions
|
||||||
|
@ -26,6 +27,7 @@ VERB = False
|
||||||
CLIPBOARD = False # Par défaut, place-t-on le mdp dans le presse-papier ?
|
CLIPBOARD = False # Par défaut, place-t-on le mdp dans le presse-papier ?
|
||||||
FORCED = False #Mode interactif qui demande confirmation
|
FORCED = False #Mode interactif qui demande confirmation
|
||||||
NROLES = None # Droits à définir sur le fichier en édition
|
NROLES = None # Droits à définir sur le fichier en édition
|
||||||
|
SERVER = None
|
||||||
|
|
||||||
def gpg(command, args = None):
|
def gpg(command, args = None):
|
||||||
"""Lance gpg pour la commande donnée avec les arguments
|
"""Lance gpg pour la commande donnée avec les arguments
|
||||||
|
@ -52,20 +54,11 @@ def gpg(command, args = None):
|
||||||
######
|
######
|
||||||
## Remote commands
|
## Remote commands
|
||||||
|
|
||||||
SERVER_CMD_DEBUG2 = ['/usr/bin/ssh', 'localhost', \
|
|
||||||
'/home/dstan/crans/cranspasswords/cranspasswords-server.py']
|
|
||||||
SERVER_CMD_DEBUG = ['/usr/bin/ssh', 'vo',\
|
|
||||||
'/home/dstan/cranspasswords/cranspasswords-server']
|
|
||||||
SERVER_CMD = ['/usr/bin/ssh', 'vert.adm.crans.org',\
|
|
||||||
'/root/cranspasswords/cranspasswords-server']
|
|
||||||
#USER = 'dstan'
|
|
||||||
USER = os.getenv('USER') # À définir à la main pour les personnes
|
|
||||||
# n'ayant pas le même login sur leur pc
|
|
||||||
|
|
||||||
def ssh(command, arg = None):
|
def ssh(command, arg = None):
|
||||||
"""Lance ssh avec les arguments donnés. Renvoie son entrée
|
"""Lance ssh avec les arguments donnés. Renvoie son entrée
|
||||||
standard et sa sortie standard."""
|
standard et sa sortie standard."""
|
||||||
full_command = list(SERVER_CMD)
|
full_command = list(SERVER['server_cmd'])
|
||||||
full_command.append(command)
|
full_command.append(command)
|
||||||
if arg:
|
if arg:
|
||||||
full_command.append(arg)
|
full_command.append(arg)
|
||||||
|
@ -113,7 +106,7 @@ def rm_file(filename):
|
||||||
def get_my_roles():
|
def get_my_roles():
|
||||||
"""Retoure la liste des rôles perso"""
|
"""Retoure la liste des rôles perso"""
|
||||||
allr = all_roles()
|
allr = all_roles()
|
||||||
return filter(lambda role: USER in allr[role],allr.keys())
|
return filter(lambda role: SERVER['user'] in allr[role],allr.keys())
|
||||||
|
|
||||||
######
|
######
|
||||||
## Local commands
|
## Local commands
|
||||||
|
@ -337,7 +330,7 @@ def update_role(roles=None):
|
||||||
def parse_roles(strroles):
|
def parse_roles(strroles):
|
||||||
if strroles == None: return None
|
if strroles == None: return None
|
||||||
roles = all_roles()
|
roles = all_roles()
|
||||||
my_roles = filter(lambda r: USER in roles[r],roles.keys())
|
my_roles = filter(lambda r: SERVER['user'] in roles[r],roles.keys())
|
||||||
my_roles_w = [ r[:-2] for r in my_roles if r.endswith('-w') ]
|
my_roles_w = [ r[:-2] for r in my_roles if r.endswith('-w') ]
|
||||||
ret = set()
|
ret = set()
|
||||||
writable = False
|
writable = False
|
||||||
|
@ -359,8 +352,8 @@ def parse_roles(strroles):
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
parser = argparse.ArgumentParser(description="trousseau crans")
|
parser = argparse.ArgumentParser(description="trousseau crans")
|
||||||
parser.add_argument('--test',action='store_true',default=False,
|
parser.add_argument('--server',default='default',
|
||||||
help='Utilisation du serveur de test')
|
help='Utilisation d\'un serveur alternatif (test, etc)')
|
||||||
parser.add_argument('-v','--verbose',action='store_true',default=False,
|
parser.add_argument('-v','--verbose',action='store_true',default=False,
|
||||||
help="Mode verbeux")
|
help="Mode verbeux")
|
||||||
parser.add_argument('-c','--clipboard',action='store_true',default=False,
|
parser.add_argument('-c','--clipboard',action='store_true',default=False,
|
||||||
|
@ -401,13 +394,12 @@ if __name__ == "__main__":
|
||||||
help="Nom du fichier à afficher")
|
help="Nom du fichier à afficher")
|
||||||
|
|
||||||
parsed = parser.parse_args(sys.argv[1:])
|
parsed = parser.parse_args(sys.argv[1:])
|
||||||
DEBUG = parsed.test
|
|
||||||
if DEBUG:
|
|
||||||
SERVER_CMD = SERVER_CMD_DEBUG
|
|
||||||
VERB = parsed.verbose
|
VERB = parsed.verbose
|
||||||
|
DEBUG = VERB
|
||||||
CLIPBOARD = parsed.clipboard
|
CLIPBOARD = parsed.clipboard
|
||||||
FORCED = parsed.force
|
FORCED = parsed.force
|
||||||
NROLES = parse_roles(parsed.roles)
|
NROLES = parse_roles(parsed.roles)
|
||||||
|
SERVER = config.servers[parsed.server]
|
||||||
|
|
||||||
if NROLES != False:
|
if NROLES != False:
|
||||||
if parsed.action.func_code.co_argcount == 0:
|
if parsed.action.func_code.co_argcount == 0:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue