formations/modules_EOLE_envole/tronc-commun-2/20-api.tex

180 lines
4.6 KiB
TeX

\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}