diff --git a/doc/eole-report/presentation/definition.tex b/doc/eole-report/presentation/definition.tex index 4a01cc1..4bbea9f 100644 --- a/doc/eole-report/presentation/definition.tex +++ b/doc/eole-report/presentation/definition.tex @@ -1,3 +1,20 @@ +\begin{frame} + \frametitle{Comparaison entre le noyau de Créole et Tiramisu} + \begin{itemize} + \item \emph{Tiramisu} a pour objectif de + \begin{itemize} + \item remplacer le noyau \emph{Creole} (\texttt{EoleDict}) de manière transparente ; + \item résoudre les problèmes inhérents à \texttt{CreoleServ} ; + \end{itemize} + \item au niveau du code, il y a enfin une vraie séparation du c\oe ur et du fonctionnel ; + \item valide le type \emph{et la structure}, l'ajout de types est aisé. + \item \emph{Creole} : \texttt{EoleDict, EoleVars} $ \Leftrightarrow $ \texttt{Config, Option}\\ + cf \texttt{tiramisu/doc/build/pydoc/index.html} + \item intégré à \texttt{gen\_config}, \texttt{cheetah}, \texttt{DTD Creole}, syntaxe \texttt{Creole} \dots + \item \texttt{eole-report/D02CoherenceVariables.pdf} + \end{itemize} +\end{frame} + \begin{frame} \frametitle{Gestionnaire de configuration existants} \begin{itemize} @@ -8,27 +25,9 @@ \end{frame} \begin{frame} - \frametitle{Comparaison entre le noyau de Créole et Tiramisu} + \frametitle{Un "vrai" serveur de config} \begin{itemize} - \item \emph{Creole} : \texttt{EoleDict, EoleVars} $ \Leftrightarrow $ \texttt{Config, Option} \\ - cf \texttt{tiramisu/doc/build/pydoc/index.html} - \item \emph{Creole} : \texttt{cfgparser.py + typeeole.py} $ \Rightarrow 2500 $ lignes ; - \item \emph{Tiramisu} : \texttt{config.py + option.py} $ \Rightarrow 800 $ lignes ; - \item Et en plus : - \begin{itemize} - \item compatible \texttt{gen\_config}, \texttt{cheetah}, \texttt{templates} \dots - \item \emph{Tiramisu} valide le type \emph{et} la structure, et l'ajout de types est aisé. - \item remplace le noyau \emph{Creole} $ \Rightarrow $ \texttt{doc/build/config.html} - \item et \texttt{creole serv} (cf diapo suivante) - \end{itemize} - \item \texttt{eole-report/D02CoherenceVariables.pdf} - \end{itemize} -\end{frame} - -\begin{frame} - \frametitle{Un vrai serveur de config} - \begin{itemize} - \item serveur de données de configuration ; + \item un serveur de données de configuration ; \item $1^{ere}$ méthode : exportation (snapshot) d'un état de la config $ \Rightarrow $ Créole ; \item $2^{eme}$ méthode : JIT (just in time) calculation, une modification de l'état de la configuration est possible \emph{pendant} la manipulation et l'utilisation de la conf $ \Rightarrow $ Tiramisu. @@ -39,7 +38,8 @@ de l'état de la configuration est possible \emph{pendant} la manipulation et l' \begin{frame} \frametitle{Qu'est-ce qu'un gestionnaire de conf moderne ?} \begin{itemize} - \item c'est un \emph{dictionnaire} de données ; + \item c'est une organisation arborescente des données (les données sont imbriquées) ; + \item c'est un accès facile aux données (typiquement une interface de type \emph{dictionnaire}) ; \item clefs-valeurs, mais quelles valeurs exactement ? $ \Rightarrow $ calcul JIT (just in time) ; \item \texttt{eole-report/D01AccesVariables.pdf} \end{itemize} @@ -48,12 +48,22 @@ de l'état de la configuration est possible \emph{pendant} la manipulation et l' \begin{frame} \frametitle{Définition d'un gestionnaire de configuration} \begin{itemize} - \item les families, groups, master \dots~ ce sont des espaces de nommages ; - \item c'est la configuration qui est responsable de l'accès aux valeurs ; - \item une configuration aisément manipulable ; - \item un point d'entrée unique. + \item les families, groups, master \dots~ ce sont des \emph{schémas} de données (\texttt{OptionDescription}) ; + \item c'est la configuration (\texttt{Config}) qui est responsable de l'accès aux valeurs ; + \item la configuration est aisément manipulable, et a un point d'entrée unique ; + \item l'accès aux valeurs des \texttt{Options} de configuration ne peut se faire \emph{que} depuis la conf racine. \item \texttt{eole-report/D01AccesVariables.pdf} \end{itemize} \end{frame} +\begin{frame} + \frametitle{Organisation en espace de nommage} + \begin{itemize} + \item dans \emph{tiramisu} l'accent est mis sur l'organisation arborescente des données ; + \item la validation des options de configuration se fait par l'appartenance aux groupes (families, master/slaves \dots) ; + \item l'organisation en groupes est unifiée par l'espace de nommage ; + \item \texttt{eole-report/D03ReglesEtats.pdf} + \item lisibilité d'une config : \texttt{tiramisu/report/build/index.html} rapport html d'une config + \end{itemize} +\end{frame} diff --git a/doc/eole-report/presentation/statut.tex b/doc/eole-report/presentation/statut.tex index 73a1021..1bee414 100644 --- a/doc/eole-report/presentation/statut.tex +++ b/doc/eole-report/presentation/statut.tex @@ -1,22 +1,12 @@ -\begin{frame} - \frametitle{Organisation en espace de nommage} - \begin{itemize} - \item dans \emph{tiramisu} l'accent est mis sur l'organisation arborescente des données ; - \item la validation des options de configuration se fait par l'appartenance aux groupes (families, master/slaves \dots) ; - \item l'organisation en groupes est unifiée par l'espace de nommage ; - \item \texttt{eole-report/D03ReglesEtats.pdf} - \item lisibilité d'une config : \texttt{tiramisu/report/build/index.html} rapport html d'une config - \end{itemize} -\end{frame} \begin{frame} - \frametitle{Etats de la configuration} + \frametitle{Etats ("status") de la configuration} \begin{itemize} - \item système d'états de la configuration par droits d'accès - \item \texttt{read write}, \texttt{read only}; + \item système d'états de la configuration par \emph{droits d'accès} ; + \item \texttt{read write}, \texttt{read only} ; \item correspond à \texttt{freeze}, \texttt{hidden}, \texttt{disabled} \dots ; - \item \texttt{doc/status.html} - \item \texttt{eole-report/D03ReglesEtats.pdf} + \item \texttt{doc/status.html} ; + \item \texttt{eole-report/D03ReglesEtats.pdf} ; \end{itemize} \end{frame} @@ -39,7 +29,7 @@ réalisable par les techniques de \emph{Model Checking} ; \item soit on a besoin de ne connaître que l'ensemble des états, pas leurs liens $\Rightarrow$ espace d'états ; \item soit on a besoin de connaître toutes les relations $\Rightarrow$ graphe d'accessibilité ; \item la configuration est modélisable en une structure de \emph{Kripe} ; -\item déjà le parsing de la conf est facile \texttt{tiramisu/report/build/index.html} +\item déjà le parsing de la conf est facile, la preuve : \texttt{tiramisu/report/build/index.html} \end{itemize} \end{frame} @@ -47,9 +37,9 @@ réalisable par les techniques de \emph{Model Checking} ; \frametitle{un peu de mathématiques (suite) CreoleLint} \begin{itemize} \item exemple : $ P = 3 \wedge Q = 1 \triangleleft \langle P = 1 \hookleftarrow Q = 0 \rangle$ -\item la propriété dans aucun état on a $P = 3$ et $Q = 1$ est-elle vraie ? +\item la propriété \og dans aucun état on a $P = 3$ et $Q = 1$ \fg~ est-elle vraie ? Pour vérifier cette propriété, on a besoin de connaître l'espace d'états ; -\item la propriété : chaque chemin débutant dans un état accessible $P=1$ passe par un état où $Q=3$ et $P=2$ +\item la propriété \og chaque chemin débutant dans un état accessible $P=1$ passe par un état où $Q=3$ et $P=2$ \fg~ est-elle vraie ? Cela demande de connaître le graphe d'accessibilité ; \item les structures de \emph{Kripe} sont des machines à états étiquetées par les valuations de toutes les variables propositionnelles ; \item une compliation statique devient possible dans \emph{CreoleLint} \dots diff --git a/doc/eole-report/presentation/tiramisu.txt b/doc/eole-report/presentation/tiramisu.txt deleted file mode 100644 index 7c70a37..0000000 --- a/doc/eole-report/presentation/tiramisu.txt +++ /dev/null @@ -1,43 +0,0 @@ -Tiramisu -========== - -Gestionnaire de configuration existants ----------------------------------------- - -- Victor : serveur de conf, **mais** en somme les modifs sont faites - en live et on revient en arrière si la conf n'est pas cohérente - (un `parse_dico()` avec un `SCM` derrière) - -- puppet, cfgengine - -- il y a **tous** les concepts de base de Créole, ce qui ne veut pas dire - que tout ce qu'on veut est implémenté (cf -> les variables automatiques) - - -Comparaison entre le noyau de Créole et Tiramisu ----------------------------------------------------- - -- Avec Créole il est compliqué d'ajouter un type à cause de la métaclasse ; -- Créole valide le type mais pas la structure (fait trop confiance au XML) ; - -un peu de mathématique -------------------------- - -- soit on a besoin de ne connaître que l'ensemble des états, par leurs liens -- soit on a besoin de connaître les relations - -- il suffit de coder un générateur de machines à états pour pouvoir -- faire des prédictions sur les configuration possibles - ------- - -documents de présentation ---------------------------- - -- `doc/build` : doc technique (et api epydoc) -- `doc/eole-report/presentation` : diaporama -- `doc/eole-report/eolreport` : diff pdf entre creole ~ tiramisu -- `tiramisu/report/` : rapport autmatique sur une config - - - diff --git a/doc/status.txt b/doc/status.txt index 67e015e..23de627 100644 --- a/doc/status.txt +++ b/doc/status.txt @@ -34,10 +34,10 @@ These configuration statuses corresponds to specific global attributes : To enable read only status, call :api:`config.Config.cfgimpl_read_only()` .. csv-table:: **Configuration's statuses summary** - :header: " ", "Hidden", "Disabled" + :header: " ", "Hidden", "Disabled", "Mandatory" - "read only status", `False`, `True` - "read-write status", `True`, `False` + "read only status", `False`, `True`, `True` + "read-write status", `True`, `False`, `False` Freezing a configuration ---------------------------