ó E»bc@sšddlmZmZmZmZmZddlmZddlm Z defd„ƒYZ de eefd„ƒYZ de eefd „ƒYZ d S( iÿÿÿÿ(tPlugint RedHatPlugint DebianPlugint UbuntuPlugint SCLPlugin(tquote(tmatchtForemancBsPeZdZdZdZd ZdZdgZd „Ze d d „Z d „Z RS(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|rtd|ƒr|j ƒd|_n|rÈtd |ƒrÈ|j ƒd|_n|jd ƒs4t}q4q4WWnt k rønX|jjd ƒr|jj d ƒsA|jjd ƒrW|jj d ƒ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#s production:s\s+host:\s+\S+is\s+password:\s+\S+t t"s'iÿÿÿÿt PGPASSWORDs/etc/foreman*/*key.pems/etc/foreman*/encryption_key.rbthostnametoutputs hostname -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*s hammer 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_proxyt https_proxy(tFalsetdbhosttdbpasswdtopentreadt splitlinest startswithtTrueRtsplittIOErrortendswithRtadd_forbidden_pathtexec_cmdtstript add_copy_spectformatt apachepkgtadd_cmd_outputtadd_service_statust add_journaltbuild_query_cmdt get_optionRt is_installedt add_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 d d ƒ|jd dd ƒ|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)/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.pytpostprocs< (R (Rs foreman-proxy(smonthss#number of months for dynflow outputR i( t__name__t __module__t__doc__t plugin_nametplugin_timeouttprofilestpackagest option_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.pyRUCs(R\R]R<RU(((s7/usr/lib/python2.7/site-packages/sos/plugins/foreman.pyRd?st DebianForemancBseZdZRS(tapache(R\R]R<(((s7/usr/lib/python2.7/site-packages/sos/plugins/foreman.pyRiIsN( t sos.pluginsRRRRRtpipesRtreRRRdRi(((s7/usr/lib/python2.7/site-packages/sos/plugins/foreman.pyt s (ÿ.