How Do I Use cli-json-filter?
By default, results are returned in JSON format when you call cloud service APIs using KooCLI. KooCLI supports the --cli-json-filter parameter to perform JMESPath query on JSON results. This option facilitates the extraction of key information in the results. For example:
hcloud ECS NovaListServers --cli-region="eu-west-101" --project_id="0dd8cb****************19b5a84546" { "servers": [ { "name": "ecs-a6b4", "links": [ { "rel": "self", "href": "https://ecs.eu-west-101.myhuaweicloud.eu/v2.1/0dd8cb****************19b5a84546/servers/4f06****-****-****-****-****04dd856a" }, { "rel": "bookmark", "href": "https://ecs.eu-west-101.myhuaweicloud.eu/0dd8cb****************19b5a84546/servers/4f06****-****-****-****-****04dd856a" } ], "id": "4f06****-****-****-****-****04dd856a" }, { "name": "hdn-docker", "links": [ { "rel": "self", "href": "https://ecs.eu-west-101.myhuaweicloud.eu/v2.1/0dd8cb****************19b5a84546/servers/6731****-****-****-****-****0bc463f0" }, { "rel": "bookmark", "href": "https://ecs.eu-west-101.myhuaweicloud.eu/0dd8cb****************19b5a84546/servers/6731****-****-****-****-****0bc463f0" } ], "id": "6731****-****-****-****-****0bc463f0" }, { "name": "ecs-8f88", "links": [ { "rel": "self", "href": "https://ecs.eu-west-101.myhuaweicloud.eu/v2.1/0dd8cb****************19b5a84546/servers/06a2****-****-****-****-****c79a1a26" }, { "rel": "bookmark", "href": "https://ecs.eu-west-101.myhuaweicloud.eu/0dd8cb****************19b5a84546/servers/06a2****-****-****-****-****c79a1a26" } ], "id": "06a2****-****-****-****-****c79a1a26" } ] }
Use --cli-json-filter to perform JMESPath query on the original JSON result, obtain the id and name of each servers element, and rename them EcsID and EcsName, respectively. The following is an example:
hcloud ECS NovaListServers --cli-region="eu-west-101" --project_id="0dd8cb****************19b5a84546" --cli-json-filter="servers[].{EcsID:id,EcsName:name}" [ { "EcsID": "4f06****-****-****-****-****04dd856a", "EcsName": "ecs-a6b4" }, { "EcsID": "6731****-****-****-****-****0bc463f0", "EcsName": "hdn-docker" }, { "EcsID": "06a2****-****-****-****-****c79a1a26", "EcsName": "ecs-8f88" } ]
--cli-json-filter can also be used in system commands. For example, to query all custom parameters of the profile test, run the following commands:
hcloud configure list --cli-custom=true --cli-json-filter="profiles[?name=='test'].custom" [ { "password": { "isEncrypted": true, "value": "****" }, "projectId": { "isEncrypted": false, "value": "06810000000000000000000000f89d2e" } } ]
For more information about how to use --cli-json-filter, see What Are the Precautions for Using cli-json-filter?
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.