Current File : //usr/lib/python2.7/site-packages/cloudinit/cmd/query.pyo
�
oB�]c@s�dZddlZddlmZddlZddlZddlZddlmZm	Z	ddl
mZmZddl
mZddlmZmZmZddl
mZd	Zeje�Zdd
�Zd�Zd�Zed
kr�e�ndS(s;Query standardized instance metadata from the command line.i����N(tEACCES(tconvert_jinja_instance_datatrender_jinja_payload(taddLogHandlerCLItread_cfg_paths(tlog(tINSTANCE_JSON_FILEtINSTANCE_JSON_SENSITIVE_FILEtREDACT_SENSITIVE_VALUE(tutiltquerycCs*|s!tjdtdd�}n|jdddddtd	d
�|jddd
td	dt�|jdddddtd	d�|jddd
td	d�|jddd
td	d�|jdd
tddd	d�|jdddddtddd	d �|jd!d"d
tdd#d	d$�|S(%s#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.
    tprogtdescriptionsQuery cloud-init instance datas-ds--debugtactiont
store_truetdefaultthelps+Add verbose messages during template renders-is--instance-datattypes>Path to instance-data.json file. Default is /run/cloud-init/%ss-ls--list-keyssBList query keys available at the provided instance-data <varname>.s-us--user-datasHPath to user-data file. Default is /var/lib/cloud/instance/user-data.txts-vs
--vendor-datasLPath to vendor-data file. Default is /var/lib/cloud/instance/vendor-data.txttvarnametnargst?shA dot-delimited instance data variable to query from instance-data query. For example: v2.local_hostnames-as--alltdesttdump_alls Dump all available instance-datas-fs--formattformats�Optionally specify a custom output format string. Any instance-data variable can be specified between double-curly braces. For example -f "{{ v2.cloud_name }}"(targparsetArgumentParsertNAMEtadd_argumenttFalsetstrR(tparser((s7/usr/lib/python2.7/site-packages/cloudinit/cmd/query.pyt
get_parsers:		c	Cs�d}tt|jrtjntj�t|j|j	|j
|jg�sjtjd�t
�j�dStj�}t|j|j|jg�s�t�}n|jr�|j}nytjj|jt�}|dkr(tjj|jt�}tjj|�r|}q.tjd||�|}n|}|jrC|j}ntjj|jd�}|jrp|j}ntjj|jd�}ytj|�}	WnLt t!fk
r�}
|
j"t#kr�tjd|�ntjd|�dSXtj$|	�}|dkr0d	t%|f|d
<d	t%|f|d<n&tj|�|d
<tj|�|d<|j
r�dj
d
|j
�}t&d|ddd|d|jr�t'nt(�}
|
r�|
GHdSdSt)|�}|j	rly+x$|j	j*d�D]}||}q�WWn%t+k
rtjd|j	�dSX|jr�t,|t-�sKtjd|�dSdjt.|j/���}q�n'|jr�djt.|j/���}nt,|t0j1�s�tj2|�}n|GHdS(s3Handle calls to 'cloud-init query' as a subcommand.sDExpected one of the options: --all, --format, --list-keys or varnameiis4Missing root-readable %s. Using redacted %s instead.s
user-data.txtsvendor-data.txts$No read permission on '%s'. Try sudosMissing instance-data file: %ss<%s> file:%stuserdatat
vendordatas## template: jinja
{fmt}tfmttpayloadt
payload_fnsquery commandlinet
instance_datatdebugt.sUndefined instance-data key %ss+--list-keys provided but '%s' is not a dicts
N(3tNoneRtLOGR&RtDEBUGtWARNINGtanyt	list_keysRRRterrorRt
print_helptostgetuidtallR%t	user_datatvendor_dataRtpathtjointrun_dirRRtexiststwarningt
instance_linkR	t	load_filetIOErrortOSErrorterrnoRt	load_jsonRRtTrueRRtsplittKeyErrort
isinstancetdicttsortedtkeystsixtstring_typest
json_dumps(tnametargstpathstuidtinstance_data_fntredacted_data_fntsensitive_data_fntuser_data_fntvendor_data_fnt
instance_jsonteR%R#trendered_payloadtresponsetvar((s7/usr/lib/python2.7/site-packages/cloudinit/cmd/query.pythandle_argsEs�"$
			
					
	!	cCs)t�}tjtt|j���dS(s,Tool to query specific instance-data values.N(RtsystexitRXRt
parse_args(R((s7/usr/lib/python2.7/site-packages/cloudinit/cmd/query.pytmain�s	t__main__(t__doc__RR>RR0RGRYt!cloudinit.handlers.jinja_templateRRtcloudinit.cmd.develRRt	cloudinitRtcloudinit.sourcesRRRR	Rt	getLoggerR)R(RRXR\t__name__(((s7/usr/lib/python2.7/site-packages/cloudinit/cmd/query.pyt<module>s".	Y