a G%@iq@sZddlZddlmZmZmZmZGdddeZGdddeeeZGdddeeZdS) N)Plugin RedHatPlugin DebianPlugin UbuntuPluginc@s4eZdZdZdZdZdZddZddZd d Z d S) OpenStackNeutronzOpenStack NetworkingZopenstack_neutron)Z openstackZopenstack_controllerZopenstack_computeZopenstack_edpmz-/var/lib/config-data/puppet-generated/neutronc Cs$|dr|dgn |dg|d|jd|jd|jdg|d|d|jdd d ||jr~|j}nd }|d }g}gd }zxt|dddT}|D]6}|sq| d}|d |vr| |d qWdn1s0YWn<t yL}z"| d|d|WYd}~n d}~00||dddD} dddD} t| rt| s|jdnzgd} | 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) recursivez%/etc/neutron/plugins/ml2/ml2_conf.ini)Zovn_nb_private_keyZovn_nb_certificateZovn_nb_ca_certZovn_sb_private_keyZovn_sb_certificateZovn_sb_ca_certrzUTF-8)encoding=rzCould not open conf file z: cSsg|]}|tjvqSosenviron.0pr r H/usr/lib/python3.9/site-packages/sos/report/plugins/openstack_neutron.py Oz*OpenStackNeutron.setup..)Z OS_USERNAMEZ OS_PASSWORDcSsg|]}|tjvqSr 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.)ZsubnetportZrouterz network agentnetwork extensionz floating ipzsecurity groupz openstack z liststatusoutputz show Zneutronml2_confZneutron_server_log)z'.*/etc/neutron/plugins/ml2/ml2_conf.iniz/var/log/neutron/server.log)Z get_option add_copy_specvar_puppet_genZadd_forbidden_pathZadd_dir_listingZ path_existsopenread splitlinessplitstripappendIOErrorZ _log_errorallanyZsoslogZwarningZcollect_cmd_outputZadd_cmd_outputZ add_file_tags)selfZml2_preZ ml2_conf_fileZ ml2_certsZ ml2_cert_keyscfilelinewordserrorZvars_allZvars_anyZcmdscmdresZ neutron_itemsitemZshow_cmdr r rsetupsh       8    zOpenStackNeutron.setupcCs&|d||||jd||dS)z Apply regex substitution z/etc/neutron/*N)Zdo_path_regex_subr)r)Zregexpsubstr r rapply_regex_subts z OpenStackNeutron.apply_regex_subcCsJgd}dg}d|}|dd|dd|d|dddS) N)z(.*_)?(key|password|secret)z server_?authZ transport_urlZ 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 rpostproc|s  zOpenStackNeutron.postprocN) __name__ __module__ __qualname__Z short_descZ plugin_nameZprofilesrr1r3r6r r r rrs[rcs(eZdZdZddZfddZZS) 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 |dS)Nr;)Z is_installedr)r r r check_enabledszDebianNeutron.check_enabledcst|ddS)Nz/etc/sudoers.d/neutron_sudoers)superr1rr< __class__r rr1s zDebianNeutron.setup)r7r8r9packagesr=r1 __classcell__r r r?rr:sr:cs$eZdZdZdZfddZZS) RedHatNeutron)zopenstack-selinuxz'/var/lib/config-data/ansible-generated/cs2t|d|jd|jd|jdgdS)Nz/etc/sudoers.d/neutron-rootwrapz/neutron-dhcp-agent/z/neutron-dhcp-ovn/z/neutron-sriov-agent/)r>r1rvar_ansible_genr<r?r rr1s zRedHatNeutron.setup)r7r8r9rArDr1rBr r r?rrCsrC) rZsos.report.pluginsrrrrrr:rCr r r r s