U
    -_g3                     @   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                       sB   e Zd ZdZdZdZdZdddgZdZd	d
 Z	 fddZ
  ZS )OVNHostzOVN ControllerZovn_host)ZnetworkZvirtZopenstack_edpmzovn-controller.pidz/var/lib/openvswitch/ovnz/usr/local/var/run/openvswitchz/run/openvswitch c                    s   t jdr  jt jd  dr6 d n
 d   fdd jD   d   j d j d	 j d
g  j	dd d S )NZ
OVS_RUNDIRall_logs/var/log/ovn//var/log/ovn/*.logc                    s   g | ]}  | jqS  )	path_joinpidfile).0Z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)Zunits)
osenvironget	pid_pathsappend
get_optionadd_copy_specZadd_cmd_outputovs_cmd_preZ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)Zpath_isfiler   r   )r   Z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__Z
short_descZplugin_nameZ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                    s@   t    | | jg | dr0| dg n| 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$   packagesr'   r   r%   r   r   r    r   r&   7   s   r&   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rXd| _| | j dg | drD| | j dg n| | j dg t   d S )Nzopenstack-hypervisorzopenstack-hypervisor.z/lib/ovn-metadata-proxy/*.confr   r	   r
   )Zis_installedr   r   sunbeam_common_dirr   r   r   r   r    r   r   r   V   s    




zDebianOVNHost.setup)r"   r#   r$   r(   r*   r   r   r%   r   r   r    r   r)   L   s
   r)   )	r   Zsos.report.pluginsr   r   r   r   r   r&   r)   r   r   r   r   <module>   s   (