Current File : //lib/python2.7/site-packages/sos/plugins/foreman.pyc
�
u��ec@s�ddlmZmZmZmZmZddlmZddlm	Z	defd��YZ
de
eefd��YZde
eefd	��YZd
S(i����(tPlugintRedHatPlugintDebianPlugintUbuntuPlugint	SCLPlugin(tquote(tmatchtForemancBsPeZdZdZdZd
ZdZdgZd	�Ze	d
d�Z
d�ZRS(s+Foreman/Satellite 6 systems management
    tforemanitsysmgmts
foreman-proxytmonthss#number of months for dynflow outputtfastic*Cs�t}d|_d|_y�x�td�j�j�D]�}|s4|ddkrWq4n|jd�rrt}q4n|r�td|�r�|j	�d|_n|r�td	|�r�|j	�d|_n|jd
�s4t}q4q4WWnt
k
r�nX|jjd�r|jjd�sA|jjd�rW|jjd�rW|jdd
!|_ni|jd6|_|j
ddg�|jd�d}|j�}|jd�d}|j�}|jddj|j�gdd�|jdddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4j|�d5j|�d6j|j�d7j|j�d8j|j�d9j|j�d:j|j�d;j|j�g%�|jd<d=d>d?d@dAdBdCdDdEdF|dF|dGg
�|jdHdIdJ�|jdKdIdL�|jdMdN�|jdO�}|j|dIdPdQ|j�dR|jdS�}dT}dU}dVt|�}	dWt|�}
dXt|�}dY}i|dZ6|d[6d\d]6d^d_6d`da6dbdc6|dd6dedfdgdhdi6}
i|	dj6|
dk6|dl6}xI|
D]A}|j|
|�}|j|dI|dmdnddodQ|j�qW|jdp�}xv|D]n}dq}|d_kr�|r�dr}n|j||dstdt|�}|j|dI|dmdnddodQ|j�qoW|jdudvg�dS(wNt	localhostts/etc/foreman/database.ymlit#sproduction:s\s+host:\s+\S+is\s+password:\s+\S+t t"s'i����t
PGPASSWORDs/etc/foreman*/*key.pems/etc/foreman*/encryption_key.rbthostnametoutputshostname -fs/var/log/foreman/production.logs"/var/log/{}*/foreman-ssl_*_ssl.logt	sizelimits
/etc/foreman/s/etc/foreman-proxy/s/etc/sysconfig/foremans/etc/sysconfig/dynflowds/etc/default/foremans/etc/foreman-installer/s&/var/log/foreman/dynflow_executor*log*s*/var/log/foreman/dynflow_executor*.output*s#/var/log/foreman/apipie_cache*.log*s/var/log/foreman/cron*.log*s /var/log/foreman/db_migrate*log*s/var/log/foreman/db_seed*log*s$/var/log/foreman/production.log[.-]*s /var/log/foreman-proxy/cron*log*s,/var/log/foreman-proxy/migrate_settings*log*s!/var/log/foreman-proxy/proxy*log*s4/var/log/foreman-proxy/smart_proxy_dynflow_core*log*s$/var/log/foreman-selinux-install.logs&/var/log/foreman-proxy-certs-generate*s/var/log/foreman-installer/*s/var/log/foreman-maintain/*s/var/log/syslog*s/var/log/tomcat*/catalina*log*s"/var/log/tomcat*/host-manager*log*s/var/log/tomcat*/localhost*log*s/var/log/tomcat*/manager*log*s/usr/share/foreman/Gemfile*s /var/lib/puppet/ssl/certs/ca.pems'/etc/puppetlabs/puppet/ssl/certs/ca.pems'/etc/puppetlabs/puppet/ssl/certs/{}.pems /var/lib/puppet/ssl/certs/{}.pems/var/log/{}*/foreman*s2/var/log/{}*/katello-reverse-proxy_access_ssl.log*s1/var/log/{}*/katello-reverse-proxy_error_ssl.log*s/var/log/{}*/error_log*s/etc/{}*/conf/s/etc/{}*/conf.d/s4bundle --local --gemfile=/usr/share/foreman/Gemfile*shammer pingsforeman-selinux-relabel -nvsforeman-maintain service statusspassenger-status --show pools passenger-status --show requestss"passenger-status --show backtracesspassenger-memory-statssls -lanR /root/ssl-builds(ls -lanR /usr/share/foreman/config/hookssping -c1 -W1 %ssping -c1 -W1 localhostssystemctl list-units dynflow*tsuggest_filenamet
dynflow_unitss!"system-dynflow\x2dsidekiq.slice"tdynflow_sidekiq_statustunitssdynflow-sidekiq@*s[SELECT table_name, pg_size_pretty(total_bytes) AS total, pg_size_pretty(index_bytes) AS INDEX , pg_size_pretty(toast_bytes) AS toast, pg_size_pretty(table_bytes) AS TABLE FROM ( SELECT *, total_bytes-index_bytes-COALESCE(toast_bytes,0) AS table_bytes FROM (SELECT c.oid,nspname AS table_schema, relname AS TABLE_NAME, c.reltuples AS row_estimate, pg_total_relation_size(c.oid) AS total_bytes, pg_indexes_size(c.oid) AS index_bytes, pg_total_relation_size(reltoastrelid) AS toast_bytes FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE relkind = 'r') a) a order by total_bytes DESCtforeman_db_tables_sizestenvs	%s monthsR
sRselect id,name,value from settings where name not similar to '%(pass|key|secret)%'s]select type,name,host,port,account,base_dn,attr_login,onthefly_register,tls from auth_sourcess�select dynflow_execution_plans.* from foreman_tasks_tasks join dynflow_execution_plans on (foreman_tasks_tasks.external_id = dynflow_execution_plans.uuid::varchar) where foreman_tasks_tasks.started_at > NOW() - interval %ss�select dynflow_actions.* from foreman_tasks_tasks join dynflow_actions on (foreman_tasks_tasks.external_id = dynflow_actions.execution_plan_uuid::varchar) where foreman_tasks_tasks.started_at > NOW() - interval %ss�select dynflow_steps.* from foreman_tasks_tasks join dynflow_steps on (foreman_tasks_tasks.external_id = dynflow_steps.execution_plan_uuid::varchar) where foreman_tasks_tasks.started_at > NOW() - interval %ss�WITH prefix_counts AS (SELECT split_part(name,'::',1) FROM fact_names) SELECT COUNT(*), split_part AS "fact_name_prefix" FROM prefix_counts GROUP BY split_part ORDER BY count DESC LIMIT 100tforeman_settings_tabletforeman_auth_tables!select * from dynflow_schema_infotdynflow_schema_infos!select * from foreman_tasks_taskstforeman_tasks_taskssselect count(*) from auditstaudits_table_countsselect count(*) from logstlogs_table_counttfact_names_prefixessselect sp.name, sp.url, s+sp.download_policy,n.ip from smart_proxies s-as sp left join hosts as h on h.name=sp.name s%left join nics as n on n.host_id=h.idt
smart_proxiestdynflow_execution_planstdynflow_actionst
dynflow_stepsttimeoutiXids
dynflow-utilstpsqls /usr/libexec/psql-msgpack-decodetcsvtbinaryt
http_proxythttps_proxy(tFalsetdbhosttdbpasswdtopentreadt
splitlinest
startswithtTrueRtsplittIOErrortendswithRtadd_forbidden_pathtexec_cmdtstript
add_copy_spectformatt	apachepkgtadd_cmd_outputtadd_service_statustadd_journaltbuild_query_cmdt
get_optionRtis_installedtadd_env_var(tselftproduction_scopetlinet	_hostnamet_host_ft_cmdR
tscmdtauthcmdtdyncmdt
dactioncmdt	dstepscmdtfactnamescmdt	foremandbt
foremancsvttabletdynutilstdynR)((s7/usr/lib/python2.7/site-packages/sos/plugins/foreman.pytsetups		
$$
		
	







		R'cCs3|rd|}nd}|||jt|�fS(sI
        Builds the command needed to invoke the pgsql query as the postgres
        user.
        The query requires significant quoting work to satisfy both the
        shell and postgres parsing requirements. Note that this will generate
        a large amount of quoting in sos logs referencing the command being run
        s>COPY (%s) TO STDOUT WITH (FORMAT 'csv', DELIMITER ',', HEADER)s:%s --no-password -h %s -p 5432 -U foreman -d foreman -c %s(R-R(RDtqueryR(R)t_dbcmd((s7/usr/lib/python2.7/site-packages/sos/plugins/foreman.pyR@s

cCs�d}|jd|d�d}|jd|d�|jddd�|jdd	d�|jd
dd�|jd
dd�|jddd�|jd|jdd�dS(Ns~((foreman.*)?(\"::(foreman(.*?)|katello).*)?((::(.*)::.*(passw|cred|token|secret|key).*(\")?:)|(storepass )|(password =)))(.*)s/var/log/foreman-installer/sat*s\1 ********sZ(\s)+(Found key: (\"(foreman(.*?)|katello)::(.*(token|secret|key|passw).*)\") value:) (.*)s\1 \2 ********s#(\.|_|-)password(=\'|=|\", \")(\w*)s\1password\2********s)/var/log/foreman-installer/foreman-proxy*s(\s*proxy_password\s=) (.*)s!/etc/foreman(.*)((yaml|yml)(.*)?)s5((\:|\s*)(passw|cred|token|secret|key).*(\:\s|=))(.*)s\1"********"s/etc/foreman(.*)((conf)(.*)?)s
\1********s//var/log/foreman-maintain/foreman-maintain.log*s.(((passw|cred|token|secret)=)|(password ))(.*)s(/var/log/%s*/foreman-ssl_access_ssl.log*s7(.*\?(passw|cred|token|secret|key).*=)(.*) (HTTP.*(.*))s
\1******** \4(tdo_path_regex_subR<(RDtsatregt
sat_debug_reg((s7/usr/lib/python2.7/site-packages/sos/plugins/foreman.pytpostprocsD
(R	(Rs
foreman-proxy(smonthss#number of months for dynflow outputRi(t__name__t
__module__t__doc__tplugin_nametplugin_timeouttprofilestpackagestoption_listRUR,R@R[(((s7/usr/lib/python2.7/site-packages/sos/plugins/foreman.pyRs		�t
RedHatForemancBseZdZd�ZRS(thttpdcCs-tt|�j�|jdddd�dS(Nttfmsgem listRsscl enable tfm gem list(tsuperRdRUtadd_cmd_output_scl(RD((s7/usr/lib/python2.7/site-packages/sos/plugins/foreman.pyRUHs(R\R]R<RU(((s7/usr/lib/python2.7/site-packages/sos/plugins/foreman.pyRdDst
DebianForemancBseZdZRS(tapache(R\R]R<(((s7/usr/lib/python2.7/site-packages/sos/plugins/foreman.pyRiNsN(
tsos.pluginsRRRRRtpipesRtreRRRdRi(((s7/usr/lib/python2.7/site-packages/sos/plugins/foreman.pyt<module>s(�3