o
    O6uf3  ã                   @   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g d¢ZdZdd„ Z	‡ fd	d
„Z
‡  ZS )ÚOVNHostzOVN ControllerÚovn_host)ÚnetworkÚvirtÚopenstack_edpmzovn-controller.pid)z/var/lib/openvswitch/ovnz/usr/local/var/run/openvswitchz/run/openvswitchÚ c                    sœ   t j d¡rˆ j t j d¡¡ ˆ  d¡rˆ  d¡ nˆ  d¡ ˆ  ‡ fdd„ˆ jD ƒ¡ ˆ  d¡ ˆ  ˆ j› d�ˆ j› d	�ˆ j› d
�g¡ ˆ j	dd� d S )NÚ
OVS_RUNDIRÚall_logsú/var/log/ovn/ú/var/log/ovn/*.logc                    s   g | ]	}ˆ   |ˆ j¡‘qS © )Ú	path_joinÚpidfile)Ú.0Úpp©Úselfr   ú=/usr/lib/python3/dist-packages/sos/report/plugins/ovn_host.pyÚ
<listcomp>%   s    ÿz!OVNHost.setup.<locals>.<listcomp>z/etc/sysconfig/ovn-controllerz)ovs-ofctl -O OpenFlow13 dump-flows br-intzovs-vsctl list-brzovs-vsctl list Open_vSwitchzovn-controller)Úunits)
ÚosÚenvironÚgetÚ	pid_pathsÚappendÚ
get_optionÚadd_copy_specÚadd_cmd_outputÚovs_cmd_preÚadd_journalr   r   r   r   Úsetup   s   

ÿ



ýzOVNHost.setupc                    s"   t ‡ fdd„ˆ jD ƒƒptƒ  ¡ S )Nc                 3   s$   � | ]}ˆ   ˆ  |ˆ j¡¡V  qd S )N)Úpath_isfiler   r   )r   Úpid_pathr   r   r   Ú	<genexpr>3   s   € ÿz(OVNHost.check_enabled.<locals>.<genexpr>)Úanyr   ÚsuperÚcheck_enabledr   ©Ú	__class__r   r   r*   2   s
   ÿÿzOVNHost.check_enabled)Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesr   r   r"   r$   r*   Ú__classcell__r   r   r+   r   r      s    r   c                       s$   e Zd ZdZdZ‡ fdd„Z‡  ZS )ÚRedHatOVNHost)zopenvswitch-ovn-hostz
ovn.*-hostz4/var/lib/config-data/ansible-generated/ovn-bgp-agentc                    sB   t ƒ  ¡  |  | jg¡ |  d¡r|  dg¡ d S |  dg¡ d S )Nr   z"/var/log/containers/ovn-bgp-agent/z'/var/log/containers/ovn-bgp-agent/*.log)r)   r$   r    Úvar_ansible_genr   r   r+   r   r   r$   <   s   
ÿ

ÿ
ÿzRedHatOVNHost.setup)r-   r.   r/   Úpackagesr5   r$   r3   r   r   r+   r   r4   7   s    r4   c                       s0   e Zd ZdZdZe› d�gZ‡ fdd„Z‡  ZS )ÚDebianOVNHost)zovn-hostz%/var/snap/openstack-hypervisor/commonz/run/ovnc                    sf   |   d¡r,d| _|  | j› d�g¡ |  d¡r"|  | j› d�g¡ n
|  | j› d�g¡ tƒ  ¡  d S )Nzopenstack-hypervisorzopenstack-hypervisor.z/lib/ovn-metadata-proxy/*.confr   r   r   )Úis_installedr"   r    Úsunbeam_common_dirr   r)   r$   r   r+   r   r   r$   V   s   

ÿ

ÿ
ÿzDebianOVNHost.setup)r-   r.   r/   r6   r9   r   r$   r3   r   r   r+   r   r7   L   s    ÿr7   )	r   Úsos.report.pluginsr   r   r   r   r   r4   r7   r   r   r   r   Ú<module>   s
   
(