
    -_g#!                     l    d dl Z d dlmZmZmZmZ  G d de      Z G d deee      Z G d dee      Zy)	    N)PluginRedHatPluginDebianPluginUbuntuPluginc                   D    e Zd ZdZdZdZdZdZedz   Zg Z	dZ
d Zd	 Zd
 Zy)OpenStackIroniczOpenStack Ironicopenstack_ironic)	openstackopenstack_undercloud).*ironic_apiz,/var/lib/config-data/puppet-generated/ironic
_inspectorFc                    | j                  d      }|r| j                  dz   | j                  dz   | j                  dz   | j                  dz   | j                  dz   g| _        | j	                  dd| j                  dz   | j                  d	z   | j                  d
z   | j                  dz   | j                  dz   | j                  dz   | j                  dz   | j                  dz   | j                  dz   | j                  dz   | j                  dz   | j                  dz   | j                  dz   | j                  dz   | j                  dz   g       | j                  d      r| j	                  ddg       n| j	                  ddg       ddd| j                  dz   | j                  dz   fD ]%  }| j                  || j                   | gd        ' d!D ]*  }| j                  d"|z         s| j                  d#|$       , niddg| _        | j	                  g d%       | j                  d      r| j	                  d&d'g       n| j	                  d(d)g       | j                  g d*d        | j                  d+d,i       d-D cg c]  }|t        j                  v  }}d.D cg c]  }|t        j                  v  }}t        |      xr t        |      | _        | j                  s| j                  j                  d/       y | j                  d0       | j                  d1       | j                  d2       | j                  d3       y c c}w c c}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.*zrpm -qa)	container)r   r   r   z"/var/log/ironic-inspector/ramdisk/r   r   z/var/log/ironic/z/var/log/ironic-inspector/z/var/log/ironic/*.logz/var/log/ironic-inspector/*.log)r   r   r   z.*/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setupzOpenStackIronic.setup   s   ,,^<##o5##&??##&99##&??##&HHDN ,?##&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 # $$**+D62& " % ###E M (()>?''	^'LM  )DN     z*""&0$ 
 ""+5$ 
   !N+/ ! 1 	'
 	.2 3AO 3 3.9 :AO : : !]<s8}!!KK !K L  HI FG FG LM!3:s   8L<Mc                 L    | j                   D ]  }| j                  |||        y)z Apply regex substitution N)r)   do_path_regex_sub)r6   regexpsubstconfs       r=   apply_regex_subzOpenStackIronic.apply_regex_sub   s'    NN 	8D""47	8    c                     g d}ddg}dj                  |      }| j                  ddj                  |       dd       | j                  d| 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=   postproczOpenStackIronic.postproc   sk    

 ()9:1chh|,-];	
 	m_$EF	
rE   N)__name__
__module____qualname__
short_descplugin_nameprofiles
containersr'   r(   r)   r3   r>   rD   rW    rE   r=   r   r      sA    #J$K4H"JCN#l2NIMlN\8

rE   r   c                       e Zd ZdZy)DebianIronic)z
ironic-apizironic-commonzironic-conductorN)rX   rY   rZ   packagesr_   rE   r=   ra   ra      s    BHrE   ra   c                   0     e Zd ZdZddgZd Z fdZ xZS )RedHatIronic)zopenstack-selinuxopenstack-ironic-discoverdz"openstack-ironic-discoverd-ramdiskc                    | j                  d      }|d   r| j                  j                  d       y|d   j                         D cg c]  }|j	                         r| }}|D ]  }| j                  d|         yc c}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_outputr4   r5   splitstripr-   )r6   uuids_resultuuiduuidss       r=   collect_introspection_dataz'RedHatIronic.collect_introspection_data   s    ..<
 !KK !I J".x"8">">"@ "$JJL  " " 	5D !--1F!4 5	5"s   A?c                     t                    t         fd j                  D              rr j                  j                  d        j                  d        j                  d        j                  d        j                  d        j                  d        j                  d	        j                  r4 j                  d
        j                  d      r j                          y y y )Nc              3   @   K   | ]  }j                  |        y w)N)is_installed).0r:   r6   s     r=   	<genexpr>z%RedHatIronic.setup.<locals>.<genexpr>   s     Et  #Es   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_journalr3   r-   r+   ro   )r6   	__class__s   `r=   r>   zRedHatIronic.setup   s     ET-D-DEENN!!";<78;<;<#?@#GHCD HIz*//1 + rE   )rX   rY   rZ   rb   rw   ro   r>   __classcell__)rz   s   @r=   rd   rd      s'    %H 	%,
5 2 2rE   rd   )	r/   sos.report.pluginsr   r   r   r   r   ra   rd   r_   rE   r=   <module>r}      s?    
 O OP
f P
fC?L, C
,2?L ,2rE   