3
\me@+ @ s d Z ddlZddlZddlZddlZddlmZ ddlmZm Z ddl
mZ ddlm
Z
mZmZ ddlmZ dZejeZdd d
Zdd Zed
ddZeeeedddZdd Zdd Zedkre dS )aT Query standardized instance metadata provided to machine, returning a JSON
structure.
Some instance-data values may be binary on some platforms, such as userdata and
vendordata. Attempt to decompress and decode UTF-8 any binary values.
Any binary values in the instance metadata will be base64-encoded and prefixed
with "ci-b64:" in the output. userdata and, where applicable, vendordata may
be provided to the machine gzip-compressed (and therefore as binary data).
query will attempt to decompress these to a string before emitting the JSON
output; if this fails, they are treated as binary.
N)EACCES)
atomic_helperutil)read_cfg_paths)convert_jinja_instance_dataget_jinja_variable_aliasrender_jinja_payload)REDACT_SENSITIVE_VALUEZqueryc C s | st jttd} | jdddddd | jdd td
t jd d | jd
ddddd | jddtdd | jddtdd | jdtddd | jddddddd | jdd td!d"d# | S )$a# Build or extend an arg parser for query utility.
@param parser: Optional existing ArgumentParser instance representing the
query subcommand which will be extended to support the args of
this utility.
@returns: ArgumentParser with proper argument configuration.
)progdescriptionz-dz--debug
store_trueFz+Add verbose messages during template render)actiondefaulthelpz-iz--instance-dataz,Path to instance-data.json file. Default is
instance_data)typer z-lz--list-keyszBList query keys available at the provided instance-data