Current File : //usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/openstack_ironic.cpython-312.pyc
�

-�_g#!��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]%}|j
||j�|��gd� ��'d!D]*}|jd"|z�s�|jd#|�$��,niddg|_|j	gd%��|jd�r|j	d&d'g�n|j	d(d)g�|j
gd*�d� �|jd+d,i�d-D�cgc]}|tjv��}}d.D�cgc]}|tjv��}}t|�xrt|�|_
|js|jjd/�y|jd0�|jd1�|jd2�|jd3�ycc}wcc}w)4Nr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/T)�	recursive)�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_dir_listing�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�
#���$�$���*�*�+�D�6�2�&�"�%�#�
#�#E�
M���(�(���)>�?��'�'�	�^�'�L�
M� �)��D�N�
��� �
����z�*��"�"�&�0�$��
�"�"�+�5�$��

� � �!N�+/�
!�
1�	
���'��
�	�.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�8L<�Mc�L�|jD]}|j|||��y)z Apply regex substitution N)r)�do_path_regex_sub)r6�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)�joinrD)r6�protect_keys�connection_keys�
join_con_keyss    r=�postproczOpenStackIronic.postproc�sk��
��
(�)9�:������1�
�����c�h�h�|�,�-�]�;��	
�	
����m�_�$E�F��	
rEN)�__name__�
__module__�__qualname__�
short_desc�plugin_name�profiles�
containersr'r(r)r3r>rDrW�rEr=rrsA��#�J�$�K�4�H�"�J�C�N�#�l�2�N��I��M�lN�\8�

rErc��eZdZdZy)�DebianIronic)z
ironic-apiz
ironic-commonzironic-conductorN)rXrYrZ�packagesr_rEr=rara�s��B�HrErac�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_outputr4r5�split�stripr-)r6�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)�.0r:r6s  �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/re)�unitsz"openstack-ironic-discoverd-dnsmasqz"openstack-ironic-inspector-dnsmasqz&openstack baremetal introspection listr)�superr>r2�discoverd_packagesr)�appendr*�add_journalr3r-r+ro)r6�	__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�+�rE)rXrYrZrbrwror>�
__classcell__)rzs@r=rdrd�s'���%�H�	%�,���
5� 2�2rErd)	r/�sos.report.pluginsrrrrrrardr_rEr=�<module>r}s?��
�O�O�P
�f�P
�fC�?�L�,�C�
,2�?�L�,2rE