o
    *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|ƒr8t|ƒs@| j d¡ d S |  g d¢¡ 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   ó   g | ]}|t jv ‘qS © ©ÚosÚenviron©Ú.0Úpr	   r	   ú</usr/lib/python3/dist-packages/sos/report/plugins/gnocchi.pyÚ
<listcomp>'   ó    z!Gnocchi.setup.<locals>.<listcomp>)ZOS_USERNAMEZOS_PASSWORDc                 S   r   r	   r
   r   r	   r	   r   r   *   r   )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   s"   ÿ

þ
þ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