- data.append(dict(zip(headers, row)))
- yaml_string = yaml.safe_dump(data, sort_keys=False)
- print(yaml_string)
- elif format.startswith("jsonpath="):
- # JSONPath expression
- json_path_expression = format.partition("=")[-1]
- json_path = parse(json_path_expression)
- data = []
- for row in rows:
- data.append(dict(zip(headers, row)))
- # json_data = json.dumps(data)
- # Apply JSONPath expression on the JSON object
- results = [match.value for match in json_path.find(data)]
- print(results)
- else:
- print("Valid values for -o are table, yaml, csv, json, jsonpath")
-
-
-def validate_command_output(ctx, param, value):
- allowed_commands = [
- "ns-list",
- "ns-show",
- "vim-list",
- "vim-show",
- "vnf-list",
- "vnf-show",
- ] # List of allowed commands
-
- if ctx.command.name in allowed_commands:
- return value
- # if param:
- # print (value)
- else:
- raise click.BadParameter(
- f'Option "{param.name}" is not allowed for this command.'
- )
+ item = {}
+ for i in range(len(row)):
+ item[headers[i]] = row[i]
+ data.append(item)
+ if format == "json":
+ print(json.dumps(data, indent=4))
+ elif format == "yaml":
+ print(
+ yaml.safe_dump(
+ data, indent=4, default_flow_style=False, sort_keys=False
+ )
+ )
+ elif format.startswith("jsonpath="):
+ # JSONPath expression
+ json_path_expression = format.partition("=")[-1]
+ logger.debug(f"Jsonpath expression: {json_path_expression}")
+ json_path = parse(json_path_expression)
+ # Apply JSONPath expression on the JSON object
+ results = [match.value for match in json_path.find(data)]
+ for i in results:
+ print(i)