U
    -_g                     @   sp   d dl Z d dlZd dlZd dlmZmZ dddgZdddd	d
dddgZdZG dd deZ	G dd de	eZ
dS )    N)PluginRedHatPlugin+/home/stack/.instack/install-undercloud.log/home/stack/instackenv.jsonz/home/stack/undercloud.confz/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.logc                   @   s0   e Zd ZdZdZdZdd Zdd Zdd	 Zd
S )OpenStackInstackzOpenStack InstackZopenstack_instack)Z	openstackZopenstack_undercloudc                    sZ  |  tt  | dr&|  dg n|  dg | ddi dd dD }d	d d
D }|   t|rtt|s| j	d nd}| 
|d }td|}|D ]}|d }| d| d| g d| }| |}	|	d  D ]^ d krddg}
t fdd|
D sq  d }d  }d| d}| j||d qq| d d S )NZall_logsz/var/log/zaqar/z/var/log/zaqar/*.logz/var/log/mistral/executor.logZmistral_executor_logc                 S   s   g | ]}|t jkqS  osenviron.0pr   r   F/usr/lib/python3/dist-packages/sos/report/plugins/openstack_instack.py
<listcomp>:   s     z*OpenStackInstack.setup.<locals>.<listcomp>)ZOS_USERNAMEZOS_PASSWORDc                 S   s   g | ]}|t jkqS r   r	   r   r   r   r   r   =   s     )ZOS_TENANT_NAMEZOS_PROJECT_NAMEz}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+-){4})\w+)\s\|)   zopenstack stack show z$openstack stack resource list -n 10 z,openstack stack resource list -f value -n 5 ZFAILEDzOS::Heat::StructuredDeploymentzOS::Heat::SoftwareDeploymentc                 3   s   | ]}| kV  qd S )Nr   )r   xZ
deploymentr   r   	<genexpr>\   s     z)OpenStackInstack.setup.<locals>.<genexpr>z*openstack software deployment show --long zfailed-deployment-z.log)Zsuggest_filenamez>openstack object save tripleo-ui-logs tripleo-ui.logs --file -)add_copy_specNON_CONTAINERIZED_DEPLOYCONTAINERIZED_DEPLOYZ
get_optionZadd_file_tagscapture_undercloud_yamlsallanyZsoslogZwarningZcollect_cmd_outputrefindallZadd_cmd_outputZexec_cmd
splitlinessplit)selfZvars_allZvars_anyZ
get_stacksZstacksZ	stack_idsZ_sidZsidcmdZdeploymentsZcheckZdeployfnamer   r   r   setup*   sP    
 


zOpenStackInstack.setupc                 C   st   t  }zR|t ddg}|D ]6}|d|}|r tj|sL| d|}| 	| q W n t
k
rn   Y nX dS )z( capture yaml files to define overrides Zhieradata_overrideZnet_config_overrideZDEFAULTz/home/stackN)configparserConfigParserreadUNDERCLOUD_CONF_PATHgetr
   pathisabsZ	path_joinr   	Exception)r    Z	uc_configZoverride_optsZoptr)   r   r   r   r   g   s    
z)OpenStackInstack.capture_undercloud_yamlsc                 C   s   ddddddddd	d
ddddddg}dd | d}| d|d | t|d dddg}dd | d}| d|d | ddd d S )NZos_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_passwordZundercloud_tuskar_passwordz((|z)=)(.*)r   z\1*********Zpm_passwordzssh-keyZpasswordz("(z)": )(".*?")r   r   z(password=)\w+)joinZdo_file_subr'   )r    Zprotected_keysZregexpZprotected_json_keysZjson_regexpr   r   r   postprocv   s@     
zOpenStackInstack.postprocN)	__name__
__module____qualname__Z
short_descZplugin_nameZprofilesr#   r   r.   r   r   r   r   r   $   s   =r   c                   @   s   e Zd ZdZdS )RedHatRDOManager)zopenstack-selinuxN)r/   r0   r1   Zpackagesr   r   r   r   r2      s   r2   )r$   r
   r   Zsos.report.pluginsr   r   r   r   r'   r   r2   r   r   r   r   <module>   s&   
u