o
    O6uf_  ã                   @   sZ   d dl Z d dlmZmZmZmZ G dd„ deƒZG dd„ deeeƒZG dd„ deeƒZdS )	é    N)ÚPluginÚRedHatPluginÚDebianPluginÚUbuntuPluginc                   @   s<   e Zd ZdZdZdZdZdZdZdd„ Z	d	d
„ Z
dd„ ZdS )ÚOpenStackCinderzOpenStack cinderÚopenstack_cinder)Ú	openstackÚopenstack_controller)ú.*cinder_apiz,/var/lib/config-data/puppet-generated/cinderNc              
   C   s  |   d¡ d}d}g d¢}d}|D ]}|  |¡}|r nq|  d¡}|r)|| j }|s-|rÅ| jd| d d	d
� |  d|› d�¡ |  d|› d�¡ |  d|› d�¡ |  d|› d�¡ dd„ dD ƒ}dd„ dD ƒ}t|ƒrrt|ƒsy| j d¡ nLg d¢}	|	D ]}
|  d|
› d�¡ qg d¢}|D ]}
|  d|
› d�¡ q‘d}
|  	|
¡}|d dkrÅ|d }| 
¡ D ]}| ¡ d }d|› �}
|  |
¡ q²|   d¡ |  d | jd  | jd! | jd" | jd# | jd$ | jd% g¡ |  d&¡rû|  d'd(| j› d)�g¡ d S |  d*d(| j› d+�g¡ d S ),Nz/etc/cinder/volumesÚ z--config-dir %s/etc/cinder/)Úcinder_wsgizcinder-wsgiú
cinder-apiFr
   zcinder-manage z db versionÚcinder_db_version)Úsuggest_filenamez backup listz config listz
 host listzcinder-status z upgrade checkc                 S   ó   g | ]}|t jv ‘qS © ©ÚosÚenviron©Ú.0Úpr   r   úE/usr/lib/python3/dist-packages/sos/report/plugins/openstack_cinder.pyÚ
<listcomp>B   ó    z)OpenStackCinder.setup.<locals>.<listcomp>)ÚOS_USERNAMEÚOS_PASSWORDc                 S   r   r   r   r   r   r   r   r   E   r   )Ú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backend poolz
group typeÚmessageÚqosÚserviceÚtypezopenstack volume z list)ÚbackupÚgroupzgroup snapshotÚsnapshotztransfer requestr   z list --all-projectsz-openstack volume list -f value --all-projectsÚstatusr   Úoutputzopenstack volume show z/etc/cinder/z/etc/httpd/conf/z/etc/httpd/conf.d/z /etc/httpd/conf.modules.d/*.confz/etc/my.cnf.d/tripleo.cnfz/etc/sysconfig/Úall_logsz/var/log/cinder/z	/var/log/z	*/cinder*z/var/log/cinder/*.logz*/cinder*.log)Úadd_forbidden_pathÚcheck_process_by_nameÚcontainer_existsÚvar_puppet_genÚadd_cmd_outputÚallÚanyÚsoslogÚwarningÚexec_cmdÚ
splitlinesÚsplitÚadd_copy_specÚ
get_optionÚ	apachepkg)ÚselfÚcinder_configÚcinder_config_optÚcinder_processÚin_psÚprocessÚin_containerÚvars_allÚvars_anyÚ	list_cmdsÚcmdÚlist_cmds_projectsÚresÚcinder_volumesÚvolumer   r   r   Úsetup   sŠ   

ÿ


þ
ÿ
ÿ
ÿ
ÿ		
ÿ


ù


þ
þzOpenStackCinder.setupc                 C   s&   |   d||¡ |   | jd ||¡ dS )z Apply regex substitution z/etc/cinder/*N)Údo_path_regex_subr,   )r8   ÚregexpÚsubstr   r   r   Úapply_regex_subˆ   s
   þzOpenStackCinder.apply_regex_subc                 C   sJ   g d¢}dg}d  |¡}|  dd  |¡› d�d¡ |  d|› d�d¡ d S )	N)Úadmin_passwordÚbackup_tsm_passwordÚchap_passwordÚnas_passwordÚcisco_fc_fabric_passwordÚcoraid_passwordÚeqlx_chap_passwordÚfc_fabric_passwordÚhitachi_auth_passwordÚhitachi_horcm_passwordÚhp3par_passwordÚhplefthand_passwordÚmemcache_secret_keyÚnetapp_passwordÚnetapp_sa_passwordÚnexenta_passwordÚpasswordÚqpid_passwordÚrabbit_passwordÚsan_passwordÚssl_key_passwordÚvmware_host_passwordÚzadara_passwordÚzfssa_initiator_passwordÚ	hmac_keysÚzfssa_target_passwordÚos_privileged_user_passwordÚtransport_urlÚ
connectionú|z(^\s*(z)\s*=\s*)(.*)z\1*********z!)\s*=\s*(.*)://(\w*):)(.*)(@(.*))z\1*********\6)ÚjoinrK   )r8   Úprotect_keysÚconnection_keysÚjoin_con_keysr   r   r   Úpostproc�   s   
þ
þzOpenStackCinder.postproc)Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesÚ
containersr,   r7   rG   rK   rn   r   r   r   r   r      s    kr   c                   @   s   e Zd ZdZdZdZdS )ÚDebianCinderFÚapache2)r   zcinder-backupzcinder-commonzcinder-schedulerzcinder-volumezpython-cinderzpython3-cinderN)ro   rp   rq   Úcinderr7   Úpackagesr   r   r   r   rv   «   s    rv   c                       s(   e Zd ZdZdZdZ‡ fdd„Z‡  ZS )ÚRedHatCinderFÚhttpd)zopenstack-selinuxc                    s   t ƒ  ¡  |  dg¡ d S )Nz/etc/sudoers.d/cinder)ÚsuperrG   r5   )r8   ©Ú	__class__r   r   rG   À   s   
zRedHatCinder.setup)ro   rp   rq   rx   r7   ry   rG   Ú__classcell__r   r   r}   r   rz   º   s
    rz   )	r   Úsos.report.pluginsr   r   r   r   r   rv   rz   r   r   r   r   Ú<module>   s    