o
    *bF  ã                   @   sZ   d dl mZmZmZmZ d dlZG dd„ deƒZG dd„ deeeƒZG dd„ deeƒZdS )	é    )ÚPluginÚRedHatPluginÚDebianPluginÚUbuntuPluginNc                   @   s4   e Zd ZdZdZdZdZdd„ Zdd„ Zd	d
„ Z	dS )ÚOpenStackNeutronzOpenStack NetworkingZopenstack_neutron)Z	openstackZopenstack_controllerZopenstack_computez-/var/lib/config-data/puppet-generated/neutronc                 C   sö   |   d¡r|  dg¡ n|  dg¡ |  d| jd | jd | jd g¡ |  d¡ |  d¡ |  d	¡ d
d„ dD ƒ}dd„ dD ƒ}t|ƒrIt|ƒsQ| j d¡ d S |  d¡ |  d¡ |  d¡ |  d¡ |  d¡ |  d¡ |  d¡ |  d¡ d S )NZall_logsz/var/log/neutron/z/var/log/neutron/*.logz/etc/neutron/z/etc/default/neutron-serverz/etc/my.cnf.d/tripleo.cnfz/var/lib/neutron/z/var/lib/neutron/lockzls -laZR /var/lib/neutron/lockc                 S   ó   g | ]}|t jv ‘qS © ©ÚosÚenviron©Ú.0Úpr   r   úF/usr/lib/python3/dist-packages/sos/report/plugins/openstack_neutron.pyÚ
<listcomp>.   ó    z*OpenStackNeutron.setup.<locals>.<listcomp>)ZOS_USERNAMEZOS_PASSWORDc                 S   r   r   r	   r   r   r   r   r   1   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openstack subnet listzopenstack port listzopenstack router listzopenstack network agent listzopenstack network listzopenstack extension listzopenstack floating ip listzopenstack security group list)	Z
get_optionÚadd_copy_specÚvar_puppet_genZadd_forbidden_pathZadd_cmd_outputÚallÚanyZsoslogZwarning)ÚselfZvars_allZvars_anyr   r   r   Úsetup   s8   
ÿÿü









zOpenStackNeutron.setupc                 C   s&   |   d||¡ |   | jd ||¡ d S )Nz/etc/neutron/*)Zdo_path_regex_subr   )r   ZregexpÚsubstr   r   r   Úapply_regex_subB   s
   þz OpenStackNeutron.apply_regex_subc                 C   s>   g d¢}dg}|   dd |¡ d¡ |   dd |¡ d¡ d S )N)Zrabbit_passwordZqpid_passwordZnova_admin_passwordZxenapi_connection_passwordZpasswordZserver_authZadmin_passwordZmetadata_proxy_shared_secretZeapi_passwordZcrd_passwordZprimary_l3_host_passwordZ
serverauthZucsm_passwordZha_vrrp_auth_passwordZssl_key_passwordZnsx_passwordZvcenter_passwordZedge_appliance_passwordZtenant_admin_passwordZapic_passwordZtransport_urlZ
connectionz((?m)^\s*(%s)\s*=\s*)(.*)ú|z\1*********z-((?m)^\s*(%s)\s*=\s*(.*)://(\w*):)(.*)(@(.*))z\1*********\6)r   Újoin)r   Zprotect_keysZconnection_keysr   r   r   ÚpostprocI   s   	þÿýzOpenStackNeutron.postprocN)
Ú__name__Ú
__module__Ú__qualname__Z
short_descZplugin_nameZprofilesr   r   r   r   r   r   r   r   r      s    *r   c                       s(   e Zd ZdZdd„ Z‡ fdd„Z‡  ZS )ÚDebianNeutron)úneutron-commonzneutron-plugin-ciscoz neutron-plugin-linuxbridge-agentzneutron-plugin-nicirazneutron-plugin-openvswitchz neutron-plugin-openvswitch-agentzneutron-plugin-ryuzneutron-plugin-ryu-agentzneutron-serverzpython-neutronzpython-neutronclientc                 C   s
   |   d¡S )Nr!   )Zis_installed©r   r   r   r   Úcheck_enabledo   s   
zDebianNeutron.check_enabledc                    ó   t t| ƒ ¡  |  d¡ d S )Nz/etc/sudoers.d/neutron_sudoers)Úsuperr    r   r   r"   ©Ú	__class__r   r   r   r   ó   zDebianNeutron.setup)r   r   r   Úpackagesr#   r   Ú__classcell__r   r   r&   r   r    `   s    r    c                       s    e Zd ZdZ‡ fdd„Z‡  ZS )ÚRedHatNeutron)zopenstack-selinuxc                    r$   )Nz/etc/sudoers.d/neutron-rootwrap)r%   r+   r   r   r"   r&   r   r   r   {   r(   zRedHatNeutron.setup)r   r   r   r)   r   r*   r   r   r&   r   r+   w   s    r+   )	Zsos.report.pluginsr   r   r   r   r
   r   r    r+   r   r   r   r   Ú<module>   s
   P