3 ܓiq@sZddlZddlmZmZmZmZGdddeZGdddeeeZGdddeeZdS) N)Plugin RedHatPlugin DebianPlugin UbuntuPluginc@s4eZdZdZdZdZdZdd Zd d Zd d Z dS)OpenStackNeutronzOpenStack NetworkingZopenstack_neutron openstackopenstack_controlleropenstack_computeopenstack_edpmz-/var/lib/config-data/puppet-generated/neutroncCs,|jdr|jdgn |jdg|jd|jd|jd|jdg|jd|jd|jdd d |j|jr~|j}nd }|d }g}d dddddg}yft|dddN}xF|jjD]6}|sq|j d}|dj |kr|j |dj qWWdQRXWn:t k r@}z|j d|d|WYdd}~XnX|j|ddd4D} ddd5D} t| oxt| s|jjd"nd#d$d%d&d'd(d)d*g} xx| D]p} |jd+| d,} | d-dkr| d.}x@|jd/d6D],}|j d}d+| d0|}|j|qWqW|jd1d2d3dS)7NZall_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.iniZovn_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|]}|tjkqS)osenviron).0prr'/usr/lib/python3.6/openstack_neutron.py Osz*OpenStackNeutron.setup.. OS_USERNAME OS_PASSWORDcSsg|]}|tjkqSr)rr)rrrrrrRsOS_TENANT_NAMEOS_PROJECT_NAMEz}Not all environment variables set. Source the environment file for the user intended to connect to the OpenStack environment.ZsubnetZportZrouterz network agentZnetwork extensionz floating ipzsecurity groupz openstack z listZstatusoutputz show Zneutronml2_confZneutron_server_log)z'.*/etc/neutron/plugins/ml2/ml2_conf.iniz/var/log/neutron/server.log)rr)rr)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_keyscfilelineZwordserrorZvars_allZvars_anyZcmdscmdresZ neutron_itemsitemZshow_cmdrrrsetupsx       $(   zOpenStackNeutron.setupcCs&|jd|||j|jd||dS)z Apply regex substitution z/etc/neutron/*N)Zdo_path_regex_subr!)r+ZregexpZsubstrrrapply_regex_subtsz OpenStackNeutron.apply_regex_subcCsLdddg}dg}dj|}|jddj|dd|jd|d d dS) Nz(.*_)?(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_keysrrrpostproc|s  zOpenStackNeutron.postprocN)rrr r ) __name__ __module__ __qualname__Z short_descZ plugin_nameZprofilesr!r2r3r6rrrrrs[rc s(eZdZdZd d ZfddZZS) DebianNeutronneutron-commonneutron-plugin-cisco neutron-plugin-linuxbridge-agentneutron-plugin-niciraneutron-plugin-openvswitch neutron-plugin-openvswitch-agentneutron-plugin-ryuneutron-plugin-ryu-agentneutron-serverpython-neutronpython3-neutroncCs |jdS)Nzneutron-common)Z is_installed)r+rrr check_enabledszDebianNeutron.check_enabledcstj|jddS)Nz/etc/sudoers.d/neutron_sudoers)superr2r )r+) __class__rrr2s zDebianNeutron.setup) r;r<r=r>r?r@rArBrCrDrE)r7r8r9packagesrFr2 __classcell__rr)rHrr:sr:cs$eZdZdZdZfddZZS) RedHatNeutronopenstack-selinuxz'/var/lib/config-data/ansible-generated/cs2tj|jd|jd|jd|jdgdS)Nz/etc/sudoers.d/neutron-rootwrapz/neutron-dhcp-agent/z/neutron-dhcp-ovn/z/neutron-sriov-agent/)rGr2r var_ansible_gen)r+)rHrrr2s  zRedHatNeutron.setup)rL)r7r8r9rIrMr2rJrr)rHrrKsrK) rZsos.report.pluginsrrrrrr:rKrrrr s