a Ö>ïh,ã@sZddlZddlmZmZmZmZGdd„deƒZGdd„deeeƒZGdd„deeƒZdS) éN)ÚPluginÚ RedHatPluginÚ DebianPluginÚ UbuntuPluginc@s4eZdZdZdZdZdZdd„Zdd„Zd d „Z d S) ÚOpenStackNeutronzOpenStack NetworkingZopenstack_neutron)Z openstackZopenstack_controllerZopenstack_computeZopenstack_edpmz-/var/lib/config-data/puppet-generated/neutronc Cs$| d¡r| dg¡n | dg¡| d|jd|jd|jdg¡| d¡| d¡|jdd d | |j¡r~|j}nd }|›d }g}gd ¢}zxt|dddT}| ¡ ¡D]6}|sÀq¶|  d¡}|d  ¡|vr¶|  |d  ¡¡q¶Wdƒn1s0YWn<t yL}z"|  d|›d|›¡WYd}~n d}~00| |¡dd„dDƒ} dd„dDƒ} t| ƒrˆt| ƒs–|j d¡nzgd¢} | D]l} | d| ›d¡} | ddkr¢| d }| ¡d!d"…D],}|  ¡d}d| ›d#|›}| |¡qÞq¢| d$d%d&œ¡dS)'NZall_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/lockT)Ú recursiveÚz%/etc/neutron/plugins/ml2/ml2_conf.ini)Zovn_nb_private_keyZovn_nb_certificateZovn_nb_ca_certZovn_sb_private_keyZovn_sb_certificateZovn_sb_ca_certÚrzUTF-8)Úencodingú=rézCould not open conf file z: cSsg|]}|tjv‘qS©©ÚosÚenviron©Ú.0Úpr r úH/usr/lib/python3.9/site-packages/sos/report/plugins/openstack_neutron.pyÚ Oóz*OpenStackNeutron.setup..)Z OS_USERNAMEZ OS_PASSWORDcSsg|]}|tjv‘qSr rrr r rrRr)ZOS_TENANT_NAMEZOS_PROJECT_NAMEz}Not all environment variables set. Source the environment file for the user intended to connect to the OpenStack environment.)ZsubnetÚportZrouterz network agentÚnetworkÚ extensionz floating ipzsecurity groupz openstack z listÚstatusÚoutputééÿÿÿÿz show Zneutronml2_confZneutron_server_log)z'.*/etc/neutron/plugins/ml2/ml2_conf.iniz/var/log/neutron/server.log)Z get_optionÚ add_copy_specÚvar_puppet_genZadd_forbidden_pathZadd_dir_listingZ path_existsÚopenÚreadÚ splitlinesÚsplitÚstripÚappendÚIOErrorZ _log_errorÚallÚanyZsoslogZwarningZcollect_cmd_outputZadd_cmd_outputZ add_file_tags)ÚselfZml2_preZ ml2_conf_fileZ ml2_certsZ ml2_cert_keysÚcfileÚlineÚwordsÚerrorZvars_allZvars_anyZcmdsÚcmdÚresZ neutron_itemsÚitemZshow_cmdr r rÚsetupsh ÿÿü      8 ÿ   þzOpenStackNeutron.setupcCs&| d||¡| |jd||¡dS)z Apply regex substitution z/etc/neutron/*N)Zdo_path_regex_subr)r)ZregexpÚsubstr r rÚapply_regex_subts þz OpenStackNeutron.apply_regex_subcCsJgd¢}dg}d |¡}| dd |¡›dd¡| d|›dd¡dS) N)Zrabbit_passwordZ qpid_passwordZnova_admin_passwordZxenapi_connection_passwordÚpasswordZ server_authZadmin_passwordZmetadata_proxy_shared_secretZ eapi_passwordZ crd_passwordZprimary_l3_host_passwordZ serverauthZ ucsm_passwordZha_vrrp_auth_passwordZssl_key_passwordZ nsx_passwordZvcenter_passwordZedge_appliance_passwordZtenant_admin_passwordZ apic_passwordZ transport_urlZmemcache_secret_keyZ connectionú|z(^\s*(z )\s*=\s*)(.*)z \1*********z!)\s*=\s*(.*)://(\w*):)(.*)(@(.*))z \1*********\6)Újoinr3)r)Z protect_keysZconnection_keysZ join_con_keysr r rÚpostproc|s  þ þzOpenStackNeutron.postprocN) Ú__name__Ú __module__Ú __qualname__Z short_descZ plugin_nameZprofilesrr1r3r7r r r rrs[rcs(eZdZdZdd„Z‡fdd„Z‡ZS)Ú DebianNeutron) úneutron-commonzneutron-plugin-ciscoz neutron-plugin-linuxbridge-agentzneutron-plugin-nicirazneutron-plugin-openvswitchz neutron-plugin-openvswitch-agentzneutron-plugin-ryuzneutron-plugin-ryu-agentzneutron-serverzpython-neutronzpython3-neutroncCs | d¡S)Nr<)Z is_installed©r)r r rÚ check_enabled¤szDebianNeutron.check_enabledcstƒ ¡| d¡dS)Nz/etc/sudoers.d/neutron_sudoers)Úsuperr1rr=©Ú __class__r rr1§s zDebianNeutron.setup)r8r9r:Úpackagesr>r1Ú __classcell__r r r@rr;•sr;cs$eZdZdZdZ‡fdd„Z‡ZS)Ú RedHatNeutron)zopenstack-selinuxz'/var/lib/config-data/ansible-generated/cs2tƒ ¡| d|jd|jd|jdg¡dS)Nz/etc/sudoers.d/neutron-rootwrapz/neutron-dhcp-agent/z/neutron-dhcp-ovn/z/neutron-sriov-agent/)r?r1rÚvar_ansible_genr=r@r rr1±s üzRedHatNeutron.setup)r8r9r:rBrEr1rCr r r@rrD¬srD) rZsos.report.pluginsrrrrrr;rDr r r rÚ s