%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python2.7/site-packages/salt/utils/
Upload File :
Create Path :
Current File : //lib/python2.7/site-packages/salt/utils/vault.pyc

�
���^c@@s�dZddlmZmZmZddlZddlZddlZddlZ	ddl
Z	ddlZ	eje
�Zejd�jej�dad�Zd�Zd�Zdded�Zd	�Zd
�ZdS(u�
:maintainer:    SaltStack
:maturity:      new
:platform:      all

Utilities supporting modules for Hashicorp Vault. Configuration instructions are
documented in the execution module docs.
i(tabsolute_importtprint_functiontunicode_literalsNurequestscC@sKy tstjjt�atSWn$tk
rF}tjd|�t	SXdS(NuCould not load __salt__: %s(
t__salt__tsalttloadertminion_modst__opts__tTruet	ExceptiontlogterrortFalse(te((s4/usr/lib/python2.7/site-packages/salt/utils/vault.pyt__virtual__scC@s�td}td}tjdd�dkr�dj|�}tjd|�tjtj	j
||��}tddd	||g�}nbd
j|�}tjd||�tjtj	j
||��}tddd
|d|dt�}|stj
d�tjj|��nt|t�sFtj
d|�tjj|��nd|kr{tj
d|d�tjj|��ni|dd6|dd6|jdd�d6S(u`
    Get a token with correct policies for the minion, and the url to the Vault
    service
    uidupki_diru__roleuminionu{0}/minion.pemu4Running on minion, signing token request with key %supublish.runneruvault.generate_tokentargu{0}/master.pemu;Running on master, signing token request for %s with key %susaltutil.runnert	minion_idt	signaturetimpersonated_by_masteru`Failed to get token from master! No result returned - is the peer publish configuration correct?u;Failed to get token from master! Response is not a dict: %suerroru:Failed to get token from master! An error was returned: %suurlutokenuverifyN(t
__grains__RtgettformatR
tdebugtbase64t	b64encodeRtcrypttsign_messageRRRt
exceptionstCommandExecutionErrort
isinstancetdicttNone(Rtpki_dirtprivate_keyRtresult((s4/usr/lib/python2.7/site-packages/salt/utils/vault.pyt_get_token_and_url_from_master'sL

		
	
		cC@s�d�}dtkrWtjdd�dkrWdtkrMtjd�t�S|�SnHttdtd	dktd
dkf�r�|�Stjd�t�SdS(
u
    Get the connection details for calling Vault, from local configuration if
    it exists, or from the master otherwise
    cS@sjtjd�ytddddkrtdjdd�}t�rtjd�djtdd	�}itddd
d
6}dtddkr�tddd|d<ntj|d|d
|�}|j	dkr�d}t
jj|��n|j
�ddtddd<qntddddkr�tdjdd�}t�r�djtdd	�}itdddd6}tj|d|d
|�}|j	dkr�d}t
jj|��n|j
�ddtddd<q�nitdd	d	6tdddd6tdjdd�d6SWn7tk
re}dj|j�}t
jj|��nXdS(Nu0Using Vault connection details from local configuvaultuauthumethoduapproleuverifyu#Vault token expired. Recreating oneu{0}/v1/auth/approle/loginuurlurole_idu	secret_idtjsontverifyi�u3An error occured while getting a token from approleuclient_tokenutokenu
wrapped_tokenu{0}/v1/sys/wrapping/unwrapu
X-Vault-Tokentheadersu-An error occured while unwrapping vault tokenuFMinion has "vault" config section, but could not find key "{0}" within(R
RRRRt_selftoken_expiredRtrequeststposttstatus_codeRRRR$t_wrapped_token_validtKeyErrortmessage(R%turltpayloadtresponseterrmsgR&terr((s4/usr/lib/python2.7/site-packages/salt/utils/vault.pyt_use_local_configds@
	
&	&uvaultu__roleuminionumasteruidu.Contacting master for Vault connection detailsulocalufile_clientumaster_typeudisableN(RRRR
RR#tany(R3((s4/usr/lib/python2.7/site-packages/salt/utils/vault.pytget_vault_connection_s	$$

-
c
K@s�|s|rLt�}|d|d}}d|krL|d|d<qLndj||�}i|d6dd6}tj||d||�}	|r�|	||fS|	Sd	S(
u!
    Make a request to Vault
    utokenuurluverifyu{0}/{1}u
X-Vault-Tokenuapplication/jsonuContent-TypeR&N(R5RR(trequest(
tmethodtresourcettokent	vault_urlt
get_token_urltargst
connectionR.R&R0((s4/usr/lib/python2.7/site-packages/salt/utils/vault.pytmake_request�s	
cC@s�y�tdjdd�}djtdd�}dtddkrHtSitdddd6}tj|d|d	|�}|jd
kr�tStSWn.tk
r�}t	j
jdj|���nXdS(
u>
    Validate the current token exists and is still valid
    uvaultuverifyu{0}/v1/auth/token/lookup-selfuurlutokenuauthu
X-Vault-TokenR&R%i�u'Error while looking up self token : {0}N(RRRRRR(R*RR	RRR(R%R.R&R0R
((s4/usr/lib/python2.7/site-packages/salt/utils/vault.pyR'�s	cC@s�y�tdjdd�}djtdd�}dtddkrHtSitdddd6}tj|d|d	|�}|jd
kr�tStSWn.t	k
r�}t
jjdj|���nXdS(
u>
    Validate the wrapped token exists and is still valid
    uvaultuverifyu{0}/v1/sys/wrapping/lookupuurlutokenuauthu
X-Vault-TokenR&R%i�u*Error while looking up wrapped token : {0}N(
RRRRRR(R)R*RR	RRR(R%R.R&R0R
((s4/usr/lib/python2.7/site-packages/salt/utils/vault.pyR+�s	(t__doc__t
__future__RRRRtloggingR(t
salt.cryptRtsalt.exceptionstsalt.utils.versionst	getLoggert__name__R
tsetLeveltWARNINGRRRR#R5RR>R'R+(((s4/usr/lib/python2.7/site-packages/salt/utils/vault.pyt<module>	s 		8	6	

Zerion Mini Shell 1.0