%PDF- %PDF-
Mini Shell

Mini Shell

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

�
���^c@@s�dZddlmZmZmZddlZddlZddlZddlZddl	Z	ddl
ZddlZddl
ZddlZddlZddlmZmZddlmZddlmZddlmZeje�Zdadad�Z d	�Z!d
�Z"d�Z#d�Z$d
�Z%dd�Z&d�Z'd�Z(dd�Z)dd�Z*dd�Z+dd�Z,ddd�Z-dd�Z.dd�Z/dd�Z0dd�Z1dd�Z2dd�Z3ddddd�Z4dd�Z5dd�Z6dd �Z7dd!�Z8dd"�Z9d#ddd$�Z:dd%�Z;dd&�Z<dd'�Z=dd(�Z>dd)�Z?dd*�Z@d+dd,�ZAdddd-�ZBdd.�ZCdd/�ZDdd0�ZEdd1�ZFdd2�ZGdd3�ZHdd4�ZIdS(5u�
Module to provide RabbitMQ compatibility to Salt.
Todo: A lot, need to add cluster support, logging, and minion configuration
data.
i(tabsolute_importtunicode_literalstprint_functionN(tCommandExecutionErrortSaltInvocationError(tLooseVersion(tsix(trangecC@s�tjjj�r�ddlm}d
}zfyN|j|jdd|j	|j
B�}|j|d�\}}||jkr�t
dj|���ntjj|�s�tdj|���nd}xetj|�D]T}|jd�r�tjj||�}tjj|�r&||kr&|}q&q�q�W|sHtd	j|���ntjj|d
d�atjj|d
d�aWntk
r�nXWd
|d
k	r�|j|�nXn*tjjjd�atjjjd�ats�tdfStS(u'
    Verify RabbitMQ is installed.
    i(twinregu%SOFTWARE\VMware, Inc.\RabbitMQ ServeruInstall_Diru+Invalid RabbitMQ Server directory type: {0}u!RabbitMQ directory not found: {0}uurabbitmq_server-u2"rabbitmq_server-*" subdirectory not found in: {0}usbinurabbitmqctl.baturabbitmq-plugins.batNurabbitmqctlurabbitmq-pluginsu=Module rabbitmq: module only works when RabbitMQ is installed(tsalttutilstplatformt
is_windowstsalt.ext.six.movesRtNonet	OpenKeyExtHKEY_LOCAL_MACHINEtKEY_READtKEY_WOW64_32KEYtQueryValueExtREG_SZt	TypeErrortformattostpathtisdirtIOErrortlistdirt
startswithtjointRABBITMQCTLtRABBITMQ_PLUGINSt	ExceptiontCloseKeytwhichtFalsetTrue(Rtkeytdir_patht
value_typetsubdir_matchtnametsubdir_path((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt__virtual__"sH

cC@spt|t�rH|ddks)|drltdj|d���qln$d|krltdj|���ndS(NuretcodeiustderruRabbitMQ command failed: {0}uError(t
isinstancetdictRR(tresponse((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt_check_responseTscC@s�t|t�rR|ddks)|drEtdj|d���qv|d}n$d|krvtdj|���ni||6S(NuretcodeiustderruRabbitMQ command failed: {0}ustdoutuError(R,R-RR(R.tmsg((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt_format_responseas
cC@s?tdkr;tdd�jd�d}dj|�antS(u�
    Returns the rabbitmq-plugin command path if we're running an OS that
    doesn't put it in the standard /usr/bin or /usr/local/bin
    This works by taking the rabbitmq-server version and looking for where it
    seems to be hidden in /usr/lib.
    upkg.versionurabbitmq-serveru-iu?/usr/lib/rabbitmq/lib/rabbitmq_server-{0}/sbin/rabbitmq-pluginsN(RRt__salt__tsplitR(tversion((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt_get_rabbitmq_pluginss
	cC@sSt|jd�o|jd�|jd�o6d|kd|k|jd�g�S(u�
    Looks for rabbitmqctl warning, or general formatting, strings that aren't
    intended to be parsed as output.
    Returns a boolean whether the line can be parsed as rabbitmqctl output.
    uListingu...u	u...doneuWARNING:(tanyRtendswith(tline((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt_safe_output�s
	cC@s#g|D]}t|�r|^qS(u�
    Conditionally remove non-relevant first and last line,
    "Listing ..." - "...done".
    outputlist: rabbitmq command output split by newline
    return value: list, conditionally modified, may be empty.
    (R9(toutput_listR8((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt_strip_listing_to_done�scC@s�t|t�rR|ddks)|drEtdj|d���n|d}ni}|dkrpd�}nt|j��}xn|D]f}y|jdd�\}}Wn1tk
r�t	j
d	||�d
||<q�nX||�||<q�W|S(u�
    Convert rabbitmqctl output to a dict of data
    cmdoutput: string output of rabbitmqctl commands
    values_mapper: function object to process the values part of each line
    uretcodeiustderruRabbitMQ command failed: {0}ustdoutcS@s
|jd�S(Nu	(R3(tstring((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt<lambda>�su	iuKCould not find any values for key '%s'. Setting to '%s' to an empty string.uN(R,R-RRRR;t
splitlinesR3t
ValueErrortlogtdebug(t	cmdoutputt
values_mappertrett	data_rowstrowR%tvalues((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt_output_to_dict�s&


	

cC@s<g|j�D]+}t|�r
|j�D]}|^q)q
S(u�
    Convert rabbitmqctl output to a list of strings (assuming whitespace-delimited output).
    Ignores output lines that shouldn't be parsed, like warnings.
    cmdoutput: string output of rabbitmqctl commands
    (R>R9R3(RBR8titem((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt_output_to_list�scC@s/g|j�D]}t|�r
|j�^q
S(u�
    Convert rabbitmqctl output to a list of strings (assuming newline-delimited output).
    Ignores output lines that shouldn't be parsed, like warnings.
    cmdoutput: string output of rabbitmqctl commands
    (R>R9tstrip(RBR8((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt_output_lines_to_list�sc	C@su|dkr4tjjj�r4tjjj�}ntdtddgdt	d|dt	�}d�}t
||�S(	u�
    Return a list of users based off of rabbitmqctl user_list.

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.list_users
    ucmd.run_allu
list_usersu-qtreset_system_localetrunastpython_shellcS@s`d|kr9g|dd!jd�D]9}|j�^q#Sg|dd!jd�D]}|^qPS(Nu,ii����u (R3RK(R<tx((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyR=�s<N(RR	R
RRtusertget_userR2RR#RH(RNtrestfunc((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt
list_users�s
		c	C@sw|dkr4tjjj�r4tjjj�}ntdtddgdt	d|dt	�}t
|�t|d�S(	u�
    Return a list of vhost based on rabbitmqctl list_vhosts.

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.list_vhosts
    ucmd.run_allulist_vhostsu-qRMRNROustdoutN(RR	R
RRRQRRR2RR#R/RJ(RNRS((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytlist_vhosts�s
	
cC@sG|dkr4tjjj�r4tjjj�}n|td|�kS(u�
    Return whether the user exists based on rabbitmqctl list_users.

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.user_exists rabbit_user
    RNN(RR	R
RRRQRRRU(R)RN((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytuser_existss
cC@sG|dkr4tjjj�r4tjjj�}n|td|�kS(u�
    Return whether the vhost exists based on rabbitmqctl list_vhosts.

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.vhost_exists rabbit_host
    RNN(RR	R
RRRQRRRV(R)RN((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytvhost_existss
cC@s/t}|d
kr:t}djd�td�D��}n|d
krntjjj�rntjj	j
�}ntjjj�r�t}djt||�}nt}td||g}t
d|dtdd	d
|d|�}|ryt||�Wqtk
rt||��qXnd}t||�S(u�
    Add a rabbitMQ user via rabbitmqctl user_add <user> <password>

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.add_user rabbit_user password
    ucs@s.|]$}tj�jtjtj�VqdS(N(trandomtSystemRandomtchoiceR<tascii_uppercasetdigits(t.0RP((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pys	<genexpr>0siu"{0}" add_user "{1}" "{2}"uadd_userucmd.run_allRMtoutput_logleveluquietRNROuAddedN(R#RR$RRR	R
RRRQRRRRR2tclear_passwordR tdelete_userR1(R)tpasswordRNtclear_pwROtcmdRSR0((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytadd_user!s6
	


c	C@sr|dkr4tjjj�r4tjjj�}ntdtd|gdt	dt	d|�}d}t
||�S(u�
    Deletes a user via rabbitmqctl delete_user.

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.delete_user rabbit_user
    ucmd.run_alludelete_userRMRORNuDeletedN(RR	R
RRRQRRR2RR#R1(R)RNRSR0((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyRaZs
	cC@s�|d
kr4tjjj�r4tjjj�}ntjjj�rdt}djt	||�}nt
}t	d||g}td|dt
d|ddd|�}d	}t||�S(u�
    Changes a user's password.

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.change_password rabbit_user password
    u!"{0}" change_password "{1}" "{2}"uchange_passworducmd.run_allRMRNR_uquietROuPassword ChangedN(
RR	R
RRRQRRR$RRR#R2R1(R)RbRNRORdRSR0((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytchange_passwordps 
	c	C@sr|dkr4tjjj�r4tjjj�}ntdtd|gdt	d|dt	�}d}t
||�S(u�
    Removes a user's password.

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.clear_password rabbit_user
    ucmd.run_alluclear_passwordRMRNROuPassword ClearedN(RR	R
RRRQRRR2RR#R1(R)RNRSR0((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyR`�s
	cC@s<|dkr4tjjj�r4tjjj�}ny�tdtdgdt	d|dt	�}t
jd|�}|dkr�t�n|j
d�jd�d	}g|jd
�D]}t|�^q�}Wntk
r�d}nXt|�dkrd}nt|�dkr�tjjj�rBt}djt||�}nt	}td||g}td|dt	d|ddd|�}|dd	ks�|dr�t	StSdj|jdd�|jdd��}tdtd|gdt	d|dddt	�}d}	t||	�}
|
j�d	}d|
|kr8t	StS(u�
    .. versionadded:: 2016.3.0

    Checks if a user's password is valid.

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.check_password rabbit_user password
    ucmd.runustatusRMRNROu\{rabbit,"RabbitMQ","(.+)"\}iu-iu.iiiu#"{0}" authenticate_user "{1}" "{2}"uauthenticate_userucmd.run_allR_uquieturetcodeustderruTrabbit_auth_backend_internal:check_user_login(<<"{0}">>, [{{password, <<"{1}">>}}]).u"u\"uevalupassword-checkuinvalid credentialsN(iii(iii(iii(RR	R
RRRQRRR2RR#tretsearchR?tgroupR3tinttlenttupleR$RtreplaceR1tkeys(R)RbRNRStserver_versiontiR4RORdR0t	_responset_key((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytcheck_password�sX(	,

			c	C@sr|dkr4tjjj�r4tjjj�}ntdtd|gdt	d|dt	�}d}t
||�S(u�
    Adds a vhost via rabbitmqctl add_vhost.

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq add_vhost '<vhost_name>'
    ucmd.run_allu	add_vhostRMRNROuAddedN(RR	R
RRRQRRR2RR#R1(tvhostRNRSR0((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt	add_vhost�s
	c	C@sr|dkr4tjjj�r4tjjj�}ntdtd|gdt	d|dt	�}d}t
||�S(u�
    Deletes a vhost rabbitmqctl delete_vhost.

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.delete_vhost '<vhost_name>'
    ucmd.run_alludelete_vhostRMRNROuDeletedN(RR	R
RRRQRRR2RR#R1(RtRNRSR0((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytdelete_vhosts
	u.*c
C@s�|dkr4tjjj�r4tjjj�}ntdtdd|||||gdt	d|dt	�}d}t
||�S(	u�
    Sets permissions for vhost via rabbitmqctl set_permissions

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.set_permissions myvhost myuser
    ucmd.run_alluset_permissionsu-pRMRNROuPermissions SetN(RR	R
RRRQRRR2RR#R1(RtRQtconftwritetreadRNRSR0((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytset_permissions's
		c	C@so|dkr4tjjj�r4tjjj�}ntdtddd|gdt	d|dt	�}t
|�S(	u�
    Lists permissions for vhost via rabbitmqctl list_permissions

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.list_permissions /myvhost
    ucmd.run_allulist_permissionsu-qu-pRMRNRON(RR	R
RRRQRRR2RR#RH(RtRNRS((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytlist_permissions=s
	c	C@sl|dkr4tjjj�r4tjjj�}ntdtd|dgdt	d|dt	�}t
|�S(u�
    List permissions for a user via rabbitmqctl list_user_permissions

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.list_user_permissions user
    ucmd.run_allulist_user_permissionsu-qRMRNRON(RR	R
RRRQRRR2RR#RH(R)RNRS((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytlist_user_permissionsRs
	c	C@s�|dkr4tjjj�r4tjjj�}nt|tt	f�sU|g}nt
dtd|gt|�dtd|dt�}d}t
||�S(u�Add user tags via rabbitmqctl set_user_tags

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.set_user_tags myadmin administrator
    ucmd.run_allu
set_user_tagsRMRNROu
Tag(s) setN(RR	R
RRRQRRR,tlistRlR2RR#R1(R)ttagsRNRSR0((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt
set_user_tagsgs		c	C@sn|dkr4tjjj�r4tjjj�}ntdtdgdt	d|dt	�}t
|�|dS(un
    return rabbitmq status

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.status
    ucmd.run_allustatusRMRNROustdoutN(RR	R
RRRQRRR2RR#R/(RNRS((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytstatuss
	
c	C@sn|dkr4tjjj�r4tjjj�}ntdtdgdt	d|dt	�}t
|�|dS(u~
    return rabbitmq cluster_status

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.cluster_status
    ucmd.run_allucluster_statusRMRNROustdoutN(RR	R
RRRQRRR2RR#R/(RNRS((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytcluster_status�s
	
urabbitc	C@s�tdg}|r"|jd�n|jdj||��|d	krotjjj�rotjjj	�}nt
|�td|dtd|dt�}t
|�t|d�S(
u�
    Join a rabbit cluster

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.join_cluster rabbit.example.com rabbit
    ujoin_clusteru--ramu{0}@{1}ucmd.run_allRMRNROuJoinN(RtappendRRR	R
RRRQRRtstop_appR2R#t	start_appR1(thostRQtram_nodeRNRdRS((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytjoin_cluster�s

"
c	C@sn|dkr4tjjj�r4tjjj�}ntdtdgdt	d|dt	�}t
|�|dS(u�
    Stops the RabbitMQ application, leaving the Erlang node running.

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.stop_app
    ucmd.run_allustop_appRMRNROustdoutN(RR	R
RRRQRRR2RR#R/(RNRS((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyR��s
	
c	C@sn|dkr4tjjj�r4tjjj�}ntdtdgdt	d|dt	�}t
|�|dS(uz
    Start the RabbitMQ application.

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.start_app
    ucmd.run_allu	start_appRMRNROustdoutN(RR	R
RRRQRRR2RR#R/(RNRS((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyR��s
	
c	C@sn|dkr4tjjj�r4tjjj�}ntdtdgdt	d|dt	�}t
|�|dS(u�
    Return a RabbitMQ node to its virgin state

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.reset
    ucmd.run_alluresetRMRNROustdoutN(RR	R
RRRQRRR2RR#R/(RNRS((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytreset�s
	
c	C@sn|dkr4tjjj�r4tjjj�}ntdtdgdt	d|dt	�}t
|�|dS(u�
    Forcefully Return a RabbitMQ node to its virgin state

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.force_reset
    ucmd.run_alluforce_resetRMRNROustdoutN(RR	R
RRRQRRR2RR#R/(RNRS((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytforce_resets
	
c	G@s�|dkr4tjjj�r4tjjj�}ntddg}|j|�t	d|dt
d|dt
�}t|�t|d�S(	u�
    Returns queue details of the / virtual host

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.list_queues messages consumers
    ulist_queuesu-qucmd.run_allRMRNROustdoutN(
RR	R
RRRQRRRtextendR2R#R/RH(RNtargsRdRS((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytlist_queuess

"
c	G@s�|d	kr4tjjj�r4tjjj�}ntddd|g}|j|�t	d|dt
d|dt
�}t|�t|d�S(
u}
    Returns queue details of specified virtual host. This command will consider
    first parameter as the vhost name and rest will be treated as
    queueinfoitem. For getting details on vhost ``/``, use :mod:`list_queues
    <salt.modules.rabbitmq.list_queues>` instead).

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.list_queues messages consumers
    ulist_queuesu-qu-pucmd.run_allRMRNROustdoutN(
RR	R
RRRQRRRR�R2R#R/RH(RtRNR�RdRS((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytlist_queues_vhost(s

"
u/c
	C@s:i}|dkr:tjjj�r:tjjj�}ntdtddd|gdt	d|dt	�}t
|�|d}td	d
kr�tdd�jd
�d}ntdd�jd
�d}xgt
|�D]Y}|jd�}t|�dkrq�n|d|d}}||kr4i||<ni|||<t|�td�kr�|d|||d<|d|||d<|d|||d<|d|||d<q�t|�d}	t|�dkr�|d|||d<n|||ji||	dd6||	dd6||	dd6�q�W|S(u
    Return a dictionary of policies nested by vhost and name
    based on the data returned from rabbitmqctl list_policies.

    Reference: http://www.rabbitmq.com/ha.html

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.list_policies
    ucmd.run_allu
list_policiesu-qu-pRMRNROustdoutu	os_familyuFreeBSDupkg.versionurabbitmq-serveru-iurabbitmqu	iiiu3.7iupatterniuapply_toiu
definitionupriorityN(ii(RR	R
RRRQRRR2RR#R/t
__grains__R3RLRkt
_LooseVersiontupdate(
RtRNRDRStoutputR4R8tpartsR)toffset((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt
list_policies>sD
	

 
c		C@s|d
kr4tjjj�r4tjjj�}nt|t�r[tjj	j
|�}nt|tj�s|t
d��ntdd|g}|r�|jd|g�n|r�|jd|g�n|j|||g�td|dtd|d	t�}tjd
|d�t|d�S(u�
    Set a policy based on rabbitmqctl set_policy.

    Reference: http://www.rabbitmq.com/ha.html

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.set_policy / HA '.*' '{"ha-mode":"all"}'
    u=The 'definition' argument must be a dictionary or JSON stringu
set_policyu-pu
--priorityu
--apply-toucmd.run_allRMRNROuSet policy: %sustdoutuSetN(RR	R
RRRQRRR,R-tjsontdumpsRtstring_typesRRR�R2R#R@RAR1(	RtR)tpatternt
definitiontpriorityRNtapply_toRdRS((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt
set_policy~s "c	C@s�|d
kr4tjjj�r4tjjj�}ntdtdd||gdt	d|dt	�}t
jd|d�t|d	�S(u�
    Delete a policy based on rabbitmqctl clear_policy.

    Reference: http://www.rabbitmq.com/ha.html

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.delete_policy / HA
    ucmd.run_alluclear_policyu-pRMRNROuDelete policy: %sustdoutuDeletedN(
RR	R
RRRQRRR2RR#R@RAR1(RtR)RNRS((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt
delete_policy�s	cC@sc|dkr4tjjj�r4tjjj�}ntd|�}t||ko_|||k�S(u�
    Return whether the policy exists based on rabbitmqctl list_policies.

    Reference: http://www.rabbitmq.com/ha.html

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.policy_exists / HA
    RNN(	RR	R
RRRQRRR�tbool(RtR)RNtpolicies((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt
policy_exists�sc	C@s�|dkr4tjjj�r4tjjj�}nt�ddg}td|dt	dt	d|�}t
|�t|d�S(	u�
        Returns a list of the names of all available plugins (enabled and disabled).

        CLI Example:

        .. code-block:: bash

            salt '*' rabbitmq.list_available_plugins
        ulistu-mucmd.run_allRMRORNustdoutN(RR	R
RRRQRRR5R2R#R/RJ(RNRdRD((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytlist_available_plugins�s
"
c	C@s�|d	kr4tjjj�r4tjjj�}nt�dddg}td|dt	dt	d|�}t
|�t|d�S(
u�
        Returns a list of the names of the enabled plugins.

        CLI Example:

        .. code-block:: bash

            salt '*' rabbitmq.list_enabled_plugins
        ulistu-mu-eucmd.run_allRMRORNustdoutN(RR	R
RRRQRRR5R2R#R/RJ(RNRdRD((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytlist_enabled_plugins�s
"
cC@sD|dkr4tjjj�r4tjjj�}n|t|�kS(u�
    Return whether the plugin is enabled.

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.plugin_is_enabled rabbitmq_plugin_name
    N(RR	R
RRRQRRR�(R)RN((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytplugin_is_enabled�s
c	C@su|dkr4tjjj�r4tjjj�}nt�d|g}td|dt	d|dt	�}t
|d�S(u�
    Enable a RabbitMQ plugin via the rabbitmq-plugins command.

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.enable_plugin foo
    uenableucmd.run_allRMRNROuEnabledN(RR	R
RRRQRRR5R2R#R1(R)RNRdRD((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt
enable_plugin�s

"c	C@su|dkr4tjjj�r4tjjj�}nt�d|g}td|dt	d|dt	�}t
|d�S(u�
    Disable a RabbitMQ plugin via the rabbitmq-plugins command.

    CLI Example:

    .. code-block:: bash

        salt '*' rabbitmq.disable_plugin foo
    udisableucmd.run_allRMRNROuDisabledN(RR	R
RRRQRRR5R2R#R1(R)RNRdRD((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pytdisable_plugins

"(Jt__doc__t
__future__RRRtloggingRRYRgR<tsalt.utils.itertoolsR	tsalt.utils.jsontsalt.utils.pathtsalt.utils.platformtsalt.utils.usertsalt.exceptionsRRtsalt.utils.versionsRR�tsalt.extRR
Rt	getLoggert__name__R@RRRR+R/R1R5R9R;RHRJRLRURVRWRXReRaRfR`RsRuRvRzR{R|RR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((s9/usr/lib/python2.7/site-packages/salt/modules/rabbitmq.pyt<module>s|	2	
				
%				9%QD

Zerion Mini Shell 1.0