a >h#!@sZddlZddlmZmZmZmZGdddeZGdddeeeZGdddeeZdS) N)Plugin RedHatPlugin DebianPlugin UbuntuPluginc@sHeZdZdZdZdZdZdZedZgZ dZ dd Z d d Z d d Z dS)OpenStackIroniczOpenStack IronicZopenstack_ironic)Z openstackZopenstack_undercloud) .*ironic_apiz,/var/lib/config-data/puppet-generated/ironicZ _inspectorFcCs*|d}|rV|jd|jd|jd|jd|jdg|_|dd|jd|jd |jd |jd |jd |jd |jd|jd|jd|jd|jd|jd|jd|jd|jdg|dr|ddgn|ddgddd|jd|jdfD]"}|j||j|gdd qd!D]$}|d"|r.|jd#|d$q.nTddg|_|gd%|dr|d&d'gn|d(d)g|jgd*dd |d+d,id-d.d/D}d0d.d1D}t |ot ||_ |j s|j d2n(|d3|d4|d5|d6dS)7Nrz /etc/ironic/*z/etc/ironic-inspector/*z_api/etc/ironic/* /var/lib/httpboot/inspector.ipxe/var/lib/ironic-inspector/z-/var/log/containers/ironic-inspector/ramdisk/z/etc/xinetd.confz/etc/xinetd.d/ /etc/ironic//etc/ironic-inspector/z/etc/httpd/conf/z/etc/httpd/conf.d/z /etc/httpd/conf.modules.d/*.conf/etc/my.cnf.d/tripleo.cnfz_api/etc/ironic/z_api/etc/httpd/conf/z_api/etc/httpd/conf.d/z$_api/etc/httpd/conf.modules.d/*.confz_api/etc/my.cnf.d/tripleo.cnfall_logsz/var/log/containers/ironic/z%/var/log/containers/ironic-inspector/z /var/log/containers/ironic/*.logz*/var/log/containers/ironic-inspector/*.log/var/lib/ironic /httpboot /tftpbootz/var/lib/httpboot/z/var/lib/tftpboot/T) recursive)Zironic_inspector_dnsmasqZironic_inspectorZironic_pxe_httpZironic_pxe_tftpZironic_neutron_agentZironic_conductorZ ironic_apiz.*zrpm -qa) container)r r r z"/var/log/ironic-inspector/ramdisk/r rz/var/log/ironic/z/var/log/ironic-inspector/z/var/log/ironic/*.logz/var/log/ironic-inspector/*.log)rrrz.*/etc/ironic/ironic.confZ ironic_confcSsg|]}|tjvqSosenviron.0prrG/usr/lib/python3.9/site-packages/sos/report/plugins/openstack_ironic.py xz)OpenStackIronic.setup..)Z OS_USERNAMEZ OS_PASSWORDcSsg|]}|tjvqSrrrrrrr{r)ZOS_TENANT_NAMEZOS_PROJECT_NAMEz}Not all environment variables set. Source the environment file for the user intended to connect to the OpenStack environment.z&openstack baremetal driver list --longz$openstack baremetal node list --longz$openstack baremetal port list --longz*openstack baremetal port group list --long)Zcontainer_existsvar_puppet_genins_puppet_gen conf_list add_copy_spec get_optionZadd_dir_listingadd_cmd_outputZ add_file_tagsallany osc_availablesoslogwarning)selfZ in_containerpathZcontainer_nameZvars_allZvars_anyrrrsetups         zOpenStackIronic.setupcCs|jD]}||||qdS)z Apply regex substitution N)rZdo_path_regex_sub)r(ZregexpsubstZconfrrrapply_regex_subs zOpenStackIronic.apply_regex_subcCsLgd}ddg}d|}|dd|dd|d|dd dS) N) Z dns_passkeyZmemcache_secret_keyZrabbit_passwordpasswordZ qpid_passwordZadmin_passwordZssl_key_passwordZ os_passwordZ transport_urlZ connectionZsql_connection|z(^\s*(z )\s*=\s*)(.*)z \1*********z!)\s*=\s*(.*)://(\w*):)(.*)(@(.*))z \1*********\6)joinr,)r(Z protect_keysZconnection_keysZ join_con_keysrrrpostprocs  zOpenStackIronic.postprocN)__name__ __module__ __qualname__Z short_descZ plugin_nameZprofilesZ containersrrrr%r*r,r0rrrrrsnrc@seZdZdZdS) DebianIronic)z ironic-apiz ironic-commonzironic-conductorN)r1r2r3packagesrrrrr4sr4cs0eZdZdZddgZddZfddZZS) RedHatIronic)zopenstack-selinuxopenstack-ironic-discoverdz"openstack-ironic-discoverd-ramdiskcCsV|d}|dr"|jddSdd|dD}|D]}|d|q.outputz,openstack baremetal introspection data save )Zcollect_cmd_outputr&r'splitr")r(Z uuids_resultZuuidsr:rrrcollect_introspection_datas z'RedHatIronic.collect_introspection_datacsttfddjDrdjddddjddjd djd djr d  d r dS) Nc3s|]}|VqdS)N)Z is_installedrr(rr rz%RedHatIronic.setup..z/etc/ironic-discoverd/*z/etc/ironic-discoverd/z/var/lib/ironic-discoverd/z/var/log/ironic-discoverd/r7)Zunitsz"openstack-ironic-discoverd-dnsmasqz"openstack-ironic-inspector-dnsmasqz&openstack baremetal introspection listr ) superr*r$discoverd_packagesrappendr Z add_journalr%r"r!r=r> __class__r>rr*s          zRedHatIronic.setup)r1r2r3r5rAr=r* __classcell__rrrCrr6s r6) rZsos.report.pluginsrrrrrr4r6rrrr s