%PDF- %PDF-
Mini Shell

Mini Shell

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

�
���^c@@s�dZddlmZddlZddlZddlZddlZddlZddl	Zddl
mZddlm
Z
eje�Zdefd��YZdS(sF
This package contains the loader modules for the salt streams system
i(tabsolute_importN(tmap(tCommandExecutionErrortBeaconcB@s�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
eed	�Zeed
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(sI
    This class is used to evaluate and execute on the beacon system
    cC@s:||_||_tjj||�|_t�|_dS(N(toptst	functionstsalttloadertbeaconstdicttinterval_map(tselfRR((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pyt__init__s		cC@s�g}tj|�}d|kr0|dr0dSx�|D]�}|dkrOq7nd}t||t�r�i}tt|j||��n t||t�r�||}nd|kr|ds�tj	d|�q7qt||t�r�||d=q|j
||d�ntj	d|�dj|�}dj|�}||jkr�|j
|d�}	|j
|d�}
|
r�|j||d�}|j||
�s�tj	d	|�q7q�n|j
|d
�r�tj	d|�|j||d
�}t}tjjj|j�}x-|D]%}
tjd|
d
�rt}qqW|r�dj|�}||jkr�tjd|�|j|||�q7tjd|�q7q�n||j|jd<||jkr|j|||�\}}|stjd||�q7qn|j|||�}x�|D]|}dj|jd|�}d|kra||jd�7}nd|kr�|jd|d<n|ji|d6|d6�q W|	r�|j|�q�q7tjd|�q7W|S(s 
        Process the configured beacons

        The config must be a list and looks like this in yaml

        .. code_block:: yaml
            beacons:
              inotify:
                - files:
                    - /etc/fstab: {}
                    - /var/cache/foo: {}
        tenabledNsBeacon %s disabledsBeacon processing: %ss
{0}.beacons{0}.validatetrun_oncetintervals)Skipping beacon %s. Interval not reached.tdisable_during_state_runs<Evaluting if beacon %s should be skipped due to a state run.sstate.*tfuns	{0}.closes)Closing beacon %s. State run in progress.s*Skipping beacon %s. State run in progress.t
__grains__s0Beacon %s configuration invalid, not running.
%sssalt/beacon/{0}/{1}/tidttagtdatasUnable to process beacon %s(tcopytdeepcopytNonet
isinstancetlistRtupdateR	tlogttracet_remove_list_itemtformatRt_determine_beacon_configt_trim_configt_process_intervaltFalseRtutilstminiontrunningRtretmatchtTruetinfot__globals__tpoptappendtdisable_beacontwarning(Rtconfigtgrainstrettb_configtmodtcurrent_beacon_configtfun_strtvalidate_strtrunonceRt
is_runningtrunning_jobstjobt	close_strtvalidtvcommenttrawRR((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pytprocesss�



	

		
	
cC@sUt||t�r*|j|||�n't||t�rQ||j|�n|S(sM
        Take a beacon configuration and strip out the interval bits
        (RRRR	R,(RR3R4tkey((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pyR!~s
cC@s.t}t|t�r*|j|t�}n|S(sJ
        Process a beacon configuration to determine its interval
        (R#RR	tget(RR5RAR((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pyR �scC@s�tjd||�|jd}||jkr�tjd�|j|}tjd|�|||krzd|j|<tS|j|cd7<ntjd|�d|j|<tS(sk
        Process beacons with intervals
        Return True if a beacon should be run on this loop
        s(Processing interval %s for beacon mod %st
loop_intervalsProcessing interval in mapsInterval counter: %sis"Interval process inserting mod: %s(RRRR
R)R#(RR4RRCtcounter((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pyR"�s




cC@sSgt|�D]\}}||kr
|^q
}t|�dkrGdS|dSdS(sn
        Return the index of a labeled config item in the beacon config, -1 if the index is not found
        ii����iN(t	enumeratetlen(Rt
beacon_configtlabeltindextitemtindexes((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pyt
_get_index�s1cC@s|j||�}||=dS(s:
        Remove an item from a beacon config list
        N(RL(RRGRHRI((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pyR�scC@s�t|jd|t�r2||jd|d<nd|j|jd|d�}|dkrw||jd||d<n|jd|ji|d6�dS(s@
        Update whether an individual beacon is enabled
        RR
iN(RRR	RLR-(Rtnamet
enabled_valuet
enabled_index((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pyt_update_enabled�scC@s�i}|r[|jjdi�jdi�}t|t�sKtd��n|j|�n|r�|jjdi�}t|t�s�td��n|j|�n|S(s3
        Return the beacons data structure
        tpillarRsBeacons must be of type dict.(RRBRR	t
ValueErrorR(Rtinclude_optstinclude_pillarRtpillar_beaconstopts_beacons((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pyt_get_beacons�s!cC@sU|j||�}tjjjdd|j�}|jitd6|d6dd�tS(s
        List the beacon items

        include_pillar: Whether to include beacons that are
                        configured in pillar, default is True.

        include_opts:   Whether to include beacons that are
                        configured in opts, default is True.
        R%RtcompleteRRs)/salt/minion/minion_beacons_list_complete(RWRR$teventt	get_eventRt
fire_eventR)(RRTRSRtevt((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pytlist_beacons�s
cC@s�g|jD]-}d|kr
dj|jdd��^q
}tjjjdd|j�}|jit	d6|d6dd	�t	S(
s,
        List the available beacons
        s.beacons{0}tR%RRXRRs3/salt/minion/minion_beacons_list_available_complete(
RRtreplaceRR$RYRZRR[R)(Rt_beacont_beaconsR\((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pytlist_available_beacons�s:cC@s�dj|�}||jkrPd|kr4|d=n|j||�\}}ndj|�}t}tjjjdd|j�}|jitd6|d6|d6d	d
�tS(s3
        Return available beacon functions
        s{}.validateR
sBBeacon {0} does not have a validate function, skipping validation.R%RRXR>R=Rs./salt/minion/minion_beacon_validation_complete(	RRR)RR$RYRZRR[(RRMtbeacon_dataR7R=R>R\((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pytvalidate_beacons
	
cC@s�i}|||<||jdt�kr@dj|�}t}nN||jdkredj|�}ndj|�}t}|jdj|�tjjj	dd|j�}|j
i|d6|d	6|jdd6d
d�tS(s#
        Add a beacon item
        RSsBCannot update beacon item {0}, because it is configured in pillar.Rs&Updating settings for beacon item: {0}sAdded new beacon item: {0}R%RRXtcommentRs'/salt/minion/minion_beacon_add_complete(RWR#RRR)RRR$RYRZR[(RRMRcRReRXR\((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pyt
add_beacons"
		cC@s�i}|||<||jdt�kr@dj|�}t}n)dj|�}t}|jdj|�tjjj	dd|j�}|j
i|d6|d6|jdd6d	d
�tS(s&
        Modify a beacon item
        RSs:Cannot modify beacon item {0}, it is configured in pillar.s&Updating settings for beacon item: {0}RR%RRXReRs*/salt/minion/minion_beacon_modify_complete(RWR#RR)RRRR$RYRZR[(RRMRcRReRXR\((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pyt
modify_beacon6s
			cC@s�||jdt�kr0dj|�}t}nH||jdkrc|jd|=dj|�}ndj|�}t}tjjjdd|j�}|j	i|d6|d	6|jdd6d
d�tS(s&
        Delete a beacon item
        RSs:Cannot delete beacon item {0}, it is configured in pillar.RsDeleting beacon item: {0}sBeacon item {0} not found.R%RRXReRs*/salt/minion/minion_beacon_delete_complete(
RWR#RRR)RR$RYRZR[(RRMReRXR\((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pyt
delete_beaconOs		cC@s[t|jdd<tjjjdd|j�}|jitd6|jdd6dd�tS(s 
        Enable beacons
        RR
R%RRXRs,/salt/minion/minion_beacons_enabled_complete(R)RRR$RYRZR[(RR\((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pytenable_beaconshs
!cC@s[t|jdd<tjjjdd|j�}|jitd6|jdd6dd�tS(s 
        Enable beacons
        RR
R%RRXRs-/salt/minion/minion_beacons_disabled_complete(R#RRR$RYRZR[R)(RR\((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pytdisable_beaconsvs
!cC@s�||jdt�kr0dj|�}t}n%|j|t�dj|�}t}tjjjdd|j	�}|j
i|d6|d6|j	dd6d	d
�tS(s!
        Enable a beacon
        RSs:Cannot enable beacon item {0}, it is configured in pillar.sEnabling beacon item {0}R%RRXReRRs+/salt/minion/minion_beacon_enabled_complete(RWR#RRPR)RR$RYRZRR[(RRMReRXR\((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pyt
enable_beacon�s		cC@s�||jdt�kr0dj|�}t}n%|j|t�dj|�}t}tjjjdd|j	�}|j
i|d6|d6|j	dd6d	d
�tS(s"
        Disable a beacon
        RSs;Cannot disable beacon item {0}, it is configured in pillar.sDisabling beacon item {0}R%RRXReRRs,/salt/minion/minion_beacon_disabled_complete(RWR#RRPR)RR$RYRZRR[(RRMReRXR\((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pyR.�s		cC@s^i|jd<tjjjdd|j�}|jitd6dd6|jdd6dd�tS(	s/
        Reset the beacons to defaults
        RR%RRXsBeacons have been resetReRs)/salt/minion/minion_beacon_reset_complete(RRR$RYRZR[R)(RR\((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pytreset�s
(t__name__t
__module__t__doc__RR@R!R R"RLRRPR)RWR]RbRdRfRgRhRiRjRkR.Rl(((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pyRs.		_	
														(Rot
__future__RtloggingRR'tsalt.loaderRtsalt.utils.eventtsalt.utils.miniontsalt.ext.six.movesRtsalt.exceptionsRt	getLoggerRmRtobjectR(((s9/usr/lib/python2.7/site-packages/salt/beacons/__init__.pyt<module>s

Zerion Mini Shell 1.0