Viewing File: /usr/lib/python2.7/site-packages/cloudinit/gpg.pyo

ó
oBú]c@sodZddlmZddlmZddlZejeƒZd„Z	dd„Z
d„Zd	d
„ZdS(s0gpg.py - Collection of gpg key related functionsiÿÿÿÿ(tlog(tutilNcCsay+tjddd|gdtƒ\}}Wn/tjk
r\}tjd||ƒd}nX|S(s*Export gpg key, armoured key gets returnedtgpgs--exports--armourtcaptures&Failed to export armoured key "%s": %sN(RtsubptTruetProcessExecutionErrortLOGtdebugtNone(tkeytarmourt_terror((s1/usr/lib/python2.7/site-packages/cloudinit/gpg.pyt
export_armours
ic	Cs$tjd||ƒdd|d|g}|d	kr>g}nd}d	}t|ƒ}xÇtr|d7}y1tj|dtƒtjd|||ƒd	SWntjk
r¸}|}nXy3t|ƒ}tjd
|j	|ƒt
j|ƒWqYtk
rt
d||||fƒ‚qYXqYWd	S(sÁReceive gpg key from the specified keyserver.

    Retries are done by default because keyservers can be unreliable.
    Additionally, there is no way to determine the difference between
    a non-existant key and a failure.  In both cases gpg (at least 2.2.4)
    exits with status 2 and stderr: "keyserver receive failed: No data"
    It is assumed that a key provided to cloud-init exists on the keyserver
    so re-trying makes better sense than failing.

    @param key: a string key fingerprint (as passed to gpg --recv-keys).
    @param keyserver: the keyserver to request keys from.
    @param retries: an iterable of sleep lengths for retries.
                    Use None to indicate no retries.s&Importing key '%s' from keyserver '%s'Rs--keyserver=%ss--recv-keysiiRs/Imported key '%s' from keyserver '%s' on try %dNs6Import failed with exit code %d, will try again in %sss@Failed to import key '%s' from keyserver '%s' after %d tries: %s(RRR	titerRRRRtnextt	exit_codettimetsleept
StopIterationt
ValueError(	R
t	keyservertretriestcmdttrynumR
tsleepstetnaplen((s1/usr/lib/python2.7/site-packages/cloudinit/gpg.pytrecv_keys4		
	



cCsVy&tjdddd|gdtƒWn)tjk
rQ}tjd||ƒnXdS(s0Delete the specified key from the local gpg ringRs--batchs--yess
--delete-keysRsFailed delete key "%s": %sN(RRRRRtwarning(R
R
((s1/usr/lib/python2.7/site-packages/cloudinit/gpg.pyt
delete_keyHs
skeyserver.ubuntu.comcCsrt|ƒ}|snzKy t|d|ƒt|ƒ}Wn$tk
r[tjd|ƒ‚nXWdt|ƒXn|S(sget gpg keyid from keyserverRsFailed to obtain gpg key %sN(RRRRt	exceptionR(tkeyidRR((s1/usr/lib/python2.7/site-packages/cloudinit/gpg.pyt
getkeybyidQs
(ii(
t__doc__t	cloudinitRtloggingRRt	getLoggert__name__RRRRR"(((s1/usr/lib/python2.7/site-packages/cloudinit/gpg.pyt<module>s	*		
Back to Directory File Manager