%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python2.7/site-packages/salt/modules/
Upload File :
Create Path :
Current File : //usr/lib/python2.7/site-packages/salt/modules/splunk.pyo

�
���^c@@sjdZddlmZmZmZddlZddlZddlZddlZddl	m
Z
eZy6ddl
Zddl
mZddlmZeZWnek
r�nXeje�ZdZdZdd	d
ddgZddd	gZd
�Zd�Zd�Zd�Zdd�Zd�Z dd�Z!dd�Z"dd�Z#dd�Z$dd�Z%dS(u�
Module for interop with the Splunk API

.. versionadded:: 2016.3.0.


:depends:   - splunk-sdk python module
:configuration: Configure this module by specifying the name of a configuration
    profile in the minion config, minion pillar, or master config. The module
    will use the 'splunk' key by default, if defined.

    For example:

    .. code-block:: yaml

        splunk:
            username: alice
            password: abc123
            host: example.splunkcloud.com
            port: 8080
i(tabsolute_importtunicode_literalstprint_functionN(tsix(tAuthenticationError(t	HTTPErrorusplunkurealnameurolesu
defaultApputzunamecC@str
tStdfS(uF
    Only load this module if splunk is installed on this minion.
    u[The splunk execution module failed to load: requires splunk python library to be installed.(tHAS_LIBSt__virtualname__tFalse(((s7/usr/lib/python2.7/site-packages/salt/modules/splunk.pyt__virtual__@scC@std|�}|jd�S(Nu
config.optionupassword_secret_key(t__salt__tget(tprofiletconfig((s7/usr/lib/python2.7/site-packages/salt/modules/splunk.pyt_get_secret_keyJscC@sUtjtjtd��tj|tg��}tj|j	��j
�jdd�S(Nusplunku=u(thmactnewtbase64t	b64decodeRRt	text_typetSERVICE_NAMEturlsafe_b64encodetdigesttstriptreplace(temailtm((s7/usr/lib/python2.7/site-packages/salt/modules/splunk.pyt_generate_passwordOs0c	C@s�tdd�}|jd�}|r�|jd�}|jd�}|jd�j||t|�|�}y.tjdd|d	||gd
tj�}Wn&tk
r�}tj	d||�nX|j
|�tjd|�nd
S(u/send a email to inform user of account creationu
config.optionusplunkuemailuccusubjectumessageumailu-su-ctstdinuunable to send email to %s: %su!sent account creation email to %sN(R
RtformatRt
subprocesstPopentPIPEt	Exceptiontlogterrortcommunicatetinfo(	tnameRR
temail_objecttcctsubjecttmessagetmail_processte((s7/usr/lib/python2.7/site-packages/salt/modules/splunk.pyt_send_emailTs'.
cC@s�td|�}dj|jd��}|tkr�t|�}idd6dd6}|jjdd	|�}i}x!|D]}|||jj�<qyW|t|<nt	S(
Nu
config.optionusplunk.users.{0}uhosturealnameusort_keyuascusort_dirtcounti����(
R
RRt__context__t_get_splunktuserstlistRtlowertTrue(RR
tkeytclienttkwargsR1tresulttuser((s7/usr/lib/python2.7/site-packages/salt/modules/splunk.pyt_populate_cachegs

c
C@s�td|�}dj|jd�|jd�|jd�|jd��}|tkr�tjjd|jd�d|jd�d	|jd�d
|jd��t|<nt|S(uK
    Return the splunk client, cached into __context__ for performance
    u
config.optionusplunk.{0}:{1}:{2}:{3}uhostuportuusernameupasswordthosttporttusernametpassword(R
RRR/t	splunklibR6tconnect(RR
R5((s7/usr/lib/python2.7/site-packages/salt/modules/splunk.pyR0|scC@sItd|�}dj|jd��}|tkrAt|�nt|S(ud
    List all users in the splunk DB

    CLI Example:

        salt myminion splunk.list_users
    u
config.optionusplunk.users.{0}uhost(R
RRR/R:(RR
R5((s7/usr/lib/python2.7/site-packages/salt/modules/splunk.pyt
list_users�s	
c	K@s�t|�}|j�|j�k}|jdt�rA|rAtS|jdt�r�|r�||j�}i}x(ddddgD]}||||<q�Wg|d<x%|jD]}|dj|j�q�W|StS(u�
    Get a splunk user by name/email

    CLI Example:

        salt myminion splunk.get_user 'user@example.com' user_details=false
        salt myminion splunk.get_user 'user@example.com' user_details=true
    uuser_detailsu
defaultAppurealnameunameuemailuroles(	RAR3tkeysRRR4t
role_entitiestappendR&(	RRR7tuser_mapt
user_foundR9tresponsetfieldtrole((s7/usr/lib/python2.7/site-packages/salt/modules/splunk.pytget_user�s

cK@s�t|�}|j�}t|�j|�}|rGtjd|�tSi}x3tD]+}|j|�rT|j|�||<qTqTWy�xVtD]N}|j|�s�tjddj	gtD]}t
j|�^q���tSq�W|jj
d|ddt|�d|dd	|d
|d�}	t|	j|	j�i}
x(dd
ddgD]}|	||
|<qJWWn$tk
r�}tjd|�tSXdS(u�
    create a splunk user by name/email

    CLI Example:

        salt myminion splunk.create_user user@example.com roles=['user'] realname="Test User" name=testuser
    uUser is already present %suMissing required params %su, R=unameR>trolesurolesRtrealnameurealnameuemailupassworduCaught exception %sN(R0R3RARR"R#RtALLOWED_FIELDS_FOR_MODIFICATIONtREQUIRED_FIELDS_FOR_CREATEtjoinRRR1tcreateRR-R&RR!(RRR7R6R9tproperty_mapRHt	req_fieldtktnewuserRGR,((s7/usr/lib/python2.7/site-packages/salt/modules/splunk.pytcreate_user�s8	

	,

c
K@s�t|�}|j�}t|�j|�}|sMtjdj|��tSi}x3tD]+}|j|�rZ|j|�||<qZqZWi}g|j	D]}|j
^q�}x�|j�D]�\}	}
||	}|dk	r�|	j�dkr�q�n|	j�dkr_t
|
tj�r+|
jd�}
nt|�t|
�krxtt|
��|d<qxq{||
kr{|
||	<q{q�q�Wt|�dkr�|j|�j�i}x#tD]}||||<q�WntSdS(u�
    Create a splunk user by email

    CLI Example:

        salt myminion splunk.update_user example@domain.com roles=['user'] realname="Test User"
    uFailed to retrieve user {0}unameurolesu,iN(R0R3RARR"R#RRRMRCR&titemstNonet
isinstanceRtstring_typestsplittsetR2tlentupdatetrefreshR4(
RRR7R6R9RQRHRIRKRStvtresource_valuetfields_modified((s7/usr/lib/python2.7/site-packages/salt/modules/splunk.pytupdate_user�s<	


cC@s�t|�}t|�j|�}|rny|jj|j�Wqrttfk
rj}tj	d|�t
SXnt
S|j|jkS(uv
    Delete a splunk user by email

    CLI Example:

        salt myminion splunk_user.delete 'user@example.com'
    u
Exception: %s(R0RARR1tdeleteR&RRR"R%R(RRR6R9R,((s7/usr/lib/python2.7/site-packages/salt/modules/splunk.pytdelete_user0s	(&t__doc__t
__future__RRRtloggingRRRtsalt.extRRRtsplunklib.clientR?Rtsplunklib.bindingRR4tImportErrort	getLoggert__name__R"RRRMRNR	RRR-R:R0RARJRURbRd(((s7/usr/lib/python2.7/site-packages/salt/modules/splunk.pyt<module>sH

			
				 27

Zerion Mini Shell 1.0