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.
Related issues
History
#1 Updated by Daniel Dehennin about 11 years ago
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 Updated by Joël Cuissinat almost 11 years ago
- Target version changed from Eole 2.4-dev-1 to Eole 2.4-dev-2
#3 Updated by Joël Cuissinat almost 11 years ago
- Assigned To set to Gwenael Remond
#4 Updated by Gwenael Remond over 10 years ago
- Status changed from Nouveau to En attente d'informations
- % Done changed from 0 to 100
- Estimated time set to 2.00 h
à priori les méthodes find() ou find_first() de config.py répondent à la demande. A confirmer.
#5 Updated by Joël Cuissinat over 10 years ago
- Due date set to 02/01/2013
- Assigned To changed from Gwenael Remond to Daniel Dehennin
#6 Updated by Daniel Dehennin over 10 years ago
- Assigned To changed from Daniel Dehennin to Gwenael Remond
- % Done changed from 100 to 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 Updated by Joël Cuissinat over 10 years ago
- Due date deleted (
02/01/2013)
#8 Updated by Joël Cuissinat over 10 years ago
- Target version deleted (
Eole 2.4-dev-2)
#9 Updated by Emmanuel GARETTE over 9 years ago
- Assigned To changed from Gwenael Remond to Daniel Dehennin
- Target version set to Eole 2.4-RC3
Status de la demande ?
#10 Updated by Daniel Dehennin over 9 years ago
- Due date set to 04/04/2014
- Status changed from En attente d'informations to Résolu
- % Done changed from 80 to 100
La situation actuelle fonctionne.