\section{API EOLE python} \begin{frame}{Plan} \small \tableofcontents[currentsection, hideothersubsections] \end{frame} \begin{frame} \frametitle{Ecrire en couleur} \begin{itemize} \item pyeole.ansiprint \item print\_red \item print\_green \item print\_orange \item ... \item print\_title \end{itemize} \end{frame} \begin{frame} \frametitle{Question} \begin{itemize} \item pyeole.ihm \item question\_ouinon \begin{itemize} \item question : contenu de la question de type oui/non \item default : valeur par défaut (défaut non) \item level : info|warn|err (défaut info) \item return oui ou non \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item print\_orange('couleur orange') \item print\_title('le titre') \item a=question\_ouinon('voulez vous vraiment faire cette action') \end{itemize} \end{frame} \begin{frame} \frametitle{Gestion des services} \begin{itemize} \item pyeole.service \item service\_out|service\_code \begin{itemize} \item service : nom du service \item action : start|stop|restart|status \item container : nom du conteneur (défaut root) \end{itemize} \item service\_code\_no\_container : démarrage d'un service dans tous les conteneurs avec le service \begin{itemize} \item service : nom du service \item action : start|stop|restart|status \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item a=service\_out('ntp', 'stop') \item a=service\_code('smbd', 'stop', 'fichier') \item a=service\_code\_no\_container('apache2', 'restart') \end{itemize} \end{frame} \begin{frame} \frametitle{Execution de commande} \begin{itemize} \item pyeole.process \item system\_code : exécution de commande, stdout et stderr dans la console \item system\_out : rien dans la console \begin{itemize} \item cmd : commande (list) ; \item stdin : valeur de STDIN ; \item container : nom du conteneur (root par défaut) ; \item env : variable d'environnement ; \item *context : ssh ou chroot (True par défaut) ; \item *pty : créé un pseudo terminal (False par défaut). \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Execution de commande} \begin{itemize} \item pyeole.process \item is\_installed \begin{itemize} \item package \item container : (défaut root) \item *context : (défaut True) \end{itemize} \item tcpcheck \begin{itemize} \item ip\_address : adresse IP \item port : port a tester \item timeout : temps d'attente maximum (défaut 1) \end{itemize} \item test\_conteneur : test si un conteneur est démarré \begin{itemize} \item container : nom du conteneur \item *ip\_address : adresse IP du conteneur (défaut None) \end{itemize} \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item a=system\_code(['echo', 'mot']) \item a=system\_out(['echo', 'mot']) \item stdin : a=system\_code('cat', stdin="mot") \item env : a=system\_code('env', env={'mot': 'mot'}) \item container : a=system\_code(['ls', '/etc/samba/'], container='fichier') \item installé : is\_installed('samba-common') \item non installé : is\_installed('samba') \item conteneur : is\_installed('samba', container='fichier') \item test service : tcpcheck('192.0.2.52', '139') \item test\_conteneur('fichier') \end{itemize} \end{frame} \begin{frame} \frametitle{Gestion des locks} \begin{itemize} \item creole.eolelock \item add\_lock : ajout d'un lock \item del\_lock : supprimer un lock \item check\_lock : vérifier la présence d'un fichier lock \begin{itemize} \item lock\_name : nom du fichier lock \end{itemize} \item check\_all\_locks : vérifier la présence des locks systèmes \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item add\_lock('test') \item check\_lock('test') \item del\_lock('test') \end{itemize} \end{frame} \begin{frame} \frametitle{Valeur du dictionnaire} \begin{itemize} \item creole.parsedico \item parse\_dico() : chargement des dictionnaires \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item conf\_eole = parse\_dico() \item print conf\_eole['adresse\_ip\_eth0'] \end{itemize} \end{frame} \begin{frame} \frametitle{Valeur du dictionnaire conteneur} \begin{itemize} \item creole.eosfunc \item load\_conteneur\_var() : chargement des configurations conteneurs \end{itemize} \end{frame} \begin{frame} \frametitle{Pratique} \begin{itemize} \item container\_var = load\_container\_var() \item print container\_var['container\_ip\_fichier'] \end{itemize} \end{frame}