U
    -_g_                     @   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 cinderZopenstack_cinder)Z	openstackZopenstack_controller).*cinder_apiz,/var/lib/config-data/puppet-generated/cinderNc              
   C   s.  |  d d}d}dddg}d}|D ]}| |}|r$ q<q$| d}|rT|| 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|rt|s| jd nddddddg}	|	D ]}
| d|
 d q
d d!d"d#d$dg}|D ]}
| d|
 d% q8d&}
| 	|
}|d' d(kr|d) }|
 D ]&}| d( }d*| }
| |
 q~|  d | d+| jd+ | jd, | jd- | jd. | jd/ | jd0 g | d1r| d2d3| j d4g n| d5d3| j d6g d S )7Nz/etc/cinder/volumes z--config-dir %s/etc/cinder/Zcinder_wsgizcinder-wsgi
cinder-apiFr   zcinder-manage z db versionZcinder_db_version)Zsuggest_filenamez backup listz config listz
 host listzcinder-status z upgrade checkc                 S   s   g | ]}|t jkqS  osenviron.0pr
   r
   E/usr/lib/python3/dist-packages/sos/report/plugins/openstack_cinder.py
<listcomp>B   s     z)OpenStackCinder.setup.<locals>.<listcomp>)ZOS_USERNAMEZOS_PASSWORDc                 S   s   g | ]}|t jkqS r
   r   r   r
   r
   r   r   E   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backend poolz
group typemessageZqosservicetypezopenstack volume z listZbackupgroupzgroup snapshotZsnapshotztransfer requestz list --all-projectsz-openstack volume list -f value --all-projectsZ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/Zall_logsz/var/log/cinder/z	/var/log/z	*/cinder*z/var/log/cinder/*.logz*/cinder*.log)Zadd_forbidden_pathZcheck_process_by_nameZcontainer_existsvar_puppet_genZadd_cmd_outputallanyZsoslogZwarningZexec_cmd
splitlinessplitadd_copy_specZ
get_option	apachepkg)selfZcinder_configZcinder_config_optZcinder_processZin_psZprocessZin_containerZvars_allZvars_anyZ	list_cmdscmdZlist_cmds_projectsresZcinder_volumesZvolumer
   r
   r   setup   s    










		




zOpenStackCinder.setupc                 C   s&   |  d|| |  | jd || dS )z Apply regex substitution z/etc/cinder/*N)Zdo_path_regex_subr   )r   ZregexpZsubstr
   r
   r   apply_regex_sub   s     zOpenStackCinder.apply_regex_subc                 C   s~   ddddddddd	d
ddddddddddddddddddg}dg}d |}| dd | d d! | d| d"d# d S )$NZadmin_passwordZbackup_tsm_passwordZchap_passwordZnas_passwordZcisco_fc_fabric_passwordZcoraid_passwordZeqlx_chap_passwordZfc_fabric_passwordZhitachi_auth_passwordZhitachi_horcm_passwordZhp3par_passwordZhplefthand_passwordZmemcache_secret_keyZnetapp_passwordZnetapp_sa_passwordZnexenta_passwordZpasswordZqpid_passwordZrabbit_passwordZsan_passwordZssl_key_passwordZvmware_host_passwordZzadara_passwordZzfssa_initiator_passwordZ	hmac_keysZzfssa_target_passwordZos_privileged_user_passwordZtransport_urlZ
connection|z(^\s*(z)\s*=\s*)(.*)z\1*********z!)\s*=\s*(.*)://(\w*):)(.*)(@(.*))z\1*********\6)joinr#   )r   Zprotect_keysZconnection_keysZjoin_con_keysr
   r
   r   postproc   sN                      

zOpenStackCinder.postproc)__name__
__module____qualname__Z
short_descZplugin_nameZprofilesZ
containersr   r   r"   r#   r&   r
   r
   r
   r   r      s   kr   c                   @   s   e Zd ZdZdZdZdS )DebianCinderFZapache2)r	   zcinder-backupzcinder-commonzcinder-schedulerzcinder-volumezpython-cinderzpython3-cinderN)r'   r(   r)   cinderr   packagesr
   r
   r
   r   r*      s   r*   c                       s(   e Zd ZdZdZdZ fddZ  ZS )RedHatCinderFZhttpd)zopenstack-selinuxc                    s   t    | dg d S )Nz/etc/sudoers.d/cinder)superr"   r   )r   	__class__r
   r   r"      s    
zRedHatCinder.setup)r'   r(   r)   r+   r   r,   r"   __classcell__r
   r
   r/   r   r-      s   r-   )	r   Zsos.report.pluginsr   r   r   r   r   r*   r-   r
   r
   r
   r   <module>   s
    