Sindbad~EG File Manager

Current Path : /lib/python3.6/site-packages/sos/report/plugins/__pycache__/
Upload File :
Current File : //lib/python3.6/site-packages/sos/report/plugins/__pycache__/kubernetes.cpython-36.pyc

3

�f�+�@srddlmZddlZddlmZmZmZmZmZddl	Z	Gdd�de�Z
Gdd�de
e�ZGdd	�d	e
ee�ZdS)
�)�	translateN)�Plugin�RedHatPlugin�DebianPlugin�UbuntuPlugin�	PluginOptc@s�eZdZdZdZd4ZdZddgZddd	d
ddd
ddddddddddgZddddgZ	e
dddd�e
d dd!d�e
d"dd#d�e
d$d%ed&d'�gZd(Z
d)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3S)5�
Kubernetesz+Kubernetes container orchestration platform�
kubernetes�	containeri�z/etc/kubernetesz/run/flannel�eventsZdeploymentsZ	ingresses�podsZpvc�servicesZ
daemonsetsZreplicasetsZ	endpointsZstatefulsetsZ
configmapsZserviceaccountsZsecretsZjobsZcronjobsZclusterrolesZclusterrolebindingsZscZpvZrolesZrolebindings�allFz'collect all namespace output separately)�default�desc�describez(collect describe output of all resources�podlogsz$capture stdout/stderr logs from podszpodlogs-filter�z1only collect logs from pods matching this pattern)rZval_typer�kubectlcst�fdd��jD��S)z" Check if this is the master node c3s|]}�j|�VqdS)N)�path_exists)�.0�f)�self�� /usr/lib/python3.6/kubernetes.py�	<genexpr>Jsz-Kubernetes.check_is_master.<locals>.<genexpr>)�any�files)rr)rr�check_is_masterHszKubernetes.check_is_masterc
s��j�j��jddddg�ddddd	d
ddd
dg
}x|D]}�j|d�q<W�j�s\dSx&d&D]}�j�j�d|��dd�qbW�jd�r��j�fdd��jD�dd�n�j�fdd��jD�dd��j	�j�d�dd�}|ddko��jd��rNxR|dj
�dd�D]:}|j�}|�s&�q|d}�j�j�d|��dd��qW�j�j�d �gdd��j�j�d!�dd��jd"��r��j
jd#d$g��jd%��j��j�dS)'NZ
KUBECONFIGZKUBERNETES_HTTP_PROXYZKUBERNETES_HTTPS_PROXYZKUBERNETES_NO_PROXYZkubeletzkube-apiserverz
kube-proxyzkube-schedulerzkube-controller-managerzsnap.kubelet.daemonzsnap.kube-apiserver.daemonzsnap.kube-proxy.daemonzsnap.kube-scheduler.daemonz#snap.kube-controller-manager.daemon)�units�version�config view� zcluster-info)�subdirrcsg|]}�j�d|���qS)z
 get -o json )�kube_cmd)r�res)rrr�
<listcomp>rsz$Kubernetes.setup.<locals>.<listcomp>csg|]}�j�d|���qS)z get )r$)rr%)rrrr&wsz
 get nodes�statusrr�output�z describe node z get -o json nodesz get --raw /metricszkubevirt-virtctlZvmsZvmiszvirtctl version)r r!)Z
add_copy_spec�config_filesZadd_env_var�add_journalr�add_cmd_outputr$�
get_option�global_resources�collect_cmd_output�
splitlines�split�is_installed�	resources�extend�collect_per_resource_details�collect_all_resources)rZsvcs�svcZsubcmdZnodes�lineZwordsZnoder)rr�setupLsn







zKubernetes.setupcCs�|j|j�d�dd�}|dj�dd�}dd�|D�}�x�|D�]�}d	|}|jd
�r�|j�d|��}x,|jD]"}|j|�d|��d
|��d�qpW|jd��rT|j�d|��}x�|jD]�}|dkr�q�|j|�d|���}|ddkr�dd�|dj�dd�D�}	xH|	D]@}
|j�d|��}|j|�d|�d|
��d
|�d|��d��qWq�W|jd�r@|j�d|��}|j|�d��}|ddkr@tj|d�}|jd��r�t	|jd��nd}�x|dD�]}
|�r�t
j||
dd��r�q�d
|
dd�d|
dd��}d|
dk�rjxP|
ddD]@}|
dd}|d}|j|j�d|�d |�d!|��|d��q&Wd"|
dk�r�xP|
dd"D]@}|
dd}|d}|j|j�d|�d |�d!|��|d��q�W�q�Wq@WdS)#z7 Collect details about each resource in all namespaces z get namespaceszcluster-info)r#r(r)NcSs(g|] }|rt|j��r|j�d�qS)r)�lenr1)r�nrrrr&�sz;Kubernetes.collect_per_resource_details.<locals>.<listcomp>z--namespace=%srz
 get -o json r"z
cluster-info/rrz get r'rcSsg|]}|j�d�qS)r)r1)r�krrrr&�sz
 describe �/rz podszpodlogs-filter�itemsZmetadata�name�	namespacez	/podlogs/Z
containers�specz logs z -c ZinitContainers)r/r$r0r-r3r,Zexec_cmd�json�loadsr�re�match)rZknsZ	kn_outputZknspsZnspaceZknsp�k_cmdr%�retZk_list�itemrZregZpodZ_subdirZcontZpod_nameZ	cont_namerrrr5�sd


 z'Kubernetes.collect_per_resource_detailscCsB|jd�s>|j�d�}x&|jD]}|j|�d|��dd�qWdS)z% Collect details about all resources rz get --all-namespaces=truer"zcluster-info)r#N)r-r$r3r,)rrFr%rrrr6�s
z Kubernetes.collect_all_resourcescCs$d}|j|j|d�|j|j�dS)NzX(?P<var>{\s*"name":\s*[^,]*(pass|pwd|key|token|cred|PASS|PWD|KEY)[^,]*,\s*"value":)[^}]*z\g<var> "********")Zdo_cmd_output_subr$Zdo_cmd_private_sub)rZ
env_regexprrr�postproc�s
zKubernetes.postprocN)r
)�__name__�
__module__�__qualname__Z
short_descZplugin_nameZprofilesZplugin_timeoutr*r3r.r�strZoption_listr$rr9r5r6rIrrrrrsR
PF
rcs(eZdZd	Zd
ZdZ�fdd�Z�ZS)�RedHatKubernetesr	�kubernetes-master�atomic-openshift-master�#/etc/origin/master/admin.kubeconfig�(/etc/origin/node/pods/master-config.yamlrcsB|jd�rd|_|jjddddg�|jjddg�t�j�dS)	Nz#/etc/origin/master/admin.kubeconfigZocZlimitrangesZpoliciesZresourcequotasZroutesZprojectsZpvs)rr$r3r4r.�superr9)r)�	__class__rrr9s
zRedHatKubernetes.setup)r	rOrP)rQrR)rJrKrL�packagesrr$r9�
__classcell__rr)rTrrN�s
rNcs(eZdZdZd	Zd
Z�fdd�Z�ZS)�UbuntuKubernetesr	�#/root/cdk/cdk_addons_kubectl_config�/etc/kubernetes/admin.conf�4/var/snap/microk8s/current/credentials/client.config�cdk.master.auth-webhookcszx.|jD]$}|j|�r|jd|��7_PqWx|jD]}|j|d�q8W|jd�r\d|_|jjddg�t�j	�dS)Nz --kubeconfig=)rZmicrok8szmicrok8s kubectlz/root/cdk/kubelet/config.yamlz!/root/cdk/audit/audit-policy.yaml)
rrr$r
r+r2r*r4rSr9)rZ_kconfr7)rTrrr9*s

zUbuntuKubernetes.setup)r	)rXrYrZ)r[)rJrKrLrUrr
r9rVrr)rTrrWsrW)
ZfnmatchrrDZsos.report.pluginsrrrrrrBrrNrWrrrr�<module>si 

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists