shell: document query parameters

Change-Id: I3263aaf88e8cbd9d52446d92e4413248eb52382e
Closes-Bug: #1567937
This commit is contained in:
Julien Danjou 2016-04-08 15:54:39 +02:00
parent d6bf8ea8dc
commit e9ca915772
3 changed files with 16 additions and 4 deletions

View File

@ -90,6 +90,20 @@ class MalformedQuery(Exception):
"Malformed Query: %s" % reason)
def add_query_argument(cmd, parser):
return parser.add_argument(
cmd,
help="A query to filter resource. "
"The syntax is a combination of attribute, operator and value. "
"For example: id=90d58eea-70d7-4294-a49a-170dcdf44c3c would filter "
"resource with a certain id. More complex queries can be built, "
"e.g.: not (flavor_id!=\"1\" and memory>=24). "
"Use \"\" to force data to be interpreted as string. "
"Supported operators are: not, and, ∧ or, , >=, <=, !=, >, <, =, ==, "
"eq, ne, lt, gt, ge, le, in, like, ≠, ≥, ≤, like, in.",
type=search_query_builder)
def search_query_builder(query):
try:
parsed_query = expr.parseString(query, parseAll=True)[0]

View File

@ -219,8 +219,7 @@ class CliMeasuresAggregation(lister.Lister):
parser.add_argument("--needed-overlap", type=float,
help=("percent of datapoints in each "
"metrics required"))
parser.add_argument("--query", help="Query",
type=utils.search_query_builder),
utils.add_query_argument("--query", parser)
parser.add_argument("--resource-type", default="generic",
help="Resource type to query"),
return parser

View File

@ -89,8 +89,7 @@ class CliResourceSearch(CliResourceList):
def get_parser(self, prog_name):
parser = super(CliResourceSearch, self).get_parser(prog_name)
parser.add_argument("query", help="Query",
type=utils.search_query_builder)
utils.add_query_argument("query", parser)
return parser
def take_action(self, parsed_args):