U
    *bÊ  ã                   @   sZ   d dl Z d dlmZmZmZmZ G dd„ deƒZG dd„ deeƒZG dd„ deeeƒZdS )	é    N)ÚPluginÚRedHatPluginÚDebianPluginÚUbuntuPluginc                   @   s(   e Zd ZdZdZdZdd„ Zdd„ ZdS )	ÚGnocchizGnocchi - Metric as a serviceZgnocchi)Z	openstackZopenstack_controllerc                 C   s˜   |   dg¡ |  d¡r.|   dd | j¡g¡ n|   dd | j¡g¡ dd„ d	D ƒ}d
d„ dD ƒ}t|ƒrpt|ƒs~| j d¡ n|  ddddddg¡ d S )Nú/etc/gnocchi/*Zall_logsz/var/log/gnocchi/*z/var/log/{}*/gnocchi*z/var/log/gnocchi/*.logz/var/log/{}*/gnocchi*.logc                 S   s   g | ]}|t jk‘qS © ©ÚosÚenviron©Ú.0Úpr   r   ú</usr/lib/python3/dist-packages/sos/report/plugins/gnocchi.pyÚ
<listcomp>'   s     z!Gnocchi.setup.<locals>.<listcomp>)ZOS_USERNAMEZOS_PASSWORDc                 S   s   g | ]}|t jk‘qS r   r	   r   r   r   r   r   *   s     )ZOS_TENANT_NAMEZOS_PROJECT_NAMEz}Not all environment variables set. Source the environment file for the user intended to connect to the OpenStack environment.zgnocchi --versionzgnocchi statuszgnocchi capabilities listzgnocchi archive-policy listzgnocchi resource listzgnocchi resource-type list)	Úadd_copy_specZ
get_optionÚformatÚ	apachepkgÚallÚanyZsoslogZwarningZadd_cmd_output)ÚselfZvars_allZvars_anyr   r   r   Úsetup   s0    ÿ

þ
þúzGnocchi.setupc                 C   s    |   ddd¡ |   ddd¡ d S )Nú/etc/gnocchi/gnocchi.confzceph_secret\s?=(.*)zceph_secret=*****zpassword\s?=(.*)úpassword=*****)Údo_file_sub©r   r   r   r   Úpostproc;   s    ýýzGnocchi.postprocN)Ú__name__Ú
__module__Ú__qualname__Z
short_descZplugin_nameZprofilesr   r   r   r   r   r   r      s
   $r   c                       s4   e Zd ZdZdZdZ‡ fdd„Z‡ fdd„Z‡  ZS )ÚRedHatGnocchiZhttpdz-/var/lib/config-data/puppet-generated/gnocchi)zopenstack-gnocchi-metricdzopenstack-gnocchi-commonzopenstack-gnocchi-statsdzopenstack-gnocchi-apizopenstack-gnocchi-carbonarac                    sD   t t| ƒ ¡  |  | jd | jd | jd | jd | jd g¡ d S )Nr   z/etc/httpd/conf/*z/etc/httpd/conf.d/*z#/etc/httpd/conf.modules.d/wsgi.confz/etc/my.cnf.d/tripleo.cnf)Úsuperr    r   r   Úvar_puppet_genr   ©Ú	__class__r   r   r   S   s    ûzRedHatGnocchi.setupc                    s&   t t| ƒ ¡  |  | jd dd¡ d S )Nr   zpassword=(.*)r   )r!   r    r   r   r"   r   r#   r   r   r   ]   s    üzRedHatGnocchi.postproc)	r   r   r   r   r"   Úpackagesr   r   Ú__classcell__r   r   r#   r   r    H   s
   
r    c                   @   s   e Zd ZdZdZdS )ÚDebianGnocchiZapache)zgnocchi-apizgnocchi-metricdzgnocchi-commongnocchi-statsdzpython3-gnocchiclientN)r   r   r   r   r%   r   r   r   r   r'   g   s   r'   )	r
   Zsos.report.pluginsr   r   r   r   r   r    r'   r   r   r   r   Ú<module>   s   8