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 à
|
||||
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
|
|
@ -26,6 +26,7 @@ def flatten(src, unique=True, clean=True, sep=','):
|
|||
|
||||
e.g flatten(['a , b', 'c,']) --> ['a', 'b', 'c']
|
||||
"""
|
||||
if src is None: return None
|
||||
if not isseq(src): src = [src]
|
||||
dest = []
|
||||
for items in src:
|
||||
|
@ -645,6 +646,7 @@ class Database(object):
|
|||
est invalide. Si value ou attrs sont définis, filtrer sur ces valeurs.
|
||||
"""
|
||||
if otype is None:
|
||||
#XXX faire un traitement récursif avec get_known_otypes
|
||||
objects = []
|
||||
for objects_ids in self._objects_ids_otype.values():
|
||||
objects.extend(objects_ids.values())
|
||||
|
@ -698,6 +700,7 @@ class Database(object):
|
|||
|
||||
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)
|
||||
if links is None: return None
|
||||
|
||||
|
@ -1514,11 +1517,11 @@ def __resolve_format(o, query_type):
|
|||
ovars = False
|
||||
lvars = True
|
||||
ofunc, lfunc = o.object_func, o.link_func
|
||||
ivars = flatten(o.vars) or None
|
||||
return format, ovars, lvars, ofunc, lfunc, ivars
|
||||
avars = flatten(o.vars) or None
|
||||
return format, ovars, lvars, ofunc, lfunc, avars
|
||||
|
||||
def print_var(name, values, format, ivars, is_values=False):
|
||||
if ivars is not None and name not in ivars: return
|
||||
def print_var(name, values, format, avars, is_values=False):
|
||||
if avars is not None and name not in avars: return
|
||||
if not isseq(values): values = [values]
|
||||
if format == 'shell':
|
||||
params = (name, " ".join(qshell(values)))
|
||||
|
@ -1538,16 +1541,15 @@ def print_var(name, values, format, ivars, is_values=False):
|
|||
else:
|
||||
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
|
||||
format, ovars, lvars, ofunc, lfunc, ivars = __resolve_format(o, query_type)
|
||||
if not ovars: return
|
||||
for o in objects:
|
||||
if o.is_defaults(): continue
|
||||
print_var('otype', o.OTYPE, format, ivars)
|
||||
print_var(o.VALUESNAME, o.values, format, ivars, True)
|
||||
print_var('otype', o.OTYPE, format, avars)
|
||||
print_var(o.VALUESNAME, o.values, format, avars, True)
|
||||
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':
|
||||
print ofunc
|
||||
|
||||
|
@ -1602,15 +1604,22 @@ def run_qdd(o):
|
|||
if o.profile is not None: profile = o.profile or None
|
||||
else: profile = UNDEF
|
||||
args = o.args or UNDEF
|
||||
format, ovars, lvars, ofunc, lfunc, avars = __resolve_format(o, query_type)
|
||||
if query_type == 'object':
|
||||
objects = db.get_objects(object_type, args)
|
||||
print_objects(objects, query_type, o)
|
||||
print_objects(objects, format, ovars, ofunc, avars)
|
||||
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':
|
||||
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':
|
||||
pass
|
||||
pass #XXX
|
||||
|
||||
if __name__ == '__main__':
|
||||
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.")
|
||||
AP.add_argument('-q', '--query-type', dest='query_type',
|
||||
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'""")
|
||||
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.")
|
||||
AP.add_argument('-F', '--format', dest='format',
|
||||
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...',
|
||||
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',
|
||||
|
|
Loading…
Reference in New Issue