o
    *b"                     @   s>   d dl mZmZ d dlZG dd deZG dd deeZdS )    )PluginRedHatPluginNc                   @   s   e Zd ZdZdZdZdZdZdZe	j
edZe	j
edZd	Ze	j
eeZe	j
ed
Ze	j
edZeefZdd Zdd Zdd Zdd Zdd Zdd ZdS )OpenShiftOriginzOpenShift OriginoriginN)Z	openshiftz/etc/origin/masterz/etc/origin/nodezmaster-config.yamlz
master.envznode-config.yamlznode.kubeconfigpodsc                 C      |  | jS )zDetermine if we are on a master)path_exists
master_cfgself r   ;/usr/lib/python3/dist-packages/sos/report/plugins/origin.py	is_master>      zOpenShiftOrigin.is_masterc                 C   r   )zDetermine if we are on a node)r   node_cfgr
   r   r   r   is_nodeB   r   zOpenShiftOrigin.is_nodec                 C   s   |  | | jdS )z*Determine if we are on a node running etcdz	etcd.yaml)r   	path_joinstatic_pod_dirr
   r   r   r   is_static_etcdF   s   zOpenShiftOrigin.is_static_etcdc                 C   r   )z*Determine if a node is running static pods)r   r   r
   r   r   r   is_static_pod_compatibleK   r   z(OpenShiftOrigin.is_static_pod_compatiblec                    s  |  | jd| j }|  | jd}|  | jdd}|  | jd}|  | jd}dd|f  d	}|  r| | j| j|  | jd
g |  r[| |  | j	d | 
d| d| g |  rf| 
d|  g d}| 
 fdd|D  g d}| 
 fdd|D  g d}	| 
 fdd|	D  |  s| jg dd | d  }
|
d  D ]}| 
d |f  q|  r| | j| j|||||  | jd
|  | jd|  | jdg	 | jdd d S d S )Nz
bootstrap-zbootstrap.kubeconfigZcerts*zclient-ca.crtzadmin.kubeconfigz%s --config=%soczmaster-logsz*.crtz*.yamlz
%s api apiz%s controllers controllersz%s etcd etcd)zadm top imageszadm top imagestreamszadm top nodesc                       g | ]}d  |f qS )z%s %sr   ).0ZsubcmdZoc_cmd_adminr   r   
<listcomp>       z)OpenShiftOrigin.setup.<locals>.<listcomp>)Z
hostsubnetZclusternetworkZnetnamespacesc                    r   )z%s get -o json %sr   )r   Zjcmdr   r   r   r      r   )defaultzopenshift-web-consolez openshift-ansible-service-brokerzopenshift-sdnzopenshift-consolec                    r   )z;%s get -o json deploymentconfig,deployment,daemonsets -n %sr   )r   nr   r   r   r      s    )zatomic-openshift-masterzatomic-openshift-master-apiz#atomic-openshift-master-controllers)Zunitsz%s get pod -o name -n defaultoutputz%s logs -n default %szresolv.confznode-dnsmasq.confzatomic-openshift-node)r   node_base_dirnode_cfg_filemaster_base_dirr   Zadd_copy_specr	   
master_envr   r   Zadd_cmd_outputr   Zadd_journalZexec_cmd
splitlinesr   r   node_kubeconfig)r   Zbstrap_node_cfgZbstrap_kubeconfigZ
node_certsZnode_client_caZ	admin_cfgZstatic_pod_logs_cmdZsubcmdsZjcmdsZnmspsr   Zpodr   r   r   setupO   s|   zOpenShiftOrigin.setupc                 C   s6   d}|  d|d | | jdd | | jdd d S )Nzq(?P<var>{\s*"name":\s*[^,]*(pass|pwd|key|token|cred|secret|PASS|PWD|KEY|TOKEN|CRED|SECRET)[^,]*,\s*"value":)[^}]*zoc*jsonz\g<var> "********"z(bindPassword:\s*)(.*)z\1"********"z(clientSecret:\s*)(.*))Zdo_cmd_output_subZdo_file_subr	   )r   Z
env_regexpr   r   r   postproc   s   
zOpenShiftOrigin.postproc)__name__
__module____qualname__
short_descZplugin_namefilesZprofilesr"   r    ospathjoinr	   r#   r!   r   r%   r   r   r   r   r   r&   r'   r   r   r   r   r   #   s(    
nr   c                   @   s   e Zd ZdZdZdS )AtomicOpenShiftz3OpenShift Enterprise / OpenShift Container Platform)zatomic-openshiftN)r(   r)   r*   r+   Zpackagesr   r   r   r   r0      s    r0   )Zsos.report.pluginsr   r   os.pathr-   r   r0   r   r   r   r   <module>   s
   
 4