%PDF- %PDF-
Mini Shell

Mini Shell

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

�
���^c@�s�dZddlmZmZmZmZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZ
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl!Z"ej#e$�Z%e&ddddd	d
ddd
dddddg�Z'dej(fd��YZ)de*fd��YZ+de*fd��YZ,dS(uB
A collection of mixins useful for the various *Client interfaces
i(tabsolute_importtprint_functiontwith_statementtunicode_literalsN(tsixuclientucmdueauthufunukwargumatchutokenu__jid__u__tag__u__user__uusernameupasswordufull_returnuprint_eventtClientFuncsDictcB�sMeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	RS(uN
    Class to make a read-only dict for accessing runner funcs "directly"
    cC�s
||_dS(N(tclient(tselfR((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyt__init__>scC�st|jj|�S(u.
        Provide access eg. to 'pack'
        (tgetattrRt	functions(Rtattr((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyt__getattr__AscC�s
t��dS(N(tNotImplementedError(Rtkeytval((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyt__setitem__GscC�s
t��dS(N(R
(RR((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyt__delitem__Jsc�s1��jjkrt�n��fd�}|S(u�
        Return a function that you can call with regular func params, but
        will do all the _proc_function magic
        c�s�i�d6|d6|d6}i}t|�}x3|D]+}|jd�r4|j|�||<q4q4W�jj|jd��}tjjj	�}�jj
�|||d|dt�S(Nufunuargsukwargsu__pub_u	__pub_jidutagujid(tlistt
startswithtpopRt_gen_async_pubtgettsalttutilstusertget_specific_usert_proc_functiontFalse(targstkwargstlowtpub_datatkwargs_keyst
kwargs_keyt	async_pubR(RR(s6/usr/lib/python2.7/site-packages/salt/client/mixins.pytwrapperUs"


	(RR
tKeyError(RRR$((RRs6/usr/lib/python2.7/site-packages/salt/client/mixins.pyt__getitem__Ms	cC�st|jj�S(N(tlenRR
(R((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyt__len__pscC�st|jj�S(N(titerRR
(R((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyt__iter__ss(
t__name__t
__module__t__doc__RRRRR&R(R*(((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyR:s					#	tSyncClientMixincB�s�eZdZd	Zd�Zd�Zd
ed�Zd
d
d
e	ed�Z
ed��Zed��Z
e	ed�Zd
d�ZRS(uN
    A mixin for *Client interfaces to abstract common function execution
    cC�s
t|�S(u�
        Return a dict that will mimic the "functions" dict used all over salt.
        It creates a wrapper around the function allowing **kwargs, and if pub_data
        is passed in as kwargs, will re-use the JID passed in
        (R(R((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pytfunctions_dict}scK�s�|}|j|d<tjjjj|jdddd�}z|j|�}Wd|j�Xt|t	j
�r�d|kr�tjjj
|d�q�n|S(uJ
        Execute a function through the master network interface.
        ucmdtcryptucleartusageumaster_callNuerror(RRt	transportt
ReqChanneltfactorytoptstsendtcloset
isinstancetcollectionstMappingRterrortraise_error(RRtloadtchanneltret((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pytmaster_call�s
	c	C�s�tjjj|j|jddt�}|j|�}tjjjdd|d�}|dkrz|jj	dd�}n|j
d|d	td
|dt�}|dkr�tjjdj
|d
�d|d
��n|r�|S|ddS(u�
        Execute a runner function synchronously; eauth is respected

        This function requires that :conf_master:`external_auth` is configured
        and the user is authorized to execute runner functions: (``@runner``).

        .. code-block:: python

            runner.eauth_sync({
                'fun': 'jobs.list_jobs',
                'username': 'saltdev',
                'password': 'saltdev',
                'eauth': 'pam',
            })
        usock_dirtlistenurettbaseutagurest_timeouti,ttagtfulltwaittauto_reconnectu RunnerClient job '{0}' timed outujidtjidudataureturnN(RRteventtget_master_eventR5tTrueR@ttagifytNoneRt	get_eventt
exceptionstSaltClientTimeouttformat(RRttimeouttfull_returnRHtjobtret_tagR?((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pytcmd_sync�s($	cC�se|dkrt�}nt|t�rMt|t�rMtjjd��n|dkrbi}nt|t�s�tjjd��n|dkr�i}nt|t�s�tjjd��ntjj	j
|d|jjdg��}|r	t
|d<|j|�ntjj|j|||�\}}	i|d6|d6|	d	6}
|j||
d
|d|�S(
u�
        Execute a function

        .. code-block:: python

            >>> opts = salt.config.master_config('/etc/salt/master')
            >>> runner = salt.runner.RunnerClient(opts)
            >>> runner.cmd('jobs.list_jobs', [])
            {
                '20131219215650131543': {
                    'Arguments': [300],
                    'Function': 'test.sleep',
                    'StartTime': '2013, Dec 19 21:56:50.131543',
                    'Target': '*',
                    'Target-type': 'glob',
                    'User': 'saltdev'
                },
                '20131219215921857715': {
                    'Arguments': [300],
                    'Function': 'test.sleep',
                    'StartTime': '2013, Dec 19 21:59:21.857715',
                    'Target': '*',
                    'Target-type': 'glob',
                    'User': 'saltdev'
                },
            }

        u%arg must be formatted as a list/tupleu*pub_data must be formatted as a dictionaryu'kwarg must be formatted as a dictionarytno_parseuno_parseu	__kwarg__ufunuargukwargtprint_eventRRN(RLttupleR8RRRNtSaltInvocationErrortdictRRtparse_inputR5RRJtappendtminiontload_args_and_kwargsR
R(RtfuntargR tkwargRWRRtarglistRRR((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pytcmd�s6 					
	

cC�s=t|d�s6tjj|jdtdt�|_n|jS(Nu_mminiontstatestrend(thasattrRR]tMasterMinionR5Rt_mminion(R((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pytmminion�s'cC�sry|jjj�}Wn(tk
r@tjddtj�tSXy|j	dj
|�SWntk
rmtSXdS(u
        Helper that allows us to turn off storing jobs for different classes
        that may incorporate this mixin.
        uUnable to determine class nametexc_info_on_loglevelu{0}_returnsN(t	__class__R+tlowertAttributeErrortlogtwarningtloggingtDEBUGRJR5RPR%(Rt
class_name((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyt	store_job�s


c
C�s�|j|jdtjjj|j��}|jdtjjj|d|j	��}idj
|j|�d6|d6|jdd�d	6}tjjjd
|jd|jdd
|jdt
�}|r�t|d�r�|jnd!}	nd!}	tjjj||d|	�}
i|d6|d	d6|d6tj|
�d6}yutj|j�}tjjj||�g}
x�tj|�D]�}d|kr�q~n|jdd�\}}||
kr�q~n|
j|�x1tj|�D] \}}||j|j|<q�Wq~Wd|kr4d|kr4|d}|d}nItjjj |j||dt!�}|jdd*�}|jdi�}t"|�|r�|gng|d<|dj#|d�t$j%j&|jj'j(���|j|}y|||�|d<Wn,t)k
r"}dj
||j*�|d<nXy#|j+jdd�dk|d<Wnt,k
rct-|d<nXt.|dt/�r�d |dkr�tjj0j1|dd �|d<nWd!QXWnpt2t3fk
r$}t.|tj4j5�r�tj6|�|d<n"d"j
|j|t7j8��|d<t
|d<nX|j9r�yZtjj:j9|ji|jd#d#6|jd#d$6|dd6|d6d%d!d&|j�Wq�tj4j;k
r�t<j=d'�q�Xn|
j#|d(�t<j>d)|d�~~
|r�|S|dS(+u�
        Execute a function from low data
        Low data includes:
            required:
                - fun: the name of the function to run
            optional:
                - arg: a list of args to pass to fun
                - kwarg: kwargs for fun
                - __user__: user who is running the command
                - __jid__: jid to run under
                - __tag__: tag to run under
        u__jid__u__tag__tprefixu{0}.{1}ufunujidu__user__uUNKNOWNuuserumasterusock_diru	transportR5RAuprint_async_eventt
print_funcu
__jid_event__u.iuargukwargtexpected_extra_kwsuargsukwargsufun_argsunewureturnu*
Passed invalid arguments: {0}

Usage:
{1}uretcodeiusuccessudataNu"Exception occurred in {0} {1}: {2}uidutgtRHRiuLCould not store job cache info. Job details for this run may be unavailable.uretuRunner completed: %s((?RiRRRRGtgen_jidR5RHRKt
tag_prefixRPRRMRRftprint_async_eventRLtNamespacedEventtweakreftproxytpycopytcopyR
tlazyt
verify_funRtiterkeystsplitR\t	iteritemst__globals__Rtformat_calltCLIENT_INTERNAL_KEYWORDSRt
fire_eventttornadot
stack_contexttStackContexttcontext_dicttclonet	TypeErrorR-tcontextRmRJR8RZtstatetcheck_resultt	Exceptiont
SystemExitRNtNotImplementedt	text_typet	tracebackt
format_excRsRStSaltCacheErrorRnR;tinfo(RR_RRWRRRGRCtdataRHRutnamespaced_eventtfunc_globalstself_functionstcompleted_funcstmod_nametmodt_t
global_keytvalueRRtf_calltfunctexctex((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyRs�$*

				




	#
#
#.	
cC�s(|r�d|kr!|}t}n%|jd�s:|dn|}t}|r�gtj|j|�D]}||j|jf^qb}q	gt|j�D]7}||ks�|j|�r�||j|jf^q�}n2gt|j�D]}||j|jf^q�}t	|�}t
jjj
|�S(uX
        Return a dictionary of functions and the inline documentation for each
        u*u.(RJtendswithRtfnmatchtfilterR
R-tsortedRRZRRtdoct	strip_rst(RR`t
target_modt_use_fnmatchR_tdocs((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pytget_docs�s 	8:/(N(R+R,R-R
R/R@RLRRURJRctpropertyRiRsRR�(((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyR.ws		@�tAsyncClientMixincB�sSeZdZdZdZed�Zd�Zdd�Z	ddd�Z
d�ZRS(uW
    A mixin for *Client interfaces to enable easy asynchronous function execution
    cC�s�|rLtjjj�rLtjjj�tjjj�tjjj	�n||d<||d<||d<|j
||dt�S(u�
        Run this method in a multiprocess target to execute the function in a
        multiprocess and fire the return data on the event bus
        u__jid__u__user__u__tag__RR(RRtplatformt
is_windowsRntsetupt shutdown_multiprocessing_loggingtprocesst	daemonizetsetup_multiprocessing_loggingRR(RR_RRRCRGR�((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyR�s


cC�s
|j|�S(u
        Execute a function asynchronously; eauth is respected

        This function requires that :conf_master:`external_auth` is configured
        and the user is authorized

        .. code-block:: python

            >>> wheel.cmd_async({
                'fun': 'key.finger',
                'match': 'jerry',
                'eauth': 'auto',
                'username': 'saltdev',
                'password': 'saltdev',
            })
            {'jid': '20131219224744416681', 'tag': 'salt/wheel/20131219224744416681'}
        (R@(RR((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyt	cmd_async�scC�sW|dkr'tjjj|j�}ntjjj|d|j�}i|d6|d6S(NRtutagujid(	RLRRRGRwR5RHRKRx(RRGRC((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyR�suUNKNOWNc
C�s�|dk	r|n	|j�}tjjjd|jd||||d|df�}tjjjtj	tj
��|j�WdQX|j�|S(ux
        Execute the function in a multiprocess and return the event tag to use
        to watch for the return
        ttargetRutagujidN(
RLRRRR�t$SignalHandlingMultiprocessingProcessRtdefault_signalstsignaltSIGINTtSIGTERMtstarttjoin(RR_RRtpubR#tproc((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pytasynchronous�s	 
cC�s0t|t�sdS|jjdt�r,dS|dkr<dSy=|jjd|jdd�pr|jd�jd��}Wntk
r�d}nX|dkr�t|jd�t�r�t|d�td�kr�|dd}|dd}q|d}ni|d	6|d
6}tj	j
|||j�dS(
u?
        Print all of the events with the prefix 'tag'
        Nuquietunewuoutputu	outputterureturnuretudatausuffixuevent(unew(udatau	outputter(R8RZR5RRRLRmtsetRtoutputtdisplay_output(RtsuffixRHt	outputtert
event_data((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyRy
s$=


N(R+R,R-RLRRxRJRR�RR�Ry(((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyR��s	(-R-t
__future__RRRRR�R�RpR{R�R9R~R}tsalt.exceptionsRtsalt.miniontsalt.utils.argstsalt.utils.doctsalt.utils.errortsalt.utils.eventtsalt.utils.jidtsalt.utils.jobtsalt.utils.lazytsalt.utils.platformtsalt.utils.processtsalt.utils.statetsalt.utils.usertsalt.utils.versionstsalt.transport.clienttsalt.log.setuptsalt.extRttornado.stack_contextR�t	getLoggerR+Rnt	frozensetR�tMutableMappingRtobjectR.R�(((s6/usr/lib/python2.7/site-packages/salt/client/mixins.pyt<module>s\"=�M

Zerion Mini Shell 1.0