File: //usr/lib/python3.6/site-packages/glances/exports/__pycache__/glances_rabbitmq.cpython-36.pyc
3
Eo�cH � @ sh d Z ddlZddlZddlZddlmZ ddlmZ ddlm Z ddl
mZ ddlZG dd� de�Z
dS ) zJMS interface class.� N)�Number)�range)�logger)�
GlancesExportc s2 e Zd ZdZd � fdd� Zdd� Zdd� Z� ZS )
�Exportz.This class manages the rabbitMQ export module.Nc sp t t| �j||d� d| _d| _d| _d| _| jddddddgd gd
�| _| jsXt d� t
j� | _| j
� | _dS )zInit the RabbitMQ export IF.)�config�argsNZrabbitmq�host�port�user�password�queue�protocol)ZmandatoriesZoptionszMissing RABBITMQ config)�superr �__init__r r r
r Z load_conf�
export_enable�exit�socketZgethostname�hostname�init�client)�selfr r )� __class__� �&/usr/lib/python3.6/glances_rabbitmq.pyr s
zExport.__init__c C s� | j s
dS | jdk r*| jj� dkr*d| _nd| _yNtj| jd | j d | j d | j d | j d �}tj |�}|j
� }|S tk
r� } z(tj
d| j| j|f � tjd � W Y dd}~X nX dS )
z+Init the connection to the rabbitmq server.NZamqpsZamqpz://�:�@�/z.Connection to rabbitMQ server %s:%s failed. %s� )r r �lower�pikaZ
URLParametersr r r r
ZBlockingConnection�channel� Exceptionr Zcritical�sysr )r Z
parametersZ
connectionr! �er r r r 7 s 4
zExport.initc C s� d| j d | d tjj� j� }xFtt|��D ]6}t|| t�sHq2q2|d|| d t|| � 7 }q2W t j
|� y| jjd| j
|d� W n0 tk
r� } zt jd| � W Y d d }~X nX d S )
zWrite the points in RabbitMQ.z hostname=z, name=z, dateinfo=z, �=� )ZexchangeZrouting_keyZbodyz%Can not export stats to RabbitMQ (%s)N)r �datetimeZutcnowZ isoformatr �len�
isinstancer �strr �debugr Z
basic_publishr
r"