%PDF- %PDF-
Mini Shell

Mini Shell

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

�
���^c	@@spdZddlmZmZmZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddljjZddlZyddlZWnek
r�eZnXyddlZWnek
r#eZnXyddlZWnek
rMeZnXyddlZWnek
rweZnXyddlZWn#ek
r�ddljjZnXyddlZWnek
r�eZnXyddlm Z Wn?ek
r-yddl!m Z Wnek
r)eZ nXnXddl"Z"ddl#Z"ddl$Z"ddl%Z"ddl&Z"ddl'Z"ddl(Z"ddl)Z"ej*r�ddl+Z+neZ+ej,e-�Z.d�Z/d�Z0d�Z1d�Z2d	�Z3d
�Z4d�Z5ddd
�Z6d�Z7d�Z8de9ddde:ded�Z;dd�Z<de9dddd�Z=dd�Z>dS(u@
Generate the salt thin tarball from the installed python files
i(tabsolute_importtprint_functiontunicode_literalsN(tssl_match_hostnamecO@scd}xGd|fd|fgD]-\}}|j|tjjj|��}qWtjjj|�S(u%
    Return salt-call source, based on configuration.
    This will include additional namespaces for another versions of Salt,
    if needed (e.g. older interpreters etc).

    :dirs: List of directories to include in the system path
    :namespaces: Dictionary of namespace
    :return:
    u�# -*- coding: utf-8 -*-
import os
import sys

# Namespaces is a map: {namespace: major/minor version}, like {'2016.11.4': [2, 6]}
# Appears only when configured in Master configuration.
namespaces = %namespaces%

# Default system paths alongside the namespaces
syspaths = %dirs%
syspaths.append('py{0}'.format(sys.version_info[0]))

curr_ver = (sys.version_info[0], sys.version_info[1],)

namespace = ''
for ns in namespaces:
    if curr_ver == tuple(namespaces[ns]):
        namespace = ns
        break

for base in syspaths:
    sys.path.insert(0, os.path.join(os.path.dirname(__file__),
                                    namespace and os.path.join(namespace, base) or base))

if __name__ == '__main__':
    from salt.scripts import salt_call
    salt_call()
u%dirs%u%namespaces%(treplacetsalttutilstjsontdumpststringutilstto_bytes(tdirst
namespacesttemplatettgttcnt((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pyt_get_salt_callYs%%%cC@stjj|dd�S(u-
    Return the path to the thin tarball
    uthinuthin.tgz(tostpathtjoin(tcachedir((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pyt	thin_path�scC@s(ddddg}tjj|�|kS(uj
    Return True if module is share-able between major Python versions.

    :param mod:
    :return:
    usaltujinja2umsgpackucertifi(RRtbasename(tmodt	shareable((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pyt
_is_shareable�scC@sgtjj|j�jd�ddkrG|jtjj|j��n|j|jjdd��dS(u]
    Add a dependency to the top list.

    :param obj:
    :param is_file:
    :return:
    u.iu__init__u.pycu.pyN(RRRt__file__tsplittappendtdirnameR(t	containertobj((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pyt_add_dependency�s(cC@sAtjjjtjd�}t|�}tjjj|dt�S(u�
    This function is called externally from the alternative
    Python interpreter from within _get_tops function.

    :param extra_mods:
    :param so_mods:
    :return:
    itensure_ascii(	RRRtloadstsystargvtget_topsRtFalse(textrattops((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pytgte�s	c
C@s>tj|�}i}ddddg}g}x
tjjj|pEi�D]�\}}|||<|jd�}d}|s�d}nt|t	t
f�s�d}n|r�tjj|��n|jd�d	kr�t
d
��nHx�|jd�D]�}|d|pd}	|	s&tjd|�q�n�|	jd
�ratjj|	�ratjd||	�q�nK|	jd
�r�tjjtjj|	d��r�tjd||	�q�n|j|	�||kr�|j|j|��q�q�Wdj|�}|r(dj|�}
tj|
�tjj|
��n|||d<qIW|S(ub
    Get top directories for the dependencies, based on external configuration.

    :return:
    ujinja2uyamlutornadoumsgpacku
py-versionu@Alternative Salt library: missing specific locked Python versionu`Alternative Salt library: specific locked Python version should be a list of major/minor versionudependenciesuinheritu#This feature is not yet implementeduu#Module %s has missing configurationu.pyu:Module %s configured with not a file or does not exist: %su__init__.pyu3Module %s is not a Python importable module with %su, uRMissing dependencies for the alternative version in the external configuration: {}N(tcopytdeepcopyRtexttsixt	iteritemstgettNonet
isinstancettupletlistt
exceptionstSaltSystemExittNotImplementedErrortlogtwarningtendswithRRtisfileRRtpoptindextformatterror(tconfigtalternativestrequiredR(tnstcfgtlocked_py_versionterr_msgtdepRtmsg((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pytget_ext_tops�sL(
		"2
	
cC@sfi}|s|SxO|D]G}t||jdg��}|sTtjjd��q|||<qW|S(uZ
    Get namespaces from the existing configuration.

    :param config:
    :return:
    u
py-versionutAn alternative version is configured, but not defined to what Python's major/minor version it should be constrained.(R2R/RR4R5(R?RRBtconstraint_version((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pyt_get_ext_namespaces�s
uc
C@sg}x[tttttttttt	t
tgD]/}|r1tj
d|j�t||�q1q1Wxg|jd�D]}|rw|^qwD]�}|t�kr�|t�kr�y�t|�t�|<tjjt�|j�\}}tjj|�\}}|dkr|j|�n |jtjj||d��Wqttk
rp}	tj|	�tjd|�qtXq�q�Wx�g|jd�D]}|r�|^q�D]g}y.t|�t�|<|jt�|j�Wq�tk
r}	tj|	�tjd|�q�Xq�W|S(u�
    Get top directories for the dependencies, based on Python interpreter.

    :param extra_mods:
    :param so_mods:
    :return:
    uAdding module to the tops: "%s"u,u__init__u.pyu"Unable to import extra-module "%s"uUnable to import so-module "%s"(Rtjinja2tyamlttornadotmsgpacktcertifitsingledispatcht
concurrenttsingledispatch_helpersRt
markupsafet
backports_abcR7tdebugt__name__R Rtlocalstglobalst
__import__RRRtsplitextRRtImportErrort	exceptionR>(
t
extra_modstso_modsR(RtmtmoddirtmodnametbaseR,terr((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pyR%s4/"$
/
cC@s�g}xjtjtj|��D]P\}}t|�}|dkrS|jd�q|dkr|jd�qqWxNtjtj|�p�i�D].\}}|jdj||jd���q�W|jd�tj	j
jtj
j|��S(ub
    Based on the Salt SSH configuration, create a YAML configuration
    for the supported Python interpreter versions. This is then written into the thin.tgz
    archive and then verified by salt.client.ssh.ssh_py_shim.get_executable()

    Note: Minimum default of 2.x versions is 2.7 and 3.x is 3.0, unless specified in namespaces.

    :return:
    iupy2:2:7iupy3:3:0u{}:{}:{}u
py-versionu(t_sixR.R*R+tintRR=R/RRR	R
RtlinesepR(R(textended_cfgtpymaptpy_verRBRC((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pyt_get_supported_py_config*s
%+&
cC@sQtjdtjj|�dddtjj|�d�\}}tj|�|S(u�
    Make sure thintar temporary name is concurrent and secure.

    :param tarname: name of the chosen tarball
    :return: prefixed tarname
    tdirtprefixu.thin-tsuffixi(ttempfiletmkstempRRRRZtclose(ttarnamettfdttmp_tarname((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pyt_get_thintar_prefixCs	
upython2upython3ugzipc	3C@s�
tjdBkr$tjjd��n|dCkrItjd|�d}ntjj	|d�}	tjj
|	�s�tj|	�ntjj	|	d|dkr�d	p�d�}
tjj	|	d
�}tjj	|	d�}tjj	|	d�}
tjj	|	d
�}tjj	|	d�}tjj
j�}tjjj|
d��#}|jtdt|���WdQXtjj|
�r�|s-tjj|�r$tjjj|��}|j�tjjk}WdQX|tkr*tjj|�r*tjjj|��&}|j�ttjd�k}WdQXq*q-t}n|r�y!tjd|
�tj|
�Wq�tk
r�}tjd|
|�tjj|
�r�tjjd|
��q�q�Xq�|
Snt j!r�tjjj"|�s�tjd|�q�dj#|�}t$j%|dt$j&dt�}|j'�\}}|j(dkr�t)d�|j*d�j+�j,d�D��}|dDkr�tjjdj#||j+����q�q�tjd|�tj|�nd}d }i}t-d!|d"|�}||tjj.<t j/r'tjj.dkr'tjjj"|�s1tj||d#�q'd$j#|tjj0j1i|d%6|d&6��}t$j%|dt$j&d't$j&dt�}|j'�\}}|j(dkry#tjj0j2|�}||d#<Wq$t3k
r}tj|d(|�tj4|�q$Xq'tj|d)|�tj|�nt j!rltjj.d*krltjjj"|�smtj||d+�qld$j#|tjj0j1i|d%6|d&6��}t$j%|dt$j&d't$j&dt�}|j'�\}}|j(dkrIy,tjj0j2|j*d��}||d+<Wqit3k
rE}tj|d(|�tj4|�qiXqltj|d)|�tj|�ntjjj|d��#}|jt5d,|d-|��WdQXt6|
�}|dkr�t7j8|d.d/t�} nE|dkr!t9j:|d0d1t;rt9j<pt9j=�} | j| _>nytj?�}!Wntk
rJd}!nXd}"tjd2�x�t jA|�D]�\}#}x�|D]y}$|r�tjjB|$�r�q�ntjjC|$�}%tjjD|$�}&tjj
|&�r�tjE|&�nJtFjG�}"t9j:|&�}'|'jH|"�tjj	|"|%�}$tjE|"�tI|%�rHdpTd3j#|#�}(tjd4|%|(�tjj
|$�s�tjjtjj	|&|%��r�| j>|%d5tjj	|(|%��q�q�nx
tjjjJ|%d6t�D]�\})}*}+x�|+D]�},|,jKdE�s�|j>tjj	|)|,��tjj	|(|)|,�}-tL| d9�r�	y)| jMtjj	|(|)|,��d}-Wq�	tNk
r�	tjd:|-�q�	Xn|-r�	| j>tjj	|)|,�d5|-�q�	q�q�Wq�W|"dk	r�tOjP|"�d}"q�q�WqnW|r
tjd;�nxEt jAtQ|��D].\}.}/|/jRd<�g|/jRd=�}|/jRd>�\}0}1x�|D]�}$tjjC|$�tjjD|$�}%}&tjE|&�tI|%�r�
dp�
d?j#|0�}(tjd@|%|.|(�tjj
|$�sEtjjtjj	|&|%��ru
| j>|%d5tjj	|.|(|%��qu
qu
nxtjjjJ|%d6t�D]�\})}*}+x�|+D]�},|,jKdF�sw|j>tjj	|)|,��tjj	|.|(|)|,�}-tL| d9�r"y)| jMtjj	|(|)|,��d}-Wq"tNk
rtjd:|-�q"Xn|-rP| j>tjj	|)|,�d5|-�qPqwqwWqaWqu
Wq.
WtjE|	�tjjj|dA��}|jtjj�WdQXtjjj|dA�� }|jttjj.��WdQXtjjj|dA��}|j|jS��WdQXtjEtjjD|��x*d
ddd
dgD]}2| j>|2�q>
W|!rk
tjE|!�n| jT�tOjU||
�|
S(Gu�
    Generate the salt-thin tarball and print the location of the tarball
    Optional additional mods to include (e.g. mako) can be supplied as a comma
    delimited string.  Permits forcing an overwrite of the output file as well.

    CLI Example:

    .. code-block:: bash

        salt-run thin.generate
        salt-run thin.generate mako
        salt-run thin.generate mako,wempy 1
        salt-run thin.generate overwrite=1
    iiu=The minimum required python version to run salt-ssh is "2.6".ugzipuzipuCUnknown compression type: "%s". Falling back to "gzip" compression.uthinuthin.utgzuversionu.thin-gen-py-versionu	salt-callusupported-versionsu
code-checksumuwbupyallNiuRemoving %s archive fileu Error while removing %s file: %su/Unable to remove %s file. See logs for details.u:%s binary does not exist. Will not detect Python 2 versionuF{} -c 'import sys;sys.stdout.write("%s.%s\n" % sys.version_info[:2]);'tstdouttshellcs@s|]}t|�VqdS(N(Re(t.0tn((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pys	<genexpr>�suutf-8u.u�The minimum required python version to run salt-ssh is "2.6".The version reported by "{0}" is "{1}". Please try "salt-ssh --python2-bin=<path-to-python-2.6-binary-or-higher>".uUnable to detect %s versionu$Failed %s tops for Python binary %s.uI%s binary does not exist. Will not attempt to generate tops for Python %sR]R^u3u9{0} -c 'import salt.utils.thin as t;print(t.gte())' '{1}'u
extra_modsuso_modststderruparsingu
collectingiu2R(Rguw:gztdereferenceuwtcompressionu7Packing default libraries based on current Salt versionupy{}u Packing "%s" to "%s" destinationtarcnametfollowlinksu.pycu.pyougetinfou&ZIP: Unable to add "%s" with "getinfo"u4Packing libraries based on alternative Salt versionsupathudependenciesu
py-versionupy{0}u/Packing alternative "%s" to "%s/%s" destinationuw+(ii(ugzipuzip(ii(u.pycu.pyo(u.pycu.pyo(VR#tversion_infoRR4R5R7R8RRRtisdirtmakedirsRt	hashutilstDigestCollectortfilestfopentwriteRRJR:treadtversiont__version__R&tstrtTrueRUtremovetOSErrorR>texistsRdtPY3twhichR=t
subprocesstPopentPIPEtcommunicatet
returncodeR2tdecodetstripRR%tmajortPY2RRR"t
ValueErrorR\RjRtttarfiletopentzipfiletZipFiletzlibtZIP_DEFLATEDt
ZIP_STOREDtaddtgetcwdR0R.tisabsRRtchdirRntmkdtempt
extractallRtos_walkR9thasattrtgetinfotKeyErrortshutiltrmtreeRHR/tdigestRptmove(3RR]t	overwriteR^tpython2_bintpython3_bintabsonlytcompressRgtthindirtthintartthinvert	pythinvert	salt_callt	pymap_cfgt
code_checksumtdigest_collectortfp_tfh_texctpy_shell_cmdtcmdRut_tpy2_versionttops_failure_msgtpython_check_msgttops_py_version_mappingR(RyRcttmp_thintarttfpt	start_dirttempdirRittopRbttop_dirnameteggtsite_pkg_dirtrootRR�tnameR|RBRCtpy_ver_majortpy_ver_minortfname((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pytgen_thinSsb	+"+		.	)')'"*





!!%+


0
"
%
!!(+


8

usha1cC@s�t|�}tjj|dd�}tjj|�rutjjj|d��"}dj	|j
�j��}WdQXnd}|tjjj
||�fS(u9
    Return the checksum of the current thin tarball
    uthinu
code-checksumuru'{0}'Nu'0'(R�RRRR:RRR�R�R=R�R�R�tget_hash(RtformR�tcode_checksum_pathtfhR�((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pytthin_sum?s$c"|C@s�tjj|d�}tjj|�s7tj|�ntjj|d�}tjj|d�}tjj|d�}	tjj|d�}
tjjj|
d��}|j	t
��WdQXtjj|�r�|s�tjj|�r}tjjj|��}|j�tj
jk}WdQX|tkr�tjj|	�r�tjjj|	��&}|j�ttjd�k}WdQXq�q�t}n|r�ytj|�Wq�tk
r�q�Xq�|Sntjrt|d	}
tj|
d
tjdt�}|j�\}}|jdkr�td�|jd
�j�j d�D��}|d�krqtj!j"dj#||j����qqq�n$tjd�kr�tj!j"d��ni}t$d|d|�}tj%r�||d<n
||d<tj%r�tjddkr�|dj#tjj&j'i|d6|d6��}
tj|
d
tjdtjdt�}|j�\}}|jdkr�y#tjj&j(|�}||d<Wq�t)k
r�q�Xq�ntjr~tjddkr~|dj#tjj&j'i|d6|d6��}
tj|
d
tjdtjdt�}|j�\}}|jdkr~y,tjj&j(|jd
��}||d<Wq{t)k
rwq{Xq~nt*j+|ddt�}ytj,�}Wntk
r�d}nXd}d�}x�tj.|�D]�\}}x�|D]�}tjj/|�}tjj0|�}tjj|�r;tj1|�nJt2j3�}t4j5|�}|j6|�tjj||�}tj1|�tjj|�s�|j7|d�tjjd�j#|�|��q�nx�tjjj8|d�t�D]�\}}} x�| D]�}!|!j9d��rq�n|j:d��rEtjj||!�|krEq�n|j7tjj||!�d�tjjd�j#|�||!��q�Wq�W|dk	r�t;j<|�d}q�q�Wq�Wtj1|�|j7d�tjjj|d���}|j	tj
j�WdQXtjjj|	d���!}|j	ttjd��WdQXtj1tjj0|��|j7d�|j7d�|r�tj1|�n|j=�|S(�u�
    Generate the salt-min tarball and print the location of the tarball
    Optional additional mods to include (e.g. mako) can be supplied as a comma
    delimited string.  Permits forcing an overwrite of the output file as well.

    CLI Example:

    .. code-block:: bash

        salt-run min.generate
        salt-run min.generate mako
        salt-run min.generate mako,wempy 1
        salt-run min.generate overwrite=1
    uminumin.tgzuversionu.min-gen-py-versionu	salt-calluwbNiuj -c 'from __future__ import print_function; import sys; print("{0}.{1}".format(*(sys.version_info[:2])));'RuRvcs@s|]}t|�VqdS(N(Re(RwRx((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pys	<genexpr>�suutf-8u.iiu�The minimum required python version to run salt-ssh is "2.6".The version reported by "{0}" is "{1}". Please try "salt-ssh --python2-bin=<path-to-python-2.6-binary-or-higher>".u=The minimum required python version to run salt-ssh is "2.6".R]R^u2u3u� -c 'import sys; import json; import salt.utils.thin; print(json.dumps(salt.utils.thin.get_tops(**(json.loads(sys.argv[1]))), ensure_ascii=False)); exit(0);' '{0}'u
extra_modsuso_modsRyiu� -c 'from __future__ import print_function; import sys; import json; import salt.utils.thin; print(json.dumps(salt.utils.thin.get_tops(**(json.loads(sys.argv[1]))), ensure_ascii=False)); exit(0);' '{0}'uw:gzRzusalt/__init__.pyu
salt/utilsusalt/utils/__init__.pyusalt/utils/atomicfile.pyusalt/utils/validateusalt/utils/validate/__init__.pyusalt/utils/validate/path.pyusalt/utils/decoratorsu!salt/utils/decorators/__init__.pyusalt/utils/cache.pyusalt/utils/xdg.pyusalt/utils/odict.pyusalt/utils/minions.pyusalt/utils/dicttrim.pyusalt/utils/sdb.pyusalt/utils/migrations.pyusalt/utils/files.pyusalt/utils/parsers.pyusalt/utils/locales.pyusalt/utils/lazy.pyusalt/utils/s3.pyusalt/utils/dictupdate.pyusalt/utils/verify.pyusalt/utils/args.pyusalt/utils/kinds.pyusalt/utils/xmlutil.pyusalt/utils/debug.pyusalt/utils/jid.pyusalt/utils/openstacku salt/utils/openstack/__init__.pyusalt/utils/openstack/swift.pyusalt/utils/asynchronous.pyusalt/utils/process.pyusalt/utils/jinja.pyusalt/utils/rsax931.pyusalt/utils/context.pyusalt/utils/minion.pyusalt/utils/error.pyusalt/utils/aws.pyusalt/utils/timed_subprocess.pyusalt/utils/zeromq.pyusalt/utils/schedule.pyusalt/utils/url.pyusalt/utils/yamlencoding.pyusalt/utils/network.pyusalt/utils/http.pyusalt/utils/gzip_util.pyusalt/utils/vt.pyusalt/utils/templates.pyusalt/utils/aggregation.pyusalt/utils/yaml.pyusalt/utils/yamldumper.pyusalt/utils/yamlloader.pyusalt/utils/event.pyusalt/utils/state.pyusalt/serializersusalt/serializers/__init__.pyusalt/serializers/yamlex.pyusalt/template.pyusalt/_compat.pyusalt/loader.pyusalt/clientusalt/client/__init__.pyusalt/extusalt/ext/__init__.pyusalt/ext/six.pyusalt/ext/ipaddress.pyusalt/version.pyusalt/syspaths.pyu
salt/defaultsusalt/defaults/__init__.pyusalt/defaults/exitcodes.pyusalt/renderersusalt/renderers/__init__.pyusalt/renderers/jinja.pyusalt/renderers/yaml.pyusalt/modulesusalt/modules/__init__.pyusalt/modules/test.pyusalt/modules/selinux.pyusalt/modules/cmdmod.pyusalt/modules/saltutil.pyusalt/minion.pyusalt/pillarusalt/pillar/__init__.pyusalt/textformat.pyusalt/logusalt/log/__init__.pyusalt/log/handlersusalt/log/handlers/__init__.pyusalt/log/mixins.pyusalt/log/setup.pyusalt/cliusalt/cli/__init__.pyusalt/cli/caller.pyusalt/cli/daemons.pyusalt/cli/salt.pyusalt/cli/call.pyusalt/fileserverusalt/fileserver/__init__.pyusalt/transportusalt/transport/__init__.pyusalt/transport/client.pyusalt/exceptions.pyusalt/grainsusalt/grains/__init__.pyusalt/grains/extra.pyusalt/scripts.pyu
salt/state.pyusalt/fileclient.pyu
salt/crypt.pyusalt/config.pyusalt/beaconsusalt/beacons/__init__.pyusalt/payload.pyusalt/outputusalt/output/__init__.pyusalt/output/nested.pyR|upy{0}R}u.pycu.pyousaltuw+(ii(ii(vusalt/__init__.pyu
salt/utilsusalt/utils/__init__.pyusalt/utils/atomicfile.pyusalt/utils/validateusalt/utils/validate/__init__.pyusalt/utils/validate/path.pyusalt/utils/decoratorsu!salt/utils/decorators/__init__.pyusalt/utils/cache.pyusalt/utils/xdg.pyusalt/utils/odict.pyusalt/utils/minions.pyusalt/utils/dicttrim.pyusalt/utils/sdb.pyusalt/utils/migrations.pyusalt/utils/files.pyusalt/utils/parsers.pyusalt/utils/locales.pyusalt/utils/lazy.pyusalt/utils/s3.pyusalt/utils/dictupdate.pyusalt/utils/verify.pyusalt/utils/args.pyusalt/utils/kinds.pyusalt/utils/xmlutil.pyusalt/utils/debug.pyusalt/utils/jid.pyusalt/utils/openstacku salt/utils/openstack/__init__.pyusalt/utils/openstack/swift.pyusalt/utils/asynchronous.pyusalt/utils/process.pyusalt/utils/jinja.pyusalt/utils/rsax931.pyusalt/utils/context.pyusalt/utils/minion.pyusalt/utils/error.pyusalt/utils/aws.pyusalt/utils/timed_subprocess.pyusalt/utils/zeromq.pyusalt/utils/schedule.pyusalt/utils/url.pyusalt/utils/yamlencoding.pyusalt/utils/network.pyusalt/utils/http.pyusalt/utils/gzip_util.pyusalt/utils/vt.pyusalt/utils/templates.pyusalt/utils/aggregation.pyusalt/utils/yaml.pyusalt/utils/yamldumper.pyusalt/utils/yamlloader.pyusalt/utils/event.pyusalt/utils/state.pyusalt/serializersusalt/serializers/__init__.pyusalt/serializers/yamlex.pyusalt/template.pyusalt/_compat.pyusalt/loader.pyusalt/clientusalt/client/__init__.pyusalt/extusalt/ext/__init__.pyusalt/ext/six.pyusalt/ext/ipaddress.pyusalt/version.pyusalt/syspaths.pyu
salt/defaultsusalt/defaults/__init__.pyusalt/defaults/exitcodes.pyusalt/renderersusalt/renderers/__init__.pyusalt/renderers/jinja.pyusalt/renderers/yaml.pyusalt/modulesusalt/modules/__init__.pyusalt/modules/test.pyusalt/modules/selinux.pyusalt/modules/cmdmod.pyusalt/modules/saltutil.pyusalt/minion.pyusalt/pillarusalt/pillar/__init__.pyusalt/textformat.pyusalt/logusalt/log/__init__.pyusalt/log/handlersusalt/log/handlers/__init__.pyusalt/log/mixins.pyusalt/log/setup.pyusalt/cliusalt/cli/__init__.pyusalt/cli/caller.pyusalt/cli/daemons.pyusalt/cli/salt.pyusalt/cli/call.pyusalt/fileserverusalt/fileserver/__init__.pyusalt/transportusalt/transport/__init__.pyusalt/transport/client.pyusalt/exceptions.pyusalt/grainsusalt/grains/__init__.pyusalt/grains/extra.pyusalt/scripts.pyu
salt/state.pyusalt/fileclient.pyu
salt/crypt.pyusalt/config.pyusalt/beaconsusalt/beacons/__init__.pyusalt/payload.pyusalt/outputusalt/output/__init__.pyusalt/output/nested.py(u.pycu.pyo(>RRRRR�RRR�R�R�RR:R�R�R�R&R�R#R~R�R�R�RdR�R�R�R�R�R�R2R�R�RR4R5R=R%R�RRR"R�R�R�R�R0R.RRR�RnR�R�R�R�R�R�R9t
startswithR�R�Rp("RR]R�R^R�R�tmindirtmintartminvertpyminverR�R�R�R�R�RuR�R�R�R(RyR�R�R�t	min_filesRiR�RbR�R�R�RR�R�((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pytgen_minNs�+	
	
.			

	''

	''






++
**


 


cC@s"t|�}tjjj||�S(u9
    Return the checksum of the current thin tarball
    (R�RRR�R�(RR�R�((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pytmin_sumgs(?t__doc__t
__future__RRRR*tloggingRR�R�R#R�RnR�RKRLRNtsalt.ext.sixR,R-RdRMR�R[R0RORPRRRTtsalt.ext.backports_abcRSt	backportsRtsalt.extRtsalt.utils.filestsalt.utils.hashutilstsalt.utils.jsontsalt.utils.pathtsalt.utils.stringutilstsalt.exceptionstsalt.versionR�RQt	getLoggerRVR7RRRR R)RHRJR%RjRtR&R�R�R�R�R�(((s3/usr/lib/python2.7/site-packages/salt/utils/thin.pyt<module>s�












		-					4	(				�	�

Zerion Mini Shell 1.0