maj doc
This commit is contained in:
parent
f7008c77f4
commit
2bf51dec9d
5
TODO.md
5
TODO.md
|
@ -41,5 +41,10 @@
|
||||||
|
|
||||||
* faire des outils d'interrogation base de données pour pouvoir commencer à
|
* faire des outils d'interrogation base de données pour pouvoir commencer à
|
||||||
exploiter le code
|
exploiter le code
|
||||||
|
* fonction qui transforme args en deux listes: une liste de valeurs et une
|
||||||
|
liste d'attributs de la forme name=value
|
||||||
|
* lors de la recherche, les liens devraient contenir les objets et non les
|
||||||
|
identifiants dans fos et tos. corriger le code de recherche match_fos et
|
||||||
|
match_tos pour utiliser les valeurs des objets.
|
||||||
|
|
||||||
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
|
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
|
|
@ -26,6 +26,7 @@ def flatten(src, unique=True, clean=True, sep=','):
|
||||||
|
|
||||||
e.g flatten(['a , b', 'c,']) --> ['a', 'b', 'c']
|
e.g flatten(['a , b', 'c,']) --> ['a', 'b', 'c']
|
||||||
"""
|
"""
|
||||||
|
if src is None: return None
|
||||||
if not isseq(src): src = [src]
|
if not isseq(src): src = [src]
|
||||||
dest = []
|
dest = []
|
||||||
for items in src:
|
for items in src:
|
||||||
|
@ -645,6 +646,7 @@ class Database(object):
|
||||||
est invalide. Si value ou attrs sont définis, filtrer sur ces valeurs.
|
est invalide. Si value ou attrs sont définis, filtrer sur ces valeurs.
|
||||||
"""
|
"""
|
||||||
if otype is None:
|
if otype is None:
|
||||||
|
#XXX faire un traitement récursif avec get_known_otypes
|
||||||
objects = []
|
objects = []
|
||||||
for objects_ids in self._objects_ids_otype.values():
|
for objects_ids in self._objects_ids_otype.values():
|
||||||
objects.extend(objects_ids.values())
|
objects.extend(objects_ids.values())
|
||||||
|
@ -698,6 +700,7 @@ class Database(object):
|
||||||
|
|
||||||
XXX compléter la doc
|
XXX compléter la doc
|
||||||
"""
|
"""
|
||||||
|
#XXX si ltype is None, faire un traitement récursif avec get_known_ltypes
|
||||||
links = self._links_ltype.get(ltype, None)
|
links = self._links_ltype.get(ltype, None)
|
||||||
if links is None: return None
|
if links is None: return None
|
||||||
|
|
||||||
|
@ -1514,11 +1517,11 @@ def __resolve_format(o, query_type):
|
||||||
ovars = False
|
ovars = False
|
||||||
lvars = True
|
lvars = True
|
||||||
ofunc, lfunc = o.object_func, o.link_func
|
ofunc, lfunc = o.object_func, o.link_func
|
||||||
ivars = flatten(o.vars) or None
|
avars = flatten(o.vars) or None
|
||||||
return format, ovars, lvars, ofunc, lfunc, ivars
|
return format, ovars, lvars, ofunc, lfunc, avars
|
||||||
|
|
||||||
def print_var(name, values, format, ivars, is_values=False):
|
def print_var(name, values, format, avars, is_values=False):
|
||||||
if ivars is not None and name not in ivars: return
|
if avars is not None and name not in avars: return
|
||||||
if not isseq(values): values = [values]
|
if not isseq(values): values = [values]
|
||||||
if format == 'shell':
|
if format == 'shell':
|
||||||
params = (name, " ".join(qshell(values)))
|
params = (name, " ".join(qshell(values)))
|
||||||
|
@ -1538,16 +1541,15 @@ def print_var(name, values, format, ivars, is_values=False):
|
||||||
else:
|
else:
|
||||||
raise ValueError("%s: invalid format" % format)
|
raise ValueError("%s: invalid format" % format)
|
||||||
|
|
||||||
def print_objects(objects, query_type, o):
|
def print_objects(objects, format, ovars, ofunc, avars):
|
||||||
if objects is None: return
|
if objects is None: return
|
||||||
format, ovars, lvars, ofunc, lfunc, ivars = __resolve_format(o, query_type)
|
|
||||||
if not ovars: return
|
if not ovars: return
|
||||||
for o in objects:
|
for o in objects:
|
||||||
if o.is_defaults(): continue
|
if o.is_defaults(): continue
|
||||||
print_var('otype', o.OTYPE, format, ivars)
|
print_var('otype', o.OTYPE, format, avars)
|
||||||
print_var(o.VALUESNAME, o.values, format, ivars, True)
|
print_var(o.VALUESNAME, o.values, format, avars, True)
|
||||||
for name, values in o.attrs.items():
|
for name, values in o.attrs.items():
|
||||||
print_var('%s%s' % (o.ATTRPREFIX, name), values, format, ivars)
|
print_var('%s%s' % (o.ATTRPREFIX, name), values, format, avars)
|
||||||
if ofunc and format == 'shell':
|
if ofunc and format == 'shell':
|
||||||
print ofunc
|
print ofunc
|
||||||
|
|
||||||
|
@ -1602,15 +1604,22 @@ def run_qdd(o):
|
||||||
if o.profile is not None: profile = o.profile or None
|
if o.profile is not None: profile = o.profile or None
|
||||||
else: profile = UNDEF
|
else: profile = UNDEF
|
||||||
args = o.args or UNDEF
|
args = o.args or UNDEF
|
||||||
|
format, ovars, lvars, ofunc, lfunc, avars = __resolve_format(o, query_type)
|
||||||
if query_type == 'object':
|
if query_type == 'object':
|
||||||
objects = db.get_objects(object_type, args)
|
objects = db.get_objects(object_type, args)
|
||||||
print_objects(objects, query_type, o)
|
print_objects(objects, format, ovars, ofunc, avars)
|
||||||
elif query_type == 'source':
|
elif query_type == 'source':
|
||||||
pass
|
tos, attrs = part_filter_args(args)
|
||||||
|
links = db.get_links(link_type, profile, to=tos, attrs=attrs)
|
||||||
|
links = filter_links(object_type)
|
||||||
|
print_links(links, format, ovars, lvars, ofunc, lfunc, avars)
|
||||||
elif query_type == 'dest':
|
elif query_type == 'dest':
|
||||||
pass
|
fos, attrs = part_filter_args(args)
|
||||||
|
links = db.get_links(link_type, profile, fo=fos, attrs=attrs)
|
||||||
|
links = filter_links(object_type)
|
||||||
|
print_links(links, format, ovars, lvars, ofunc, lfunc, avars)
|
||||||
elif query_type == 'link':
|
elif query_type == 'link':
|
||||||
pass
|
pass #XXX
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
from argparse import ArgumentParser, HelpFormatter
|
from argparse import ArgumentParser, HelpFormatter
|
||||||
|
@ -1660,15 +1669,15 @@ if __name__ == '__main__':
|
||||||
help=u"Spécifier le nom de la configuration à utiliser. Par défaut, utiliser le nom générique deploy.")
|
help=u"Spécifier le nom de la configuration à utiliser. Par défaut, utiliser le nom générique deploy.")
|
||||||
AP.add_argument('-q', '--query-type', dest='query_type',
|
AP.add_argument('-q', '--query-type', dest='query_type',
|
||||||
help=u"""\
|
help=u"""\
|
||||||
Spécifier le type d'information à afficher:
|
Spécifier le type d'information à afficher et donc le type d'information à chercher:
|
||||||
>>>
|
>>>
|
||||||
* object pour des informations sur les objets,
|
* 'object' pour des informations sur les objets. le filtre est la valeur de l'objet ou d'un de ses attributs.
|
||||||
>>>
|
>>>
|
||||||
* source pour des informations sur les objets sources d'un lien,
|
* 'source' pour des informations sur les objets sources d'un lien. le filtre est la valeur d'un objet destination ou de l'un de ses attributs.
|
||||||
>>>
|
>>>
|
||||||
* dest pour des informations sur les objets destinations d'un lien,
|
* 'dest' pour des informations sur les objets destinations d'un lien. le filtre est la valeur d'un objet source et de l'un de ses attributs.
|
||||||
>>>
|
>>>
|
||||||
* link pour des informations sur un lien.
|
* 'link' pour des informations sur un lien.
|
||||||
>>>
|
>>>
|
||||||
La valeur par défaut est '-q dest -j host'""")
|
La valeur par défaut est '-q dest -j host'""")
|
||||||
AP.add_argument('-j', '--object-type', dest='object_type',
|
AP.add_argument('-j', '--object-type', dest='object_type',
|
||||||
|
@ -1679,13 +1688,15 @@ La valeur par défaut est '-q dest -j host'""")
|
||||||
help=u"Spécifier le profil de déploiement pour -q source|dest|link. Utiliser une valeur vide pour ne sélectionner que les liens sans profils. Ne pas spécifier l'option pour afficher tous les profils définis.")
|
help=u"Spécifier le profil de déploiement pour -q source|dest|link. Utiliser une valeur vide pour ne sélectionner que les liens sans profils. Ne pas spécifier l'option pour afficher tous les profils définis.")
|
||||||
AP.add_argument('-F', '--format', dest='format',
|
AP.add_argument('-F', '--format', dest='format',
|
||||||
help=u"""\
|
help=u"""\
|
||||||
Spécifier le format pour la sortie. La valeur par défaut est shell.
|
Spécifier le format pour la sortie:
|
||||||
>>>
|
>>>
|
||||||
* shell affiche les définitions de variables
|
* 'shell' affiche les définitions de variables
|
||||||
>>>
|
>>>
|
||||||
* lines affiches les valeurs à raison d'une par lignes. les attributs ne sont pas affichés.
|
* 'lines' affiches les valeurs à raison d'une par lignes. les attributs ne sont pas affichés.
|
||||||
>>>
|
>>>
|
||||||
* spaces, path et comma affichent les valeurs séparées respectivement par un espace ' ', deux point ':' et une virgule ','. les attributs ne sont pas affichés.""")
|
* 'spaces', 'path' et 'comma' affichent les valeurs séparées respectivement par un espace ' ', deux point ':' et une virgule ','. les attributs ne sont pas affichés.
|
||||||
|
>>>
|
||||||
|
La valeur par défaut est shell""")
|
||||||
AP.add_argument('-v', '--include-vars', action='append', dest='vars', metavar='VARS...',
|
AP.add_argument('-v', '--include-vars', action='append', dest='vars', metavar='VARS...',
|
||||||
help=u"Spécifier les variables qui doivent être affichées. Par défaut, toutes les variables sont affichées.")
|
help=u"Spécifier les variables qui doivent être affichées. Par défaut, toutes les variables sont affichées.")
|
||||||
AP.add_argument('-o', '--object-vars', action='store_true', dest='object_vars',
|
AP.add_argument('-o', '--object-vars', action='store_true', dest='object_vars',
|
||||||
|
|
Loading…
Reference in New Issue