o id':@sddlmZmZmZmZmZmZddlmZddl m Z ddl m Z GdddeZ Gddde eeZGd d d e eeZd S) )Plugin RedHatPlugin SCLPlugin DebianPlugin UbuntuPlugin PluginOpt)quote)match) is_executablec@sfeZdZdZdZdZdZdZedddd ed d d d ed d dd gZ dZ ddZ dddZ ddZ dS)Foremanz$Foreman/Satellite systems managementforemani)sysmgmt)r monthsz#number of months for dynflow output)defaultdesc proxyfeaturesFz!collect features of smart proxiespuma-gczcollect Puma GC statsz/pumactl %s -S /usr/share/foreman/tmp/puma.statecCsd}d|_d|_zAtdD]6}|r|ddkrq|dr$d}q|r2td |r2|d |_|r@td |r@|d |_|d sGd}qWn tyRYnw|jd r_|j d sk|jdrs|j drs|jd d|_d|ji|_ | ddddd| ddg| dd}|}| dd}|}|jdd|jgdd|dddd d!d"d#d$d%d&d'd(d)d*d+|jd,|jd-|jd.|jd/|jd0|jg|d1d2d3d4d5d6d7d8|d8|d9g |jd:d;d<|jd=d>d?|jd@dAd<|jdBdCd<|jdDdE|dFr#|j|jdGdHd<|j|jdIdJd<|dK|dL}|j|dM|j dNdO|dP}dQ}dR}dSt|} dTt|} dUt|} dV} ||dWdXdY| dZd[} d\| | | d]}| D]}|| |}|j||d^d_|j d`qr|da}|D]$}db}|dckr|rdd}|j||d|de}|j||d^d_|j d`q|dfr|jdgddh}|j ||j di}|djdkr|dd dD]}|dk}dl|d }|j||ddmdndoq|dpdqgdS)rNF localhostz/etc/foreman/database.ymlr#z production:Tz\s+host:\s+\S+rz\s+password:\s+\S+ "' PGPASSWORDforeman_production_logforeman_tasks_configforeman_ssl_access_ssl_log)z!/var/log/foreman/production.log.*z/etc/sysconfig/foreman-tasks/etc/sysconfig/dynflowdz)/var/log/httpd/foreman-ssl_access_ssl.logz/etc/foreman/*key.pemz/etc/foreman/encryption_key.rbhostnameoutputz hostname -fz/var/log/foreman/production.logz"/var/log/{}*/foreman-ssl_*_ssl.log) sizelimitz /etc/foreman/z/etc/sysconfig/foremanrz/etc/default/foremanz&/var/log/foreman/dynflow_executor*log*z*/var/log/foreman/dynflow_executor*.output*z#/var/log/foreman/apipie_cache*.log*z/var/log/foreman/cron*.log*z /var/log/foreman/db_migrate*log*z/var/log/foreman/db_seed*log*z$/var/log/foreman/production.log[.-]*z$/var/log/foreman-selinux-install.logz&/var/log/foreman-proxy-certs-generate*z/usr/share/foreman/Gemfile*z/var/log/{}*/foreman*z2/var/log/{}*/katello-reverse-proxy_access_ssl.log*z1/var/log/{}*/katello-reverse-proxy_error_ssl.log*z/var/log/{}*/error_log*z/etc/{}*/conf/z/etc/{}*/conf.d/zforeman-selinux-relabel -nvzpassenger-status --show poolz passenger-status --show requestsz"passenger-status --show backtraceszpassenger-memory-statszls -lanR /root/ssl-buildz(ls -lanR /usr/share/foreman/config/hookszping -c1 -W1 %szping -c1 -W1 localhostzqpid-stat -b amqps://localhost:5671 -q --ssl-certificate=/etc/pki/katello/qpid_router_client.crt --ssl-key=/etc/pki/katello/qpid_router_client.key --sasl-mechanism=ANONYMOUSz qpid-stat_-qsuggest_filenamez hammer ping hammer_ping)tagszsystemctl list-units dynflow* dynflow_unitsz!"system-dynflow\x2dsidekiq.slice"dynflow_sidekiq_statuszdynflow-sidekiq@*)unitsrzgc-statszpumactl_gc-statsstats pumactl_statsz/usr/sbin/foreman-puma-statusa[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 DESCforeman_db_tables_sizes)r$envz %s monthsrzRselect id,name,value from settings where name not similar to '%(pass|key|secret)%'z]select type,name,host,port,account,base_dn,attr_login,onthefly_register,tls from auth_sourceszselect 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 %szselect 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 %szselect 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 %szWITH 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 100z!select * from dynflow_schema_infozselect count(*) from auditszselect count(*) from logsz2select name,url,download_policy from smart_proxies)foreman_settings_tableforeman_auth_tabledynflow_schema_infoaudits_table_countlogs_table_countfact_names_prefixes smart_proxiesz!select * from foreman_tasks_tasks)foreman_tasks_tasksdynflow_execution_plansdynflow_actions dynflow_stepsiXd)r$timeoutr"r-z dynflow-utilspsqlr5z /usr/libexec/psql-msgpack-decode)csvbinaryrz"select name,url from smart_proxies)r<)r-status,z\curl -s --key /etc/foreman/client_key.pem --cert /etc/foreman/client_cert.pem %s/v2/featuressmart_proxies_features )r$subdirr: http_proxy https_proxy)dbhostdbpasswdopenread splitlines startswithr splitIOErrorendswithr- add_file_tagsadd_forbidden_pathexec_cmdstrip add_copy_specformat apachepkgadd_cmd_outputadd_service_status add_journal get_optionpumactlbuild_query_cmdr is_installed add_env_var)selfproduction_scopeline _hostname_host_f_cmdrscmdauthcmddyncmd dactioncmd dstepscmd factnamescmd foremandb foremancsvtabledynutilsdynr=proxiesproxyrpCOPY (%s) TO STDOUT WITH (FORMAT 'csv', DELIMITER ',', HEADER)z:%s --no-password -h %s -p 5432 -U foreman -d foreman -c %s)rEr)r]queryr<r=_dbcmdrprprqrZ"s zForeman.build_query_cmdcCs4|d|jdd|ddd|ddddS) Nz(/var/log/%s*/foreman-ssl_access_ssl.log*z7(.*\?(passw|cred|token|secret|key).*=)(.*) (HTTP.*(.*))z \1******** \4z/etc/foreman/(.*)((conf)(.*)?)z5((\:|\s*)(passw|cred|token|secret|key).*(\:\s|=))(.*)z \1********z"/etc/foreman/(.*)((yaml|yml)(.*)?)z \1"********")do_path_regex_subrTr]rprprqpostproc0szForeman.postprocN)Fr;)__name__ __module__ __qualname__ short_desc plugin_nameplugin_timeoutprofilespackagesr option_listrYrrrZrwrprprprqr s* ~ r cs eZdZdZfddZZS) RedHatForemanhttpdcsR|ddi|jdkrtdrd|j|_tt||jdddd dS) Nz"/usr/share/foreman/.ssh/ssh_configssh_foreman_configsclzscl enable tfm '%s'tfmzgem listzscl enable tfm gem listr#) rNpolicy dist_versionr rYsuperrrradd_cmd_output_sclrv __class__rprqrrGs  zRedHatForeman.setup)rxryrzrTrr __classcell__rprprrqrCsrc@seZdZdZdS) DebianForemanapache2N)rxryrzrTrprprprqrVsrN)sos.report.pluginsrrrrrrpipesrrer sos.utilitiesr r rrrprprprqs   2