\begin{frame}
 \frametitle{Écrire en couleur}
 \begin{itemize}
  \item from pyeole.ansiprint import *
  \item print\_red
  \item print\_green
  \item print\_orange
  \item ...
  \item print\_title
 \end{itemize}
\end{frame}

\begin{frame}
 \frametitle{Question}
 \begin{itemize}
  \item from pyeole.ihm import question\_ouinon
  \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 from pyeole.service import *
  \item manage\_service :
  \begin{itemize}
   \item action : start|stop|restart|status,
   \item service : nom du service,
   \item container : nom du conteneur (défaut root).
  \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 from pyeole.process import *
  \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 from pyeole.process import *
%  \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}

%FIXME
\begin{frame}
 \frametitle{Gestion des locks}
 \begin{itemize}
  \item from pyeole.lock import *
  \item acquire : ajout d'un lock
  \item release : supprimer un lock
  \item is\_locked : vérifier la présence d'un fichier lock
 \end{itemize}
\end{frame}

\begin{frame}
 \frametitle{Pratique}
 \begin{itemize}
  \item ajouter, vérifier et supprimer un lock.
 \end{itemize}
\end{frame}

\begin{frame}
 \frametitle{Lire valeur du dictionnaire}
 \begin{itemize}
  \item Via creoled :
  \begin{itemize}
   \item from creole.client import CreoleClient
   \item client = CreoleClient()
   \item client.get\_creole(variable)
  \end{itemize}
  \item en chargeant les dictionnaires :
  \begin{itemize}
   \item from creole.loader import creole\_loader
   \item config = creole\_loader()
   \item config.creole.famille.variable
   \item config.creole.famille.master.slave
  \end{itemize}
 \end{itemize}
\end{frame}

\begin{frame}
 \frametitle{Modifier valeur du dictionnaire}
 \begin{itemize}
  \item from creole.loader import creole\_loader, config\_save\_values
  \item config = creole\_loader(rw=True)
  \item config.creole.famille.variable = value
  \item config.creole.famille.master.master.append(value)
  \item config.creole.famille.master.slave[-1] = value
  \item config\_save\_values(config)
 \end{itemize}
\end{frame}

\begin{frame}
 \frametitle{Pratique}
 \begin{itemize}
  \item Afficher la valeur de la variable adresse\_ip\_eth0 ;
  \item afficher la valeur de la variable netmask\_ssh\_eth0.
 \end{itemize}
\end{frame}

%\begin{frame}
% \frametitle{Valeur du dictionnaire conteneur}
% \begin{itemize}
%  \item from creole.eosfunc import *
%  \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}