%PDF- %PDF-
Mini Shell

Mini Shell

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

�
���^c@@sUdZddlmZmZmZddlZddlZddlZddlZddl	Z	ddl
Z
yddlZddlZWne
k
r�nXddlZddlZddlZddlZddljZddlmZddlmZddlmZddlmZddlmZddlZddlj j!Z!ddl"Zddl#Zddl$Zddl%Ze	j&e'�Z(d	d
ddd
ddfZ)de*fd��YZ+de+fd��YZ,de+fd��YZ-de+fd��YZ.de+fd��YZ/de0fd��YZ1de0fd��YZ2de2fd��YZ3dS( uf
This module provides the point of entry to SPM, the Salt Package Manager

.. versionadded:: 2015.8.0
i(tabsolute_importtprint_functiontunicode_literalsN(tsix(tstring_types(tinput(tfilter(tcompile_templateucudugulurusumtSPMExceptioncB@seZdZRS(u-
    Base class for SPMClient exceptions
    (t__name__t
__module__t__doc__(((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR5stSPMInvocationErrorcB@seZdZRS(u8
    Wrong number of arguments or other usage error
    (R	R
R(((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR;stSPMPackageErrorcB@seZdZRS(u;
    Problem with package file or package installation
    (R	R
R(((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR
AstSPMDatabaseErrorcB@seZdZRS(u%
    SPM database not found, etc
    (R	R
R(((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRGstSPMOperationCanceledcB@seZdZRS(u/
    SPM install or uninstall was canceled
    (R	R
R(((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRMst	SPMClientcB@s[eZdZd#d�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zed�Zd
�Zd�Zd#d�Zd#d#d#d�Zd�Zd�Zd#d�Zd�Zd�Zd�Zd�Zd�Zejd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d �Z&d!�Z'd"�Z(RS($u
    Provide an SPM Client
    cC@s�||_|s6tjjtjjtjd��}n||_	|j	j
dd�|_|j	j
dd�|_|j
�|j�d|_d|_|j�dS(Nuspmuspm_db_providerusqlite3uspm_files_providerulocal(tuitsalttconfigt
spm_configtostpathtjointsyspathst
CONFIG_DIRtoptstgettdb_provt
files_provt_prep_pkgdbt_prep_pkgfilestNonetdb_connt
files_connt_init(tselfRR((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyt__init__Ws			

		cC@stjj|j�|_dS(N(RtloadertpkgdbR(R$((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRfscC@stjj|j�|_dS(N(RR&tpkgfilesR(R$((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRiscC@s@|js|jd�|_n|js<|jd�|_ndS(Nuinit(R!t
_pkgdb_funR"t
_pkgfiles_fun(R$((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR#ls		cC@s|jr|jj�ndS(N(R!tclose(R$((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyt_closers	cC@s�|d}yJ|dkr)|j|�n*|dkrE|j|�n|dkra|j|�n�|dkr}|j|�n�|dkr�|j|�n�|dkr�|j|�n�|dkr�|j|�n�|d	kr�|j|�nf|d
kr	|j|�nJ|dkr%|j	|�n.|dkr>|j
�ntd
j|���Wn,t
k
r�}|jjtj|��nXdS(u%
        Run the SPM command
        iuinstallulocalurepouremoveubuilduupdate_repoucreate_repoufilesuinfoulistucloseuInvalid command '{0}'N(t_installt_localt_repot_removet_buildt_download_repo_metadatat_create_repot_list_filest_infot_listR,RtformatRRterrorRt	text_type(R$targstcommandtexc((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pytrunvs6

cO@say)tt|j|j�|�||�SWn1tk
r\|jdj|j|�||�SXdS(Nu{0}.{1}(tgetattrR'RtAttributeErrorR7(R$tfuncR:tkwargs((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR)�s)
cO@say)tt|j|j�|�||�SWn1tk
r\|jdj|j|�||�SXdS(Nu{0}.{1}(R>R(RR?R7(R$R@R:RA((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR*�s)
cC@s�|jd�|d}|dkr3|j|�nM|dkrO|j|�n1|dkrk|j|�ntdj|���dS(u(
        Process local commands
        iupackagesufilesureposuInvalid list command '{0}'N(tpopt_list_packagesR4t
_repo_listRR7(R$R:R;((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR6�s

cC@s�|jd�|d}|dkr3|j|�nM|dkrO|j|�n1|dkrk|j|�ntdj|���dS(u(
        Process local commands
        iuinstallufilesuinfouInvalid local command '{0}'N(RBt_local_installt_local_list_filest_local_infoRR7(R$R:R;((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR.�s

cC@s�|jd�|d}|dkr3|j|�n�|dkrO|j|�no|dkrq|j|dt�nM|dkr�|j|�n1|dkr�|j|�ntdj|���d	S(
u'
        Process repo commands
        iulistupackagesusearchtsearchuupdateucreateuInvalid repo command '{0}'N(RBRDt_repo_packagestTrueR2R3RR7(R$R:R;((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR/�s

c	C@s�g}|j�}x�|D]}xv||dD]f}|d|kr.||d|dd}||d|dd}|j||||f�q.q.WqWxFt|�D]8}|jjdj|d|d|d|d	��q�W|S(
u@
        List packages for one or more configured repos
        upackagesiuinfouversionureleaseu{0}	{1}-{2}	{3}iii(t_get_repo_metadatatappendtsortedRtstatusR7(	R$R:RHtpackagest
repo_metadatatrepotpkgtversiontrelease((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRI�s
$	-cC@s1|j�}x|D]}|jj|�qWdS(uv
        List configured repos

        This can be called either as a ``repo`` command or a ``list`` command
        N(RKRRN(R$R:RPRQ((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRD�s
c 
C@s�t|�dkr!td��n|jj�}d|d<tjjd|�|_tjj|jd�|_tj	j
|j�}|d}i}g}g}g}xe|D]]}	|	jd�r�|jd	|	�r�|	j
d
�}
tjj
d
j|
d ��}
|
d}tj|	d
�}|jdj|��}
tjjj|
�}|	||<|jd|d|	d|�\}}}|j|�|j|�|j|�|j�q	tdj|	���q�|jd|	�\}}}|j|�|j|�|j|�q�Wttt|��}|rM|jjdjdj|���nttt|��}|r�|jjdjdj|���nttt|��}djdj|��}|jds�|jj|�n|j �}i}x�|D]�}||kr|j!|||�q�x�|D]�}||}||dkr#t"}|d|dd}|d|dd}|dd}||kr,|||dkr|||dkr�t#}q)|||dkr)||dj$d�r	|j$d�st#}qq	q)q2|||dkr2t#}q2nt#}|t#kr�tjj|jd|�}d j|dd|d|d!�}tjj||d|d!�}i|d6|d6|d6|d"6|d#6||<q�q#q#Wq�Wx�|D]�}||d}||d"}||d#}tjj%|�s5tj&|�n|j$d�ri|j'dd$�}t(j)||�q�tjj*j+|d%��$}|j,|j-||d��Wd&QXq�Wx,|D]$}||d#}|j!||�q�Wd&S('u/
        Install a package from a repo
        iuA package must be specifiedulocalufile_clienttmoptsu	conf_fileiu.spmupath_existsu-i����i����ur:bz2u{0}/FORMULAtpkg_nametpkg_filetformula_defuPackage file {0} not foundu.The following dependencies are optional:
	{0}
u
	u1The following dependencies are recommended:
	{0}
uInstalling packages:
	{0}
u
assume_yesupackagesuinfouversionureleaseuurlusourceufile://u
spm_cache_diru{0}/{1}ufilenameudest_diru	dest_fileuuwN(.tlenRRtcopyRtclienttCallertcallertget_local_clienttcachetCachetendswithR*tsplitRRRttarfiletopentextractfileR7tutilstyamlt	safe_loadt_check_all_depstextendR+tsetRRRNtconfirmRKt_install_indv_pkgtFalseRJt
startswithtexiststmakedirstreplacetshutiltcopyfiletfilestfopentwritet_query_http( R$R:tcaller_optsR_ROtfile_maptoptionaltrecommendedt
to_installRRtcompsRVtformula_tartformula_refRXtto_top_tre_tmsgRPtdl_listtpackageRQt	repo_infot
dl_packagetrepo_vertrepo_reltrepo_urlt
cache_pathtdl_urltout_filetoutf((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR-�s�




	









		
		
'
cC@s2t|�dkr!td��n|j|�dS(u/
        Install a package from a file
        iu A package file must be specifiedN(RYRR-(R$R:RV((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRE~sc
C@s�|r1tjj|�r1tdj|���n|j�|_|s�xg|jD]Y}t|j|dt�svqPn||j|dkrP|j|d|d}qPqPWn|s�tdj|���n|j	d||j
�}g}|dks|jdr|j
|�n6|dk	rK|jdrKtdj|d���ng}g}d|ks{d	|ks{d
|kri|_xZ|jD]O}t|j|dt�s�q�nx&|j|dD]}	||j|	<q�Wq�W|j|�\}
}}}
t|�dkr6tdj|dd
j|����n|r�|j|�x[|D]P}|j	d|d�}|}t|t�r�dj|�}n|j
|�qPWn|
r|j|
�x[|
D]P}|j	d|d�}|}t|t�rdj|�}n|j
|�q�Wn|
r|j|
�xN|
D]C}|j	d|d�}|}t|t�r2dj|�}q2q2Wqn|||fS(uP
        Starting with one package, check all packages for dependencies
        uPackage file {0} not foundupackagesuinfouUnable to read formula for {0}uforceu3Package {0} already installed, not installing againunameudependenciesuoptionalurecommendediu?Cannot install {0}, the following dependencies are needed:

{1}u
u{0} [Installed]N(RRRpRR7RKRPt
isinstancetdictR)R!R RRLR
t
avail_pkgst
_resolve_depsRYRRj(R$RVRWRXRQtpkg_infotpkgs_to_installtoptional_installtrecommended_installRRtneedstunavailR{R|tdep_pkgR�((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRi�sp#$	





cC@so|jjdj|��tj|d�}|jdj|��}tjjj	|�}x2d)D]*}||kr_t
dj|���q_q_W|j�}|jd	|||�}|r�|j
d
r�t
dj|dj|����n|jd
|||j�d|kr?|j|d|�}	|jjdd|	�}
nd|kr�tjd�|j|dd|�}	|dd}|jjd|ddddd|djdd�d|j
dd|	�}
ntjjj�r9tjjj�}}
tjjj|�}|j
jd|�}|j
jd|�}n\|j
jdtj��}|j
jdtj ��}t!j"|�d}t#j$|�d}
x�|D]�}||_%||_&||_'|
|_(|jd|||||j)�}|t*k	r�|j+�rd }n[|j,d!j|j-|�tj.�t/j0�}|jd"tj1j||j-�||j)�}|jd#|||||j�q�q�Wd$|kr�tjd%�|j|d$|�}	|jjdd|	�nd&|kratjd'�|j|d&d|�}	|d&d}|jjd|d&dddd|d&jdd�d|j
dd|	�}
n|j2�d(S(*u0
        Install one individual package
        u... installing {0}ur:bz2u{0}/FORMULAuversionureleaseusummaryudescriptionu&Invalid package: the {0} was not founducheck_existinguforceu.Not installing {0} due to existing files:

{1}u
uregister_pkgupre_local_stateu
state.hightdatau
pre_tgt_stateuExecuting pre_tgt_state scriptudatautgtttgttfunttgt_typeutgt_typeuglobttimoututimeoutuspm_uiduspm_gidiuinstall_fileuuInstalling file {0} to {1}u	hash_fileu
register_fileupost_local_stateu!Executing post_local_state scriptupost_tgt_stateuExecuting post_tgt_state scriptN(uversionureleaseusummaryudescription(3RRNR7RcRdReRRfRgRhR
t
getmembersR*RRR)R!t_renderR]tcmdtlogtdebugR[trun_jobRtplatformt
is_windowst
win_functionstget_current_usertget_sid_from_nameRtgetuidtgetgidtpwdtgetpwuidtgrptgetgrgidtuidtgidtunametgnameR"Rntisdirt_verbosetnamettracethashlibtsha1RR+(R$RVRWRR�RXtfieldt	pkg_filestexisting_filest	high_datatretR�R�R�t	uname_sidR�R�tmembertout_pathtdigestt	file_hash((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRm�s�
	


						"		


cC@sb|jdj|j�|d�}t|t�s;i}ni}g}d|krp|ddkrpd|d<nx�|jdd�jd�D]s}|j�}|s�q�n|jdj|j�|�r�q�n||j	kr�|j	|||<q�|j
|�q�W|jdd�jd�}|jdd�jd�}g}|j�}	xt|	�dkrQt
tj|	��}|	|=||kr�qNn|j
|�|jj||i�}
|
jd	i�}|j|i�jd
i�}|j|�\}
}}}|j|
�tt||��}tt||��}tt||��}qNW||||fS(uk
        Return a list of packages which need to be installed, to resolve all
        dependencies
        u{0}.infounameudependenciesuu,uoptionalurecommendediupackagesuinfoN(R'R7RR�R�R RRbtstripR�RLRZRYtnextRtiterkeysRPR�tupdateRMRk(R$RXR�tcan_hastcant_hastdepR{R|t	inspectedt
to_inspectt
repo_contentst
repo_packagestdep_formulatalso_cant	also_canttopt_deptrec_dep((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR�9sF#	
"

cC@seg}tjj|jd�r6|j|jd�nxitjjjdj|jd��D]B\}}}x0|D](}|j	d�s�qrn|j|�qrWq\Wx�|D]�}dj|jd|�}tjj
j|��~}	tjjj
|	�}
x_|
D]W}|
|jdt�tkr$q�n|dk	rB||krBq�n|||
|�q�WWdQXq�WdS(uv
        Traverse through all repo files and apply the functionality provided in
        the callback to them
        uspm_repos_configu{0}.du.repou	{0}.d/{1}uenabledN(RRRpRRLRRftos_walkR7RaRuRvRgRhRRJRnR (R$tcallbackt	repo_namet
repo_filestdirpathtdirnamest	filenamest	repo_filet	repo_pathtrpht	repo_dataRQ((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyt_traverse_reposls$5


c	C@srd}d}y�d|kr�yUd|krVtj|dtd|dd|d�}ntdj|d���Wq�tk
r�}|jjtj	|��q�Xntj|dt�}Wn,tk
r�}|jjtj	|��nXyX|r2d|kr t
jjj
|jdd	��}q>|jd�}ntd
��Wn,tk
rm}|jjtj	|��nX|S(u)
        Download files via http
        uusernameupasswordttexttusernametpasswordu9Auth defined, but password is not set for username: '{0}'uSPM-METADATAutextu{}u1Response is empty, please check for Errors above.N(R thttptqueryRJRR7RR8RR9RRfRgRhR(R$tdl_pathR�R�tresponseR<((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRx�s4
	 $c@sgtjj�j�jd����fd�}t|�dkrM|dnd}�j||�dS(u<
        Connect to all repos and download metadata
        u
spm_cache_dirc@s�dj|d�}|jd�rm|jdd�}tjjj|d��}tjjj|�}WdQXn�j	||�}�j
d||�dS(Nu{0}/SPM-METADATAuurlufile://uuru.(R7RoRrRRfRuRvRgRhRxtstore(RQR�R�trpmtmetadata(R_R$(s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyt_update_metadata�siN(RR_R`RRYR R�(R$R:R�R�((R_R$s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR2�s"c@sKtjj�j�jd��i����fd�}�j|��S(u-
        Return cached repo metadata
        u
spm_cache_dirc@s]�jd|�dkr5tjd��ji�ni|d6�jd|�d6�|<dS(Nu.uUpdating repo metadatauinfoupackages(tupdatedR R�twarningR2tfetch(RQR�(R_R�R$(s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyt_read_metadata�s
(RR_R`RR�(R$R�((R_R�R$s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRK�s


c
C@sit|�dkr!td��n|ddkr@tj�}n
|d}g}i}xWtjjj|�D]@\}}}x.|D]&}|jd�s�q�ndj	||�}	t
j|	�s�q�n|jd�}
dj
|
d �}t
j|	d	�}|jd
j	|��}
tjjj|
j��}t}||krR||d}|}t|d�t|d�kr�t|d
�t|d
�kr�t}q�n)t|d�t|d�kr�t}n|tkrtjd||d|d
|d|d
�|j||d�qRtjd||d|d
|d|d
�|j|�n|tkr�tjd|d|d|d
�i|j�d6||<|||d<q�q�WqlWdj	|�}tjjj|d��/}tjjj||dddtdt�WdQXtjd|�xJ|D]B}|jddkrKtjd|�q|jddkr�tjjd�s�y!tjd�tjd |�Wq�t k
r�tj!d!�q�Xnyt"j#|d�Wqat t$fk
r�tj!d"|�qaXq|jdd#kry!tj%|�tjd$|�Wqat k
rMtj!d%|�qat$k
r]qaXqqWdS(&u�
        Scan a directory and create an SPM-METADATA file which describes
        all of the SPM files in that directory.
        iu'A path to a directory must be specifiediu.u.spmu{0}/{1}u-i����ur:bz2u{0}/FORMULAuinfouversionureleaseu2%s %s-%s had been added, but %s-%s will replace itufilenameu0%s %s-%s has been found, but is older than %s-%suadding %s-%s-%s to the repounameu{0}/SPM-METADATAuwtindentit	canonicaltdefault_flow_styleNuWrote %su
spm_repo_dupsuignoreu %s will be left in the directoryuarchiveu	./archiveu%s has been archivedu"Unable to create archive directoryuUnable to archive %sudeleteu%s has been deleteduUnable to delete %s(&RYRRtgetcwduRRfRR�RaR7Rct
is_tarfileRbRRdReRgRhtreadRJtintRnR�R�RLRZRuRvt	safe_dumpRRpRqtIOErrorR8RstmovetOSErrortremove(R$R:R�t	old_filesRPR�R�R�tspm_filetspm_pathR~tspm_nametspm_fhtformula_handletformula_conftuse_formulatcur_infotnew_infotmetadata_filenametmfhtfile_((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR3�s�
%
   	






cC@s�t|�dkr!td��n|d}djdj|��}|jdsc|jj|�nxX|D]P}|jjdj|��|jd|jd	�s�t	d
j|jd	|���n|jd||j
�}|dkrtdj|���n|jd
||j
�}g}x�|D]�}|jd|d�rX|j
|d�q%ntj�}	|jd|d|	|j�}
|d|
kr�|jdj|d�tj�|jd|d|j�n |jdj|d�tj�|jd|d||j
�q%Wx�t|dt�D]|}|jd|||j
�y-|jdj|�tj�tj|�Wq$tk
r�|jdj|�tj�q$Xq$W|jd||j
�qjWdS(u"
        Remove a package
        iuA package must be specifiediuRemoving packages:
	{0}u
	u
assume_yesu... removing {0}u	db_existsuspm_dbu%No database at {0}, cannot remove {1}uinfouPackage {0} not installedu
list_filesu
path_isdiriu	hash_fileuRemoving file {0}uremove_fileuNot removing file {0}uunregister_filetreverseuRemoving directory {0}u/Cannot remove directory {0}, probably not emptyuunregister_pkgN(RYRR7RRRRlRNR)RR!R R*RLR�R�R"R�R�R�RMRJRtrmdirR�(R$R:ROR�R�R�RutdirstfilerowR�R�tdir_((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR0BsD


"
  !
$cC@s<|jjdt�tkr.|jj|�n||�dS(u-
        Display verbose information
        uverboseN(RRRnRJRRN(R$R�tlevel((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR�vscC@s�t|�dkr!td��n|d}tjj|�sUtdj|���n|jd�}dj|d �jd�}|d}tj	|d	�}|j
d
j|��}tjj
j|�}|jj|j|��|j�dS(u.
        List info for a package file
        iu$A package filename must be specifiediuPackage file {0} not foundu-i����u/i����ur:bz2u{0}/FORMULAN(RYRRRRpR7RbRRcRdReRRfRgRhRRNt	_get_infoR+(R$R:RWR~R�RR�RX((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRG~s

cC@s�t|�dkr!td��n|d}|jd||j�}|dkrgtdj|���n|jj|j	|��dS(u)
        List info for a package
        iuA package must be specifiediuinfoupackage {0} not installedN(
RYRR)R!R R
R7RRNR(R$R:R�R�((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR5�s
c
C@sVd}x'|D]}||kr
d||<q
q
Wd|krId
|d<ndj|�S(u"
        Get package info
        unameuosu	os_familyureleaseuversionudependenciesuos_dependenciesuos_family_dependenciesusummaryudescriptionuNoneu	installedu
Not installedu#Name: {name}
Version: {version}
Release: {release}
Install Date: {installed}
Supported OSes: {os}
Supported OS families: {os_family}
Dependencies: {dependencies}
OS Dependencies: {os_dependencies}
OS Family Dependencies: {os_family_dependencies}
Summary: {summary}
Description:
{description}(
unameuosu	os_familyureleaseuversionudependenciesuos_dependenciesuos_family_dependenciesusummaryudescription(R7(R$RXtfieldstitem((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR�s"

cC@s�t|�dkr!td��n|d}tjj|�sUtdj|���ntj|d�}|j	�}x!|D]}|j
j|j�qzWdS(u/
        List files for a package file
        iu$A package filename must be specifiediuPackage file {0} not foundur:bz2N(
RYRRRRpR
R7RcRdR�RRNR�(R$R:RWRR�R�((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRF�s

cC@sc|jd|j�}xG|D]?}|jdrAdj|�}n
|d}|jj|�qWdS(u5
        List files for an installed package
        u
list_packagesuverboseu,iN(R)R!RRRRN(R$R:ROR�t
status_msg((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRC�s


cC@s�t|�dkr!td��n|d}|jd||j�}|d	krgtdj|���nJxG|D]?}|jdr�dj|�}n
|d}|j	j
|�qnWd	S(
u5
        List files for an installed package
        iu A package name must be specifiedi����u
list_filesupackage {0} not installeduverboseu,iN(RYRR)R!R R
R7RRRRN(R$R:R�RuRR((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR4�s



cC@st|�dkr!td��n|djd�|_|jjd�}|d|_dj|j�}tjj	|�s�t
dj|���ntjj
j|��}tjjj|�}WdQXx2dD]*}||kr�t
dj|���q�q�Wdj|jd|d	|d
|d�}tjj	|jd�sUtj|jd�n||_tj|d�}d|krRt|dt�r�tj|d	�}	tj|	_|j|	�x�|dD]�}
xAtD]9}|
jdj|��r�|
jdj|��}
q�q�W|jtjj tj!�|
�tjj |d	|
��q�Wq�n�yA|j||d	d|j"�|j|j|d	d|j"�WnNt#k
r�|j||d	d|j"�|j|j|d	d|j"�nX|j$�|j%j&dj|��dS(u!
        Build a package
        iu%A path to a formula must be specifiediu/i����u{0}/FORMULAuFormula file {0} not foundNunameuversionureleaseusummaryudescriptionu&Invalid package: a {0} must be definedu{0}/{1}-{2}-{3}.spmu
spm_build_diruw:bz2ufilesu{0}|RtexcludeuBuilt package {0}(unameuversionureleaseusummaryudescription('RYRtrstriptabspathRbtrelpathR7RRRpR
RRfRuRvRgRhRtmkdirRRcRdR�tlisttTarInfotDIRTYPEttypetaddfilet
FILE_TYPESRotlstriptaddRtgetcwdt_excludet	TypeErrorR+RRN(R$R:R~tformula_pathtfp_RR�R�Rtformula_dirRtftype((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR1�sT



	

$$
$
cC@s}t|t�rdSxc|jdD]T}|jjdj|jd|��rPdS|jjdj|j|��r!dSq!W|S(u'
        Exclude based on opts
        uspm_build_excludeu{0}/{1}unameN(	R�RR RR�RoR7RR(R$R�R((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR!7s%!c	C@s�|jd|jjdd��}tjj|ji�}|jjd�}|jjd�}|j�}|jj�|d<td||||d||�S(uP
        Render a [pre|post]_local_state or [pre|post]_tgt_state script
        urendereru
jinja|yamlurenderer_blacklisturenderer_whitelistuoptsu:string:t
input_data(RRRR&trenderRZR(R$R�RXtrenderertrendt	blacklistt	whitelistt
template_vars((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR�Es!N()R	R
RR R%RRR#R,R=R)R*R6R.R/RnRIRDR-RERiRmR�R�RxR2RKR3R0R�R�R�RGR5RRFRCR4R1R!R�(((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRSsF					!						
	�	J	h	3	'			m	4			$				@	tSPMUserInterfacecB@s)eZdZd�Zd�Zd�ZRS(u:
    Handle user interaction with an SPMClient object
    cC@s
t��dS(u4
        Report an SPMClient status message
        N(tNotImplementedError(R$R�((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRN_scC@s
t��dS(u-
        Report an SPM error message
        N(R/(R$R�((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR8escC@s
t��dS(u�
        Get confirmation from the user before performing an SPMClient action.
        Return if the action is confirmed, or raise SPMOperationCanceled(<msg>)
        if canceled.
        N(R/(R$taction((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRlks(R	R
RRNR8Rl(((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR.[s		tSPMCmdlineInterfacecB@s)eZdZd�Zd�Zd�ZRS(u-
    Command-line interface to SPMClient
    cC@st|�dS(N(tprint(R$R�((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRNxscC@st|dtj�dS(Ntfile(R2tsyststderr(R$R�((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR8{scC@s>t|�td�}|j�jd�s:td��ndS(NuProceed? [N/y] uyucanceled(R2RtlowerRoR(R$R0tres((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyRl~s
(R	R
RRNR8Rl(((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyR1ts		(4Rt
__future__RRRRRcRsR�tloggingR4R�R�tImportErrortsalt.clientRtsalt.configtsalt.loadert
salt.cachet
salt.syspathsRtsalt.extRtsalt.ext.sixRtsalt.ext.six.movesRRt
salt.templateRtsalt.utils.filestsalt.utils.httpRfR�tsalt.utils.pathtsalt.utils.platformtsalt.utils.win_functionstsalt.utils.yamlt	getLoggerR	R�Rt	ExceptionRRR
RRtobjectRR.R1(((s5/usr/lib/python2.7/site-packages/salt/spm/__init__.pyt<module>sT

����

Zerion Mini Shell 1.0