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eZG dd deeZdS )	    N)PluginRedHatPluginDebianPluginUbuntuPluginc                   @   s<   e Zd ZdZdZdZdZed Zg dZdd Z	d	d
 Z
dS )OpenStackOctaviazOpenstack OctaviaZopenstack_octavia)Z	openstackZopenstack_controllerz/var/lib/config-dataz/puppet-generated/octavia)ZamphoraZavailabilityzoneZavailabilityzoneprofileZflavorZflavorprofileZhealthmonitorZl7policyZlistenerZpoolZproviderZquotac                 C   s  |  dddd| jd | jd | jd | jd g | d	 | | jd	  | | jd	  | d
r:|  dg n|  dg dd dD }dd dD }t|rVt|sh| dsh| dsh| j	d d S | j
ddd | jD ]4}| j
d| |d d| }| |}|d dkr|d  D ]}| d }| j
d||f |d qqrd}| |}|d dkr|d  D ]}| d }| j
d| d d qd S d S )!Nz*/etc/sysconfig/network-scripts/ifcfg-o-hm0z"/etc/logrotate.d/openstack-octavia/etc/octavia/*z/var/lib/octaviaz/octavia/etc/octaviaz/etc/octaviaz/etc/rsyslog.dz/etc/my.cnf.d/tripleo.cnfz/etc/octavia/certsall_logsz/var/log/octavia/*z/var/log/octavia/*.logc                 S      g | ]}|t jv qS  osenviron.0pr
   r
   F/usr/lib/python3/dist-packages/sos/report/plugins/openstack_octavia.py
<listcomp>A       z*OpenStackOctavia.setup.<locals>.<listcomp>)ZOS_USERNAMEZOS_PASSWORDc                 S   r	   r
   r   r   r
   r
   r   r   D   r   )ZOS_TENANT_NAMEZOS_PROJECT_NAMEzpython2-octaviaclientzpython3-octaviaclientzNot all environment variables set or octavia client package not installed.Source the environment file for the user intended to connect to the OpenStack environment and install octavia client package.zopenstack loadbalancer listZloadbalancer)Zsubdirzopenstack loadbalancer %s listz-openstack loadbalancer %s list -f value -c idstatusr   outputz!openstack loadbalancer %s show %sz5openstack loadbalancer provider list -f value -c namez2openstack loadbalancer provider capability list %sZprovider_capability)add_copy_specvar_config_datavar_puppet_genZadd_forbidden_path
get_optionallanyZis_installedZsoslogZwarningZadd_cmd_output	resourcesZexec_cmd
splitlinessplit)selfZvars_allZvars_anyrescmdretZentr   r
   r
   r   setup$   st   






zOpenStackOctavia.setupc                 C   s<   g d}dd | }| d|d | | jd |d d S )N)Zca_private_key_passphraseZheartbeat_keyZpasswordZ
connectionZtransport_urlZserver_certs_key_passphrasez((?m)^\s*(%s)\s*=\s*)(.*)|r   z\1*********)joinZdo_path_regex_subr   )r   Zprotect_keysZregexpr
   r
   r   postprocn   s   zOpenStackOctavia.postprocN)__name__
__module____qualname__Z
short_descZplugin_nameZprofilesr   r   r   r#   r&   r
   r
   r
   r   r      s    Jr   c                       s    e Zd ZdZ fddZ  ZS )DebianOctavia)zoctavia-commonzoctavia-apic                    s8   t t|   | dr| dg d S | dg d S )Nr   z/var/log/apache2/octavia*z/var/log/apache2/octavia*.log)superr*   r#   r   r   )r   	__class__r
   r   r#      s   


zDebianOctavia.setup)r'   r(   r)   packagesr#   __classcell__r
   r
   r,   r   r*   |   s    r*   c                   @   s   e Zd ZdZdS )RedHatOctavia)zopenstack-selinuxN)r'   r(   r)   r.   r
   r
   r
   r   r0      s    r0   )	r   Zsos.report.pluginsr   r   r   r   r   r*   r0   r
   r
   r
   r   <module>   s
   p