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 )OpenStackGlancezOpenStack GlanceZopenstack_glance)Z	openstackZopenstack_controller)
glance_apiz0/var/lib/config-data/puppet-generated/glance_apizopenstack-glance-api.servicec           	      C   s0  |  dr| dg n| dg | d| jd | jd g | d}| | js\|rd}|rrd| j d }| jd	| d
 dd dd dD }dd dD }t|rt|s| j	
d nV| d}|d dkr|d }| dd D ]$}| d }d| }| | q| ddddd d S ) NZall_logsz/var/log/glance/z/var/log/glance/*.logz/etc/glance/z/etc/my.cnf.d/tripleo.cnfr    z--config-dir zglance-manage z db_versionZglance_db_version)Zsuggest_filenamec                 S   s   g | ]}|t jkqS  osenviron.0pr	   r	   E/usr/lib/python3/dist-packages/sos/report/plugins/openstack_glance.py
<listcomp>=   s     z)OpenStackGlance.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 image list --longZstatusr   output      zopenstack image show Zglance_api_confZglance_cache_confZglance_registry_confZglance_api_log)z/etc/glance/glance-api.confz/etc/glance/glance-cache.confz /etc/glance/glance-registry.confz/var/log/glance/api.log)Z
get_optionZadd_copy_specvar_puppet_genZcontainer_existsZis_service_runningservice_nameZadd_cmd_outputallanyZsoslogZwarningZcollect_cmd_output
splitlinessplitZadd_file_tags)	selfZin_containerZglance_configZvars_allZvars_anyresZglance_imagesZimagecmdr	   r	   r   setup   sT    



zOpenStackGlance.setupc                 C   s&   |  d|| |  | jd || dS )z Apply regex substitution z/etc/glance/*N)Zdo_path_regex_subr   )r   ZregexpZsubstr	   r	   r   apply_regex_sub[   s     zOpenStackGlance.apply_regex_subc              	   C   sX   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passwordZqpid_passwordZrabbit_passwordZs3_store_secret_keyZssl_key_passwordZvmware_server_passwordZtransport_urlZmemcache_secret_keyZ
connectionz(^\s*(|z)\s*=\s*)(.*)z\1*********z!)\s*=\s*(.*)://(\w*):)(.*)(@(.*))z\1*********\6)r    join)r   Zprotect_keysZconnection_keysZjoin_con_keysr	   r	   r   postprocc   s(         

zOpenStackGlance.postprocN)__name__
__module____qualname__Z
short_descZplugin_nameZprofilesZ
containersr   r   r   r    r#   r	   r	   r	   r   r      s   >r   c                   @   s   e Zd ZdZdZdS )DebianGlance)Zglancez
glance-apizglance-clientzglance-commonzglance-registryzpython-glancezpython3-glancezapache2.serviceN)r$   r%   r&   packagesr   r	   r	   r	   r   r'   y   s   	r'   c                   @   s   e Zd ZdZdS )RedHatGlance)zopenstack-selinuxN)r$   r%   r&   r(   r	   r	   r	   r   r)      s   r)   )	r   Zsos.report.pluginsr   r   r   r   r   r'   r)   r	   r	   r	   r   <module>   s   f