1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
class User():
"""docstring for User."""
global _user
global _password
_menu = """Votre identifiant:
"""
_key = None
def __init__(self):
pass
def getUser(self):
return self._user
def setUser(self, user):
logging.disabled = True
logging.info('We processed %s records', user)
self._user = user
def getUser(self):
return self._user
def getPassword(self):
return self._password
def setPassword(self, password):
logging.info('We processed %s record password', password)
self._password = password
def display(self):
self._key = open(os.path.expanduser('~/.ssh/id_rsa.pub')).read()
self.setUser(input(self._menu))
password = getpass(prompt='Mot de passe : ', stream=None)
self.setPassword(password)
logging.info('Save connexion configuration %s ', password)
''' Return key connexion'''
def getkey(self):
return self._key
class Menu:
_fileEnv = None
_user = None
_hosts = None
_db = None
_port = 22
_selection = None
_MenuSelect = {
1: "AddSshKeys",
2: "AddConfigEnv",
3: "ListServerUp",
4: "UpdateYum",
5: "displayEnv",
6: "end"
}
_clientSsh = None
_retry = 3
_delay = 5
_timeout = 3
_menu = """
#####################################################################
- Choisir l'action à effectuer sur :
[1]. Déployer sa clef ssh public sur des serveurs
[2]. Configurer les variables d'environnements
[3]. Lister les serveurs dispo. en base
[4]. Faire la mise à jour de la liste des serveurs
[5]. Afficher les variables d'environnements
[6]. Quitter/Sortir
#####################################################################
"""
_barresplit ='''
#####################################################################\n '''
def __init__(self, user):
self._fileEnv = None
self._user = user
self._db = TinyDB('../data/db.json')
def display(self, prompt=False):
print(u"xxxxxxxxxxxxxx ")
if(prompt):
print("Client en mode prompt ...")
self.prompt()
else:
print("Client avec menu interactif ...")
if (self._hosts == None):
self.choiceFromServer()
else:
print(u'Utilisation des serveurs en mémoire')
self._selection = -1
while self._selection:
print(self._menu)
self._selection = int(input("Choisir une option : "))
if (self._selection >= 0) and (self._selection <= 6):
logging.info(self._MenuSelect[self._selection])
getattr(self, self._MenuSelect[self._selection])()
def prompt(self):
monPrompt().cmdloop() <- ??? comment utiliser l'objet User dans cette Classe ou je n'ai pas la main ? décorateur ?? ou objet Statique ?
....
class CloePrompt(Cmd):
intro = 'Outil de commande cliente ?[command] [option]\n' \
'Liste :\n' \
'servers : Liste des serveurs disponibles\n' \
'addServer [IP] : Ajouter un serveur\n' \
'rmServer [IP] : Effacer un serveur\n' \
'addFileServer : Ajouter une liste de serveur par fichier\n'\
'pingServers : Tester si les serveurs sont up\n' \
'sshClient [IP] : Se connecter en ssh à n client\n' \
'cls : Cls ou Clear screen, efface écran'\
'quit : : Quitter\n'
prompt = '>'
_db = None
_hosts = None
_port = 22
_retry = 3
_delay = 5
_timeout = 3
def __init__(self):
super().__init__()
self._db = DbDao()
print("user {user}".format(user=_user)) <--- Euh Oups marche pas, mais je ne sais pas comment faire, car je veux une instance déjà initialisée dans la classe principale
def do_servers(self, args):
"""servers command. If you provide <option>, it will greet you with it."""
if len(args) == 0:
name = "Vous n'avez pas choisi d'option"
else:
name = args
print("Votre option, %s" % name) |
Partager