o
    O6ufŠ  ã                   @   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Zdd„ Zdd„ ZdS )	ÚGnocchizGnocchi - Metric as a serviceÚopenstack_gnocchi)Ú	openstackÚopenstack_controllerNc                 C   s–   |   dg¡ |  d¡r|   dd| j› d�g¡ n|   dd| j› d�g¡ dd	„ d
D ƒ}dd	„ dD ƒ}t|ƒr:t|ƒsB| j d¡ d S |  g d¢¡ d S )Nú/etc/gnocchi/*Úall_logsz/var/log/gnocchi/*z	/var/log/z
*/gnocchi*z/var/log/gnocchi/*.logz*/gnocchi*.logc                 S   ó   g | ]}|t jv ‘qS © ©ÚosÚenviron©Ú.0Úpr   r   úF/usr/lib/python3/dist-packages/sos/report/plugins/openstack_gnocchi.pyÚ
<listcomp>(   ó    z!Gnocchi.setup.<locals>.<listcomp>)ÚOS_USERNAMEÚOS_PASSWORDc                 S   r   r   r   r   r   r   r   r   +   r   )ÚOS_TENANT_NAMEÚ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_specÚ
get_optionÚ	apachepkgÚallÚanyÚsoslogÚwarningÚadd_cmd_output)ÚselfÚvars_allÚvars_anyr   r   r   Úsetup   s"   ÿ
þþzGnocchi.setupc                 C   s   |   ddd¡ d S ©Nz/etc/gnocchi/gnocchi.confz2(ceph_secret|password|memcache_secret_key)\s?=(.*)z\1=*****)Údo_file_sub©r#   r   r   r   Úpostproc<   s
   ýzGnocchi.postproc)	Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesr   r&   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 )ÚRedHatGnocchiÚhttpdz-/var/lib/config-data/puppet-generated/gnocchi)zopenstack-gnocchi-metricdzopenstack-gnocchi-commonzopenstack-gnocchi-statsdzopenstack-gnocchi-apizopenstack-gnocchi-carbonarac                    s@   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   Úvar_puppet_genr)   ©Ú	__class__r   r   r&   O   s   

ûzRedHatGnocchi.setupc                    s"   t ƒ  ¡  |  | jd dd¡ d S r'   )r3   r*   r(   r4   r)   r5   r   r   r*   Y   s   
üzRedHatGnocchi.postproc)	r+   r,   r-   r   r4   Úpackagesr&   r*   Ú__classcell__r   r   r5   r   r1   D   s    
r1   c                   @   s   e Zd ZdZdZdS )ÚDebianGnocchiÚapache2)zgnocchi-apizgnocchi-metricdzgnocchi-commonzgnocchi-statsdzpython-gnocchizpython3-gnocchiN)r+   r,   r-   r   r7   r   r   r   r   r9   c   s    r9   )	r   Úsos.report.pluginsr   r   r   r   r   r1   r9   r   r   r   r   Ú<module>   s
   4