%PDF- %PDF-
Mini Shell

Mini Shell

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

�
���^c	@@s�dZddlmZmZmZddlZddlZddlZddlZ	ddl
Z	ddlZ	ddlZ	ddl
Z	ddlZ	ddlZ	ddlmZddlmZyddljZeZWnek
r�eZnXeje�Zed�Zdeeed�Z ded�Z!ddddddded	�Z"edded
�Z#dd�Z$dd�Z%ddddded
�Z&d�Z'd�Z(d�Z)ed�Z*dS(uB
A convenience system to manage jobs, both active and already run
i(tabsolute_importtprint_functiontunicode_literalsN(tsix(tSaltClientErrorcC@s/i}tjjtd�}y |jdddtd�}Wntk
r\}t|�|SX|r�tjidj	t
|j���d6d�nx�tj
|�D]�\}}|r�tjid	j	|�d6d�nt|t
�s�q�nx�|D]�}|d
|kr`t|d
|�||d
<||d
jii|jdd�|6gd6gd
6�q�||d
dji|d|6�q�Wq�Wtjjt�}x�|D]�}	ttdtdf�}
|jdj	|
�|	�}|r�x=|D]2}|||	d
kr�||	d
j|�q�q�Wq�q�W|S(u�
    Return a report on all actively running jobs from a job id centric
    perspective

    CLI Example:

    .. code-block:: bash

        salt-run jobs.active
    u	conf_fileu*usaltutil.runningttimeoututimeoutu"Attempting to contact minions: {0}umessageuprogressuReceived reply from minion {0}ujidupiduRunninguReturnedu
ext_job_cacheumaster_job_cacheu{0}.get_jidN(tsalttclienttget_local_clientt__opts__tcmdRtprintt
__jid_event__t
fire_eventtformattlisttkeysRt	iteritemst
isinstancet_format_jid_instancetupdatetgettNonetappendtminiontMasterMiniont
_get_returnert	returners(tdisplay_progresstretRtactive_tclient_errorRtdatatjobtmminiontjidtreturner((s5/usr/lib/python2.7/site-packages/salt/runners/jobs.pytactive"s< 
	
#
<,

#c
@s�i}tjjt�}ttd|tdf�}yt|d|d|�}Wntk
redSX|jdg�}	|jdi���rx��D]y}
|r�tj	i|
d6d	�nd
�|
kr�|r�|
jd
�||
<qq�|r��|
jd
�||
<q�q�Wn|rKx+�fd�|	D�D]}d||<q4Wny#�t
t���jd
�}Wntt
fk
r�d}nX|r�i|d6|d6S|SdS(u�
    Return the printout from a previously executed job

    jid
        The jid to look up.

    ext_source
        The external job cache to use. Default: `None`.

    returned : True
        If ``True``, include the minions that did return from the command.

        .. versionadded:: 2015.8.0

    missing : False
        If ``True``, include the minions that did *not* return from the
        command.

    display_progress : False
        If ``True``, fire progress events.

        .. versionadded:: 2015.5.0

    CLI Example:

    .. code-block:: bash

        salt-run jobs.lookup_jid 20130916125524463507
        salt-run jobs.lookup_jid 20130916125524463507 --out=highstate
    u
ext_job_cacheumaster_job_cachet
ext_sourceRuCRequested returner could not be loaded. No JIDs could be retrieved.uMinionsuResultumessageuprogressureturnc3@s!|]}|�kr|VqdS(N((t.0tx(treturns(s5/usr/lib/python2.7/site-packages/salt/runners/jobs.pys	<genexpr>�suMinion did not returnuoutu	outputterudataN(RRRR	Rtlist_jobt	TypeErrorRRR
tnexttitert
StopIterationtAttributeErrorR(
R#R&treturnedtmissingRRR"R$R ttargeted_minionsRt	minion_idt	outputter((R)s5/usr/lib/python2.7/site-packages/salt/runners/jobs.pyt
lookup_jidQsD#


!#
c	C@si|d6}tjjt�}ttd|tdf�}|retjidj|�d6d�n|jdj|�|�}|j	t
||��|jdj|�|�|d	<d
jtd�}tjd�r||jkr|j||�}|r||d<qn|S(
u�
    List a specific job given by its jid

    ext_source
        If provided, specifies which external job cache to use.

    display_progress : False
        If ``True``, fire progress events.

        .. versionadded:: 2015.8.8

    CLI Example:

    .. code-block:: bash

        salt-run jobs.list_job 20130916125524463507
        salt-run jobs.list_job 20130916125524463507 --out=pprint
    ujidu
ext_job_cacheumaster_job_cacheuQuerying returner: {0}umessageuprogressu{0}.get_loadu{0}.get_jiduResultu{0}.get_endtimeujob_cache_store_endtimeuEndTime(RRRR	RRR
RRRRR(	R#R&RRR"R$R!tfstrtendtime((s5/usr/lib/python2.7/site-packages/salt/runners/jobs.pyR*�s(

 cC@s*ttd|tdf�}|rFtjidj|�d6d�ntjjt�}	|	jdj|��}
i}x�|
D]�}t	}
|rt
}
d|
|krt|t�rxZ|D]B}||
|dkr�|
|d|||kr�t	}
q�q�q�Wqt
jd�qn|r�|
r�t
}
d	|
|kr�|
|d	}t|tj�rf|g}nxL|D]A}x8tjjj|�D]!}tj||�r�t	}
q�q�WqmWq�n|r#|
r#t
}
d
|
|kr#xCtjjj|�D])}tj|
|d
|�r�t	}
q�q�Wq#n|r�|
r�t
}
trytj|�}tj|
|d�}||kr�t	}
q�q�t
jd�n|r�|
r�t
}
tr�tj|�}tj|
|d�}||kr�t	}
q�q�t
jd
�n|
r~|
|||<q~q~W|r"i|d6|d6S|SdS(u�	
    List all detectable jobs and associated functions

    ext_source
        If provided, specifies which external job cache to use.

    **FILTER OPTIONS**

    .. note::
        If more than one of the below options are used, only jobs which match
        *all* of the filters will be returned.

    search_metadata
        Specify a dictionary to match to the job's metadata. If any of the
        key-value pairs in this dictionary match, the job will be returned.
        Example:

        .. code-block:: bash

            salt-run jobs.list_jobs search_metadata='{"foo": "bar", "baz": "qux"}'

    search_function
        Can be passed as a string or a list. Returns jobs which match the
        specified function. Globbing is allowed. Example:

        .. code-block:: bash

            salt-run jobs.list_jobs search_function='test.*'
            salt-run jobs.list_jobs search_function='["test.*", "pkg.install"]'

        .. versionchanged:: 2015.8.8
            Multiple targets can now also be passed as a comma-separated list.
            For example:

            .. code-block:: bash

                salt-run jobs.list_jobs search_function='test.*,pkg.install'

    search_target
        Can be passed as a string or a list. Returns jobs which match the
        specified minion name. Globbing is allowed. Example:

        .. code-block:: bash

            salt-run jobs.list_jobs search_target='*.mydomain.tld'
            salt-run jobs.list_jobs search_target='["db*", "myminion"]'

        .. versionchanged:: 2015.8.8
            Multiple targets can now also be passed as a comma-separated list.
            For example:

            .. code-block:: bash

                salt-run jobs.list_jobs search_target='db*,myminion'

    start_time
        Accepts any timestamp supported by the dateutil_ Python module (if this
        module is not installed, this argument will be ignored). Returns jobs
        which started after this timestamp.

    end_time
        Accepts any timestamp supported by the dateutil_ Python module (if this
        module is not installed, this argument will be ignored). Returns jobs
        which started before this timestamp.

    .. _dateutil: https://pypi.python.org/pypi/python-dateutil

    CLI Example:

    .. code-block:: bash

        salt-run jobs.list_jobs
        salt-run jobs.list_jobs search_function='test.*' search_target='localhost' search_metadata='{"bar": "foo"}'
        salt-run jobs.list_jobs start_time='2015, Mar 16 19:00' end_time='2015, Mar 18 22:00'

    u
ext_job_cacheumaster_job_cacheuQuerying returner {0} for jobs.umessageuprogressu{0}.get_jidsuMetadatauKThe search_metadata parameter must be specified as a dictionary.  Ignoring.uTargetuFunctionu	StartTimeuA'dateutil' library not available, skipping start_time comparison.u?'dateutil' library not available, skipping end_time comparison.u	outputterudataN(RR	RR
RRRRRtTruetFalseRtdicttlogtinfoRtstring_typestutilstargstsplit_inputtfnmatchtDATEUTIL_SUPPORTtdateutil_parsertparseterror(R&R4tsearch_metadatatsearch_functiont
search_targett
start_timetend_timeRR$R"Rtmrettitemt_matchtkeyttargetsttargettparsed_start_timet_start_timetparsed_end_time((s5/usr/lib/python2.7/site-packages/salt/runners/jobs.pyt	list_jobs�szT





c	C@s�ttd|tdf�}|rFtjidj|�d6d�ntjjt�}dj|�}||jkr�t	dj|���n|j|||�}|r�i|d6|d	6S|Sd
S(u
    List all detectable jobs and associated functions

    ext_source
        The external job cache to use. Default: `None`.

    CLI Example:

    .. code-block:: bash

        salt-run jobs.list_jobs_filter 50
        salt-run jobs.list_jobs_filter 100 filter_find_job=False

    u
ext_job_cacheumaster_job_cacheuQuerying returner {0} for jobs.umessageuprogressu{0}.get_jids_filteru,'{0}' returner function not implemented yet.u	outputterudataN(
RR	RR
RRRRRtNotImplementedError(	tcounttfilter_find_jobR&R4RR$R"tfunR((s5/usr/lib/python2.7/site-packages/salt/runners/jobs.pytlist_jobs_filterys"
cC@si}ttd|tdf�}tjjt�}y3|jdj|�|�}t||�||<Wn)tk
r�dj|�||d<|SX|jdj|�|�||d<djtd�}tj	d�r||jkr|j||�}|r|||d	<qn|S(
u�
    Print a specific job's detail given by it's jid, including the return data.

    CLI Example:

    .. code-block:: bash

        salt-run jobs.print_job 20130916125524463507
    u
ext_job_cacheumaster_job_cacheu{0}.get_loadu`Requested returner {0} is not available. Jobs cannot be retrieved. Check master log for details.uResultu{0}.get_jidu{0}.get_endtimeujob_cache_store_endtimeuEndTime(
RR	RRRRRRR+R(R#R&RR$R"R!R6R7((s5/usr/lib/python2.7/site-packages/salt/runners/jobs.pyt	print_job�s*

$cC@s�t�}t|d|�}|jdg�}|jdi�}xU|D]M}||kr�d||kr�||dr|tnt||<qFt||<qFWx9|D]1}d||kr�||dr�t||<q�q�W|S(u
    Check if a job has been executed and exit successfully

    jid
        The jid to look up.
    ext_source
        The external job cache to use. Default: `None`.

    CLI Example:

    .. code-block:: bash

        salt-run jobs.exit_success 20160520145827701627
    R&uMinionsuResultureturn(R:R*RR8R9(R#R&RR tminionstresultR((s5/usr/lib/python2.7/site-packages/salt/runners/jobs.pytexit_success�s		
!
c
C@s�|r)t|t�s)tjd�tSntd|d|d|d|d|d|�}|ryt|�d}t||�StSd	S(
uA
    .. versionadded:: 2015.8.0

    List all detectable jobs and associated functions

    CLI Example:

    .. code-block:: bash

        salt-run jobs.last_run
        salt-run jobs.last_run target=nodename
        salt-run jobs.last_run function='cmd.run'
        salt-run jobs.last_run metadata="{'foo': 'bar'}"
    u8The metadata parameter must be specified as a dictionaryR&R4RFRGRHRi����N(RR:R;R<R9RTtsortedRZ(R&R4tmetadatatfunctionRPRt	_all_jobstlast_job((s5/usr/lib/python2.7/site-packages/salt/runners/jobs.pytlast_run�s
	
cC@s+x$|D]}|r|dk	r|SqWdS(uF
    Helper to iterate over returner_types and pick the first one
    N(R(treturner_typesR$((s5/usr/lib/python2.7/site-packages/salt/runners/jobs.pyRs
cC@s|sidd6}|Si|jdd�d6t|jdg��d6|jdd	�d
6|jdd�d
6|jdd�d6}d|kr�|jdi�|d<n<d|kr�d|dkr�|djdi�|d<q�nd|kr|d|d<n|S(u)
    Helper to format a job instance
    u/Cannot contact returner or no job with this jiduErrorufunuunknown-functionuFunctionuargu	Argumentsutgtuunknown-targetuTargetutgt_typeulistuTarget-typeuuserurootuUserumetadatauMetadataukwargsuMinions(RR(R!R((s5/usr/lib/python2.7/site-packages/salt/runners/jobs.pyt_format_job_instance"s 
 cC@s3t|�}|jitjjj|�d6�|S(u'
    Helper to format jid instance
    u	StartTime(ReRRR>R#tjid_to_time(R#R!R((s5/usr/lib/python2.7/site-packages/salt/runners/jobs.pyR=s#c
	c@s3tjjt�}xtj|�D]	}tjj||�}x�tj|�D]�}tjj||d�}tjj	j
|d��}|j|�}WdQXtjj|�s�qMntjj	j
|d��}|j|�}WdQX|d}	|rt
jidj|	�d6d�n|	|||fVqMWq"WdS(u2
    Walk through the job dir and return jobs
    u.load.purbNujidu
Found JID {0}umessageuprogress(RtpayloadtSerialR	tostlistdirtpathtjoinR>tfilestfopentloadtisfileRR
R(
tjob_dirRtserialttoptt_pathtfinalt	load_pathtrfhR!R#((s5/usr/lib/python2.7/site-packages/salt/runners/jobs.pyt
_walk_throughFs"

(+t__doc__t
__future__RRRRAtloggingRitsalt.clientRtsalt.payloadtsalt.utils.argstsalt.utils.filestsalt.utils.jidtsalt.miniontsalt.returnerstsalt.extRtsalt.exceptionsRtdateutil.parsertparserRCR8RBtImportErrorR9t	getLoggert__name__R;R%RR5R*RTRYRZR]RcRReRRx(((s5/usr/lib/python2.7/site-packages/salt/runners/jobs.pyt<module>sb


0Q.�((%"					

Zerion Mini Shell 1.0