X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fscripts%2Fosm.py;h=52761030731ce064c499166341801268eca68b59;hb=c4cd58f1fa79599a489730b41cda4cf43f552ecd;hp=ba8ef5ad746d6568b43df4f278e5f1e3f4fdae98;hpb=5b342f49c7a37323a79b11e51e745c5a1a8f2439;p=osm%2Fosmclient.git diff --git a/osmclient/scripts/osm.py b/osmclient/scripts/osm.py index ba8ef5a..5276103 100755 --- a/osmclient/scripts/osm.py +++ b/osmclient/scripts/osm.py @@ -99,10 +99,56 @@ def cli(ctx, hostname, so_port, so_project, ro_hostname, ro_port, sol005): @cli.command(name='ns-list') @click.option('--filter', default=None, - help='restricts the list to the NS instances matching the filter') + help='restricts the list to the NS instances matching the filter.') @click.pass_context def ns_list(ctx, filter): - '''list all NS instances''' + '''list all NS instances + + \b + Options: + --filter filterExpr Restricts the list to the NS instances matching the filter + + \b + filterExpr consists of one or more strings formatted according to "simpleFilterExpr", + concatenated using the "&" character: + + \b + filterExpr := ["&"]* + simpleFilterExpr := ["."]*["."]"="[","]* + op := "eq" | "neq" | "gt" | "lt" | "gte" | "lte" | "cont" | "ncont" + attrName := string + value := scalar value + + \b + where: + * zero or more occurrences + ? zero or one occurrence + [] grouping of expressions to be used with ? and * + "" quotation marks for marking string constants + <> name separator + + \b + "AttrName" is the name of one attribute in the data type that defines the representation + of the resource. The dot (".") character in "simpleFilterExpr" allows concatenation of + entries to filter by attributes deeper in the hierarchy of a structured document. + "Op" stands for the comparison operator. If the expression has concatenated + entries, it means that the operator "op" is applied to the attribute addressed by the last + entry included in the concatenation. All simple filter expressions are combined + by the "AND" logical operator. In a concatenation of entries in a , + the rightmost "attrName" entry in a "simpleFilterExpr" is called "leaf attribute". The + concatenation of all "attrName" entries except the leaf attribute is called the "attribute + prefix". If an attribute referenced in an expression is an array, an object that contains a + corresponding array shall be considered to match the expression if any of the elements in the + array matches all expressions that have the same attribute prefix. + + \b + Filter examples: + --filter admin-status=ENABLED + --filter nsd-ref= + --filter nsd.vendor= + --filter nsd.vendor=&nsd-ref= + --filter nsd.constituent-vnfd.vnfd-id-ref= + ''' if filter: check_client_version(ctx.obj, '--filter') resp = ctx.obj.ns.list(filter) @@ -218,13 +264,64 @@ def vnfd_list2(ctx, filter): @cli.command(name='vnf-list') @click.option('--ns', default=None, help='NS instance id or name to restrict the VNF list') +@click.option('--filter', default=None, + help='restricts the list to the VNF instances matching the filter.') @click.pass_context -def vnf_list(ctx, ns): - ''' list all VNF instances''' +def vnf_list(ctx, ns, filter): + '''list all VNF instances + + \b + Options: + --ns TEXT NS instance id or name to restrict the VNF list + --filter filterExpr Restricts the list to the VNF instances matching the filter + + \b + filterExpr consists of one or more strings formatted according to "simpleFilterExpr", + concatenated using the "&" character: + + \b + filterExpr := ["&"]* + simpleFilterExpr := ["."]*["."]"="[","]* + op := "eq" | "neq" | "gt" | "lt" | "gte" | "lte" | "cont" | "ncont" + attrName := string + value := scalar value + + \b + where: + * zero or more occurrences + ? zero or one occurrence + [] grouping of expressions to be used with ? and * + "" quotation marks for marking string constants + <> name separator + + \b + "AttrName" is the name of one attribute in the data type that defines the representation + of the resource. The dot (".") character in "simpleFilterExpr" allows concatenation of + entries to filter by attributes deeper in the hierarchy of a structured document. + "Op" stands for the comparison operator. If the expression has concatenated + entries, it means that the operator "op" is applied to the attribute addressed by the last + entry included in the concatenation. All simple filter expressions are combined + by the "AND" logical operator. In a concatenation of entries in a , + the rightmost "attrName" entry in a "simpleFilterExpr" is called "leaf attribute". The + concatenation of all "attrName" entries except the leaf attribute is called the "attribute + prefix". If an attribute referenced in an expression is an array, an object that contains a + corresponding array shall be considered to match the expression if any of the elements in the + array matches all expressions that have the same attribute prefix. + + \b + Filter examples: + --filter vim-account-id= + --filter vnfd-ref= + --filter vdur.ip-address= + --filter vnfd-ref=,vdur.ip-address= + ''' try: - if ns: - check_client_version(ctx.obj, '--ns') - resp = ctx.obj.vnf.list(ns) + if ns or filter: + if ns: + check_client_version(ctx.obj, '--ns') + if filter: + check_client_version(ctx.obj, '--filter') + resp = ctx.obj.vnf.list(ns, filter) else: resp = ctx.obj.vnf.list() except ClientException as inst: