Evolution #4172
Requête sur la configuration
Description
Afin d’implémenter un serveur creole, il faut que la configuration soit interrogeable.
Par exemple, en français :
- Retourner le conteneur ayant pour nom 'root' ;
- Retourner les conteneurs ayant le service 'X' activé ;
- Retourner tous les paquets de tous les conteneurs.
Je ne vois pas, pour l’instant, de cas d’utilisation de critères de recherche multiples.
Demandes liées
Historique
#1 Mis à jour par Daniel Dehennin il y a presque 12 ans
Pour exprimer les requêtes de façon plus génériques on pourrait dire :
Retourner une liste d’objects d’un certain type (conteneur, fichier, service, paquet,…), à partir d’un certain chemin, respectant certains critères
Comment exprimer les critères de sélection ?
#2 Mis à jour par Joël Cuissinat il y a plus de 11 ans
- Version cible changé de Eole 2.4-dev-1 à Eole 2.4-dev-2
#3 Mis à jour par Joël Cuissinat il y a plus de 11 ans
- Assigné à mis à Gwenael Remond
#4 Mis à jour par Gwenael Remond il y a plus de 11 ans
- Statut changé de Nouveau à En attente d'informations
- % réalisé changé de 0 à 100
- Temps estimé mis à 2.00 h
à priori les méthodes find() ou find_first() de config.py répondent à la demande. A confirmer.
#5 Mis à jour par Joël Cuissinat il y a plus de 11 ans
- Echéance mis à 01/02/2013
- Assigné à changé de Gwenael Remond à Daniel Dehennin
#6 Mis à jour par Daniel Dehennin il y a plus de 11 ans
- Assigné à changé de Daniel Dehennin à Gwenael Remond
- % réalisé changé de 100 à 80
La méthode find
ne semble pas ce comporter comme je m’y attendais pour son paramètre byattrs
.
Je m’attendais à quelque chose comme :
>>> config.containers.files.find(byattrs={'container':'web'})
{u'file0.container': u'web',
u'file0.filelist': u'apache',
u'file0.mkdir': False,
u'file0.name': u'/etc/apache2/sites-available/Vhost',
u'file0.rm': False,
u'file0.source': u'/var/lib/creole/Vhost.conf',
u'file1.container': u'web',
u'file1.del_comment': u';',
u'file1.filelist': u'apache',
u'file1.mkdir': False,
u'file1.name': u'/etc/php5/apache2/php.ini',
u'file1.rm': False,
u'file1.source': u'/var/lib/creole/php.ini',
u'file2.container': u'web',
u'file2.filelist': u'rpaf',
u'file2.mkdir': False,
u'file2.name': u'/etc/apache2/mods-available/rpaf.conf',
u'file2.rm': False,
u'file2.source': u'/var/lib/creole/rpaf.conf'
[...]
}
Aujourd’hui, on le fait côté client avec CreoleClient.
to_grouped_list()
creole:source:creole/client.py?rev=a18255e4#L311) et CreoleClient.
to_list_of_dict()
(creole:source:creole/client.py?rev=a18255e4#L331) :
>>> from creole.client import CreoleClient
>>> c = CreoleClient()
>>> c.to_grouped_lists(c.to_list_of_dict(c.get('/containers/files')), keyname='container', keyvalue='web')
{u'web': [{u'container': u'web',
u'filelist': u'apache',
u'mkdir': False,
u'name': u'/etc/apache2/sites-available/Vhost',
u'rm': False,
u'source': u'/var/lib/creole/Vhost.conf'},
{u'container': u'web',
u'del_comment': u';',
u'filelist': u'apache',
u'mkdir': False,
u'name': u'/etc/php5/apache2/php.ini',
u'rm': False,
u'source': u'/var/lib/creole/php.ini'},
{u'container': u'web',
u'filelist': u'rpaf',
u'mkdir': False,
u'name': u'/etc/apache2/mods-available/rpaf.conf',
u'rm': False,
u'source': u'/var/lib/creole/rpaf.conf'},
[...]
]}
Peut-être que cela nécessite de tester une expression rationnelle sur le nom ?
#7 Mis à jour par Joël Cuissinat il y a plus de 11 ans
- Echéance
01/02/2013supprimé
#8 Mis à jour par Joël Cuissinat il y a plus de 11 ans
- Version cible
Eole 2.4-dev-2supprimé
#9 Mis à jour par Emmanuel GARETTE il y a plus de 10 ans
- Assigné à changé de Gwenael Remond à Daniel Dehennin
- Version cible mis à Eole 2.4-RC3
Status de la demande ?
#10 Mis à jour par Daniel Dehennin il y a environ 10 ans
- Echéance mis à 04/04/2014
- Statut changé de En attente d'informations à Résolu
- % réalisé changé de 80 à 100
La situation actuelle fonctionne.
#11 Mis à jour par Emmanuel GARETTE il y a environ 10 ans
- Statut changé de Résolu à Fermé
Je confirme.