File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/__pycache__/rabbitmq.cpython-310.pyc
o
�N�g3� � @ sZ d Z ddlZddlZddlZddlZddlZddlZddlZddl Zddl
ZddlZddlm
Z
mZ ddlmZ e�e�Zdadadd� Zdd� Zd d
� Zdd� Zd
d� Zdd� Zdddd�Zdd� Zdd� Zdddd�Zdddd�Z dddd�Z!dddd�Z"dddd �Z#ddd!d"�Z$ded#d$�Z%ddd%d&�Z&ddd'd(�Z'ddd)d*�Z(ddd+d,�Z)ddd-d.�Z*ddd/d0�Z+dfd2d3�Z,ddd4d5�Z-ddd6d7�Z.ddd8d9�Z/ddd:d;�Z0ddd<d=�Z1dgd?d@�Z2dddAdB�Z3dddCdD�Z4dddEdF�Z5dddGdH�Z6dddIdJ�Z7dddKdL�Z8dhdNdO�Z9 didPdQ�Z:dddRdS�Z;dddTdU�Z<dddVdW�Z=dddXdY�Z>dddZd[�Z?ddd\d]�Z@ddd^d_�ZA djd`da�ZBdddbdc�ZCdS )kz�
Module to provide RabbitMQ compatibility to Salt.
Todo: A lot, need to add cluster support, logging, and minion configuration
data.
� N)�CommandExecutionError�SaltInvocationError)�Versionc C sX t jj�� r�ddl} d}z�zk| �| jdd| j| jB �}| � |d�\}}|| j
kr/td|� ���tj
�|�s<td|� ���d}t�|�D ]}|�d�r]tj
�||�}tj
�|�r]||kr]|}qC|sgtd |� ���tj
�|d
d�atj
�|d
d�aW n ty� Y nw W |dur�| �|� n|dur�| �|� w w t jj
�d
�at jj
�d�ats�dS dS )z'
Verify RabbitMQ is installed.
r Nz%SOFTWARE\VMware, Inc.\RabbitMQ ServerZInstall_Dirz(Invalid RabbitMQ Server directory type: zRabbitMQ directory not found: � zrabbitmq_server-z/"rabbitmq_server-*" subdirectory not found in: Zsbinzrabbitmqctl.batzrabbitmq-plugins.batZrabbitmqctlzrabbitmq-plugins)Fz=Module rabbitmq: module only works when RabbitMQ is installedT)�salt�utils�platform�
is_windows�winreg� OpenKeyEx�HKEY_LOCAL_MACHINEZKEY_READZKEY_WOW64_32KEY�QueryValueExZREG_SZ� TypeError�os�path�isdir�OSError�listdir�
startswith�join�RABBITMQCTL�RABBITMQ_PLUGINS� ExceptionZCloseKey�which)r
�keyZdir_pathZ
value_typeZsubdir_match�nameZsubdir_path� r �I/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/rabbitmq.py�__virtual__ sZ
�
�����
���r c C sN t | t�r| d dks| d rtd�| d ���d S d| v r%td| � ���d S )N�retcoder �stderr�RabbitMQ command failed: {}�Error�RabbitMQ command failed: ��
isinstance�dictr �format)�responser r r �_check_responseO s
���r) c C s^ t | t�r | d dks| d rtd�| d ���| d } || iS d| v r+td| � ���|| iS )Nr r r r! �stdoutr"