o
    *b-  ã                   @   sb   d dl mZmZ d dlZd dlZd dlZg d¢Zg d¢ZdZG dd„ deƒZ	G dd	„ d	e	eƒZ
dS )
é    )ÚPluginÚRedHatPluginN)ú+/home/stack/.instack/install-undercloud.logú/home/stack/instackenv.jsonú/home/stack/undercloud.conf)z/var/log/heat-launcher/z/home/stack/ansible.logz/home/stack/config-download/z"/home/stack/install-undercloud.logz*/home/stack/undercloud-install-*.tar.bzip2ú/home/stack/.tripleo/historyz/var/lib/tripleo-config/z,/var/log/tripleo-container-image-prepare.logr   c                   @   s(   e Zd ZdZdZdZdd„ Zdd„ ZdS )	ÚOpenStackInstackzOpenStack InstackZopenstack_instack)Z	openstackZopenstack_undercloudc                    s¬  |   tt ¡ |  d¡r|   ddg¡ n|   ddg¡ dd„ dD ƒ}d	d„ d
D ƒ}t ¡ }z(| t¡ ddg}|D ]}| |¡}|rSt	j
 |¡sN|  d|¡}|   |¡ q9W n	 ty^   Y nw t|ƒrgt|ƒso| j d¡ d S d}|  |¡d }t d|¡}	|	D ]N}
|  d|
d  d|
d  g¡ d|
d  }|  |¡}|d  ¡ D ]+‰ dˆ v rÍddg}t‡ fdd„|D ƒƒs¸q¢ˆ  ¡ d }dˆ  }d| }| j||d q¢q€|  d¡ d S ) NZall_logsz/var/log/mistral/z/var/log/zaqar/z/var/log/mistral/*.logz/var/log/zaqar/*.logc                 S   ó   g | ]}|t jv ‘qS © ©ÚosÚenviron©Ú.0Úpr
   r
   úF/usr/lib/python3/dist-packages/sos/report/plugins/openstack_instack.pyÚ
<listcomp>8   ó    z*OpenStackInstack.setup.<locals>.<listcomp>)ZOS_USERNAMEÚOS_PASSWORDc                 S   r	   r
   r   r   r
   r
   r   r   ;   r   )ZOS_TENANT_NAMEZOS_PROJECT_NAMEZhieradata_overrideZnet_config_overridez/home/stackz}Not all environment variables set. Source the environment file for the user intended to connect to the OpenStack environment.zopenstack stack listÚoutputz(\s(\w+-\w+)+\s)zopenstack stack show %sr   z&openstack stack resource list -n 10 %sz.openstack stack resource list -f value -n 5 %sZFAILEDzOS::Heat::StructuredDeploymentzOS::Heat::SoftwareDeploymentc                 3   s    | ]}|ˆ v V  qd S ©Nr
   )r   Úx©Z
deploymentr
   r   Ú	<genexpr>e   s   € z)OpenStackInstack.setup.<locals>.<genexpr>é   z,openstack software deployment show --long %szfailed-deployment-%s.log)Zsuggest_filenamez>openstack object save tripleo-ui-logs tripleo-ui.logs --file -)Zadd_copy_specÚNON_CONTAINERIZED_DEPLOYÚCONTAINERIZED_DEPLOYZ
get_optionÚconfigparserÚConfigParserÚreadÚUNDERCLOUD_CONF_PATHÚgetr   ÚpathÚisabsZ	path_joinÚ	ExceptionÚallÚanyZsoslogZwarningZcollect_cmd_outputÚreÚfindallZadd_cmd_outputZexec_cmdÚ
splitlinesÚsplit)ÚselfZvars_allZvars_anyZ	uc_configZoverride_optsZoptr   Z
get_stacksZstacksZ	stack_idsZsidÚcmdZdeploymentsÚcheckZdeployÚfnamer
   r   r   Úsetup*   sn   
þþ


€ûÿ

þ
þÿ€ôzOpenStackInstack.setupc                 C   sh   g d¢}dd  |¡ }|  d|d¡ |  t|d¡ g d¢}dd  |¡ }|  d|d¡ |  d	d
d¡ d S )N)ÚUNDERCLOUD_TUSKAR_PASSWORDZUNDERCLOUD_ADMIN_PASSWORDZ%UNDERCLOUD_CEILOMETER_METERING_SECRETZUNDERCLOUD_CEILOMETER_PASSWORDZ$UNDERCLOUD_CEILOMETER_SNMPD_PASSWORDZUNDERCLOUD_DB_PASSWORDZUNDERCLOUD_GLANCE_PASSWORDZUNDERCLOUD_HEAT_PASSWORDZ+UNDERCLOUD_HEAT_STACK_DOMAIN_ADMIN_PASSWORDZUNDERCLOUD_HORIZON_SECRET_KEYZUNDERCLOUD_IRONIC_PASSWORDZUNDERCLOUD_NEUTRON_PASSWORDZUNDERCLOUD_NOVA_PASSWORDZUNDERCLOUD_RABBIT_PASSWORDZUNDERCLOUD_SWIFT_PASSWORDr0   r   Zundercloud_db_passwordZundercloud_admin_passwordZundercloud_glance_passwordZundercloud_heat_passwordZundercloud_neutron_passwordZundercloud_nova_passwordZundercloud_ironic_passwordZundercloud_tuskar_passwordZundercloud_ceilometer_passwordZ%undercloud_ceilometer_metering_secretZ$undercloud_ceilometer_snmpd_passwordZundercloud_swift_passwordZundercloud_rabbit_passwordZ+undercloud_heat_stack_domain_admin_passwordz((?m)(%s)=)(.*)ú|r   z\1*********)Zpm_passwordzssh-keyZpasswordz((?m)"(%s)": )(".*?")r   r   z(password=)\w+)ÚjoinZdo_file_subr    )r+   Zprotected_keysZregexpZprotected_json_keysZjson_regexpr
   r
   r   Úpostprocp   s   ÿÿþzOpenStackInstack.postprocN)Ú__name__Ú
__module__Ú__qualname__Z
short_descZplugin_nameZprofilesr/   r3   r
   r
   r
   r   r   $   s    Fr   c                       s    e Zd ZdZ‡ fdd„Z‡  ZS )ÚRedHatRDOManager)zopenstack-selinuxc                    s   t t| ƒ ¡  d S r   )Úsuperr7   r/   )r+   ©Ú	__class__r
   r   r/   ™   s   zRedHatRDOManager.setup)r4   r5   r6   Zpackagesr/   Ú__classcell__r
   r
   r9   r   r7   •   s    r7   )Zsos.report.pluginsr   r   r   r   r'   r   r   r    r   r7   r
   r
   r
   r   Ú<module>   s   
q