HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-26-0-120 6.17.0-1009-aws #9~24.04.2-Ubuntu SMP Fri Mar 6 23:50:29 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/openstack_ironic.cpython-312.pyc
�

O6uf!��l�ddlZddlmZmZmZmZGd�de�ZGd�deee�ZGd�dee�Zy)	�N)�Plugin�RedHatPlugin�DebianPlugin�UbuntuPluginc�D�eZdZdZdZdZdZdZedzZgZ	dZ
d�Zd	�Zd
�Z
y)�OpenStackIroniczOpenStack Ironic�openstack_ironic)�	openstack�openstack_undercloud)�.*ironic_apiz,/var/lib/config-data/puppet-generated/ironic�
_inspectorFc��|jd�}|�r�|jdz|jdz|jdz|jdz|jdzg|_|j	dd|jdz|jd	z|jd
z|jdz|jdz|jd
z|jdz|jdz|jdz|jdz|jdz|jdz|jdz|jdz|jdzg�|jd�r|j	ddg�n|j	ddg�ddd|jdz|jdzfD]7}|j
d|���|j
d|j|z����9d D]*}|jd!|z�s�|j
d"|�#��,noddg|_|j	gd$��|jd�r|j	d%d&g�n|j	d'd(g�d)D]}|j
d|����|jd*d+i�d,D�cgc]}|tjv��}}d-D�cgc]}|tjv��}}t|�xrt|�|_|js|jjd.�y|j
d/�|j
d0�|j
d1�|j
d2�ycc}wcc}w)3Nrz
/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.cnf�all_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/z	ls -laRt )�ironic_inspector_dnsmasq�ironic_inspector�ironic_pxe_http�ironic_pxe_tftp�ironic_neutron_agent�ironic_conductor�
ironic_apiz.*zrpm -qa)�	container)rrrz"/var/log/ironic-inspector/ramdisk/rrz/var/log/ironic/z/var/log/ironic-inspector/z/var/log/ironic/*.logz/var/log/ironic-inspector/*.log)rrrz.*/etc/ironic/ironic.conf�ironic_conf)�OS_USERNAME�OS_PASSWORD)�OS_TENANT_NAME�OS_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)�container_exists�var_puppet_gen�ins_puppet_gen�	conf_list�
add_copy_spec�
get_option�add_cmd_output�
add_file_tags�os�environ�all�any�
osc_available�soslog�warning)�self�in_container�path�container_name�p�vars_all�vars_anys       �E/usr/lib/python3/dist-packages/sos/report/plugins/openstack_ironic.py�setupzOpenStackIronic.setups����,�,�^�<����#�#�o�5��#�#�&?�?��#�#�&9�9��#�#�&?�?��#�#�&H�H��D�N�
���,�?��#�#�&8�8��#�#�&6�6��#�#�n�4��#�#�&>�>��#�#�&8�8��#�#�&:�:��#�#�&H�H��#�#�&A�A��#�#�&8�8��#�#�&<�<��#�#�&>�>��#�#�&L�L��#�#�&E�E��#�#�&?�?��#�#�&H�H�# �
�(���z�*��"�"�1�;�$��
�"�"�6�@�$��
+�K���,�,�/C�C��,�,�/C�C�E�
N���#�#�i��v�$6�7��#�#�i��0C�0C�d�0J�/K�$L�M�	
N�#E�
M���(�(���)>�?��'�'�	�^�'�L�
M� �)��D�N�
��� �
����z�*��"�"�&�0�$��
�"�"�+�5�$��
F�
8���#�#�i��v�$6�7�
8�	
���'��
�	�.2�3��A����O�3��3�.9�:��A����O�:��:�!��]�<�s�8�}����!�!��K�K���!K�
L�
��� H�I���� F�G���� F�G���� L�M��!3��:s�M�/Mc�L�|jD]}|j|||��y)z Apply regex substitution N)r(�do_path_regex_sub)r4�regexp�subst�confs    r;�apply_regex_subzOpenStackIronic.apply_regex_sub�s'���N�N�	8�D��"�"�4���7�	8�c��gd�}ddg}dj|�}|jddj|��d�d�|jd|�d�d	�y)
N)	�dns_passkey�memcache_secret_key�rabbit_password�password�
qpid_password�admin_password�ssl_key_password�os_password�
transport_url�
connection�sql_connection�|z(^\s*(z
)\s*=\s*)(.*)z\1*********z!)\s*=\s*(.*)://(\w*):)(.*)(@(.*))z
\1*********\6)�joinrB)r4�protect_keys�connection_keys�
join_con_keyss    r;�postproczOpenStackIronic.postproc�sk��
��
(�)9�:������1�
�����c�h�h�|�,�-�]�;��	
�	
����m�_�$E�F��	
rCN)�__name__�
__module__�__qualname__�
short_desc�plugin_name�profiles�
containersr&r'r(r1r<rBrU�rCr;rrsA��#�J�$�K�4�H�"�J�C�N�#�l�2�N��I��M�jN�X8�

rCrc��eZdZdZy)�DebianIronic)z
ironic-apiz
ironic-commonzironic-conductorN)rVrWrX�packagesr]rCr;r_r_�s��B�HrCr_c�0��eZdZdZddgZd�Z�fd�Z�xZS)�RedHatIronic)zopenstack-selinux�openstack-ironic-discoverdz"openstack-ironic-discoverd-ramdiskc��|jd�}|dr|jjd�y|dj�D�cgc]}|j	�r|��}}|D]}|jd|����ycc}w)z& Capture baremetal introspection data z.openstack baremetal node list -f value -c UUID�statuszPFailed to fetch list of ironic node UUIDs, introspection data won't be collectedN�outputz,openstack baremetal introspection data save )�collect_cmd_outputr2r3�split�stripr+)r4�uuids_result�uuid�uuidss    r;�collect_introspection_dataz'RedHatIronic.collect_introspection_data�s����.�.�<�
����!��K�K���!I�
J��".�x�"8�">�">�"@�"�$��J�J�L��"��"��	5�D����!-�-1�F�!4�
5�	5��"s�A?c�����t����t�fd��jD��rr�jjd��j
d��j
d��j
d��jd���jd���jd	���jr4�jd
��jd�r�j�yyy)Nc3�@�K�|]}�j|����y�w)N)�is_installed)�.0r8r4s  �r;�	<genexpr>z%RedHatIronic.setup.<locals>.<genexpr>�s�����E��t� � ��#�E�s�z/etc/ironic-discoverd/*z/etc/ironic-discoverd/z/var/lib/ironic-discoverd/z/var/log/ironic-discoverd/rc)�unitsz"openstack-ironic-discoverd-dnsmasqz"openstack-ironic-inspector-dnsmasqz&openstack baremetal introspection listr)�superr<r0�discoverd_packagesr(�appendr)�add_journalr1r+r*rm)r4�	__class__s`�r;r<zRedHatIronic.setup�s����
��
���E�T�-D�-D�E�E��N�N�!�!�";�<����7�8����;�<����;�<����#?��@����#G��H����C��D������� H�I����z�*��/�/�1�+�rC)rVrWrXr`rurmr<�
__classcell__)rxs@r;rbrb�s'���%�H�	%�,���
5� 2�2rCrb)	r-�sos.report.pluginsrrrrrr_rbr]rCr;�<module>r{s?��
�O�O�N
�f�N
�bC�?�L�,�C�
,2�?�L�,2rC