Projet

Général

Profil

Evolution #4172

Requête sur la configuration

Ajouté par Daniel Dehennin il y a plus de 11 ans. Mis à jour il y a environ 10 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
19/09/2012
Echéance:
04/04/2014
% réalisé:

100%

Temps estimé:
2.00 h
Temps passé:
Distribution:
EOLE 2.4

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

Bloque creole - Tâche #4100: Organisation arborescente de la configuration des conteneurs et requête Fermé 19/09/2012

Historique

#1 Mis à jour par Daniel Dehennin il y a plus de 11 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 environ 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 environ 11 ans

  • Echéance mis à 01/02/2013
  • Assigné à changé de Gwenael Remond à Daniel Dehennin

#6 Mis à jour par Daniel Dehennin il y a environ 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 environ 11 ans

  • Echéance 01/02/2013 supprimé

#8 Mis à jour par Joël Cuissinat il y a environ 11 ans

  • Version cible Eole 2.4-dev-2 supprimé

#9 Mis à jour par Emmanuel GARETTE il y a environ 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.

Formats disponibles : Atom PDF