3
ܓiH @ sn d dl mZ d dlmZ d dlmZmZmZmZm Z G dd deZ
G dd de
eZG dd d e
eeZd
S ) )match)quote)PluginRedHatPluginDebianPluginUbuntuPlugin PluginOptc @ s e Zd ZdZdZdZd#Zd$ZdZdZ dZ
dZd diZe
d
ddd
e
dddd
e
dddd
e
dddd
gZdZdd Zdd Zdd Zdd Zd%dd Zd!d" ZdS )&Foremanz$Foreman/Satellite systems managementforemani sysmgmtNZ localhosti8
PGPASSWORDdays z!number of days for dynflow output)defaultZdesc
proxyfeaturesFz!collect features of smart proxieszpuma-gczcollect Puma GC stats cvfiltersz'collect content view filters definitionz/pumactl %s -S /usr/share/foreman/tmp/puma.statec $ C s d}yd}t |ddd}|j j }W d Q R X x|D ]}| s6|d dkrNq6|jdr^d }q6|rztd
|rz|j d | _|rtd|r|j d | _|rtd
|r|j d | _|jds6d}q6W W n t k
r Y nX | jjdr| jj
ds| jjdr"| jj
dr"| jddW | _d| ji| _| jddddd | j
ddg | jdd }|j }| jdd }|j }| jdd| j dgdd | jd d!d"d#d$d%d&d'd(d)d*d+d,d-d| j d.d| j d/d| j d0d1| j d2d1| j d3d| j d4g | jd5d6d7d8d9d:| d:| d;g | jdgd d? | jd@dAdB | jdCdDdEdF | jdGdHdB | jdIdJdB | jdKdL | jdMr| j| jdN dOdB | j| jdP dQdB | jdR | jdS}| j|dT| jdU | j | j | jdVr| j d S )XNFz/etc/foreman/database.ymlrzUTF-8)encodingr #zproduction:Tz\s+host:\s+\S+ z\s+port:\s+\S+z\s+password:\s+\S+ "'r
Zforeman_production_logZforeman_tasks_configZforeman_ssl_access_ssl_log)z!/var/log/foreman/production.log.*z/etc/sysconfig/foreman-tasksz/etc/sysconfig/dynflowdz)/var/log/httpd/foreman-ssl_access_ssl.logz/etc/foreman/*key.pemz/etc/foreman/encryption_key.rbZhostnameoutputzhostname -fz/var/log/foreman/production.logz /var/log/z*/foreman-ssl_*_ssl.logi ) sizelimitz
/etc/foreman/z/etc/sysconfig/foremanz/etc/sysconfig/dynflowdz/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
*/foreman*z&*/katello-reverse-proxy_error_ssl.log*z*/error_log*z/etc/z*/conf/z */conf.d/z'*/katello-reverse-proxy_access_ssl.log*zforeman-selinux-relabel -nvzpassenger-status --show poolz passenger-status --show requestsz"passenger-status --show backtraceszpassenger-memory-statsz
ping -c1 -W1 zping -c1 -W1 localhostz/root/ssl-buildz/usr/share/foreman/config/hooksz"/var/lib/foreman/red_hat_inventory) recursivezqpid-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=ANONYMOUSzqpid-stat_-q)suggest_filenamezhammer pingZhammer_pingx )Ztagstimeoutzsystemctl list-units dynflow*Z
dynflow_unitsz!"system-dynflow\x2dsidekiq.slice"Zdynflow_sidekiq_statuszdynflow-sidekiq@*)Zunitszpuma-gczgc-statszpumactl_gc-statsZstatsZ
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 DESCZforeman_db_tables_sizes)r envr )openread
splitlines
startswithr splitdbhostdbportdbpasswdIOErrorendswithr
add_file_tagsZadd_forbidden_pathexec_cmdstripZ
add_copy_spec apachepkgadd_cmd_outputZadd_dir_listingZadd_service_statusZadd_journal
get_optionpumactlbuild_query_cmdcollect_foreman_dbcollect_proxiescollect_cv_filters) selfZproduction_scopeZ
foreman_dbdfileZ
foreman_lineslineZ _hostnameZ_host_f_cmd r; /usr/lib/python3.6/foreman.pysetup+ s
z
Foreman.setupc
C s | j d d}t|}d}d| d}d| d}d| d}d | d}d
}d} d}
|d
d|ddd| |
d }||||d}x4|j D ](\}
}| j|}| j||
dd| jd qW | jd}xN|j D ]B\}}d}|dkr|rd}| j|d|d}| j||dd| jd qW dS )z% Collect foreman db and dynflow data r z dayszRselect id,name,value from settings where name not similar to '%(pass|key|secret)%'zFselect * from foreman_tasks_tasks where started_at > NOW() - interval z order by started_at asczselect 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 z, order by foreman_tasks_tasks.started_at asczselect 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 zselect 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 zSELECT id,network,mask,name,vlanid,gateway,dns_primary,dns_secondary,boot_mode,ipam,type,description,mtu,template_id,nic_delay,externalipam_id,externalipam_group,dhcp_id,tftp_id,dns_id,discovery_id,httpboot_id,externalipam_id FROM subnets ORDER BY id DESCzWITH 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 100zSELECT sp.id, sp.name, sp.url, sp.download_policy, STRING_AGG(f.name, ', ') AS features FROM smart_proxies AS sp INNER JOIN smart_proxy_features AS spf ON sp.id = spf.smart_proxy_id INNER JOIN features AS f ON spf.feature_id = f.id GROUP BY sp.idzselect * from schema_migrationsz`select id,type,name,host,port,account,base_dn,attr_login,onthefly_register,tls from auth_sourcesz!select * from dynflow_schema_infozselect count(*) from auditszselect count(*) from logs) Zforeman_settings_tableZforeman_schema_migrationsZforeman_auth_tableZforeman_subnets_tableZdynflow_schema_infoZaudits_table_countZlogs_table_countZfact_names_prefixesZ
smart_proxies)foreman_tasks_tasksZdynflow_execution_plansZdynflow_actionsZ
dynflow_stepsiX d )r r r r z
dynflow-utilspsqlr> z /usr/libexec/psql-msgpack-decodeT)csvbinaryN)r1 r itemsr3 r0 r Zis_installed)r7 r ZintervalZscmdZdtaskcmdZdyncmdZ
dactioncmdZ dstepscmdZ
subnetscmdZfactnamescmdZsmartcmdZ foremandbZ
foremancsvtablevalr: ZdynutilsZdynrB r; r; r<