a ir$@s2ddlZddlmZmZmZGdddeeZdS)N)Plugin RedHatPlugin PluginOptc@s`eZdZdZdZdZdZdZedde dd ed de d d gZ d d Z ddZ ddZ ddZdS)AAPContainerizedzPCollects details about AAP Containerized setup under a user's home directoryzAAP Containerized SetupZaap_containerized)ZsysmgmtZansible)Zpodmanusernamez>Username that was used to setup AAP containerized installation)defaultZval_typeZdesc directoryzhAbsolute path to AAP containers volume directory. Defaults to 'aap' under provided user's home directoryc s:d}d_|sdd}|ddkrt}|dD].}d|vrLd |vrL|jd d \}}||qLt|d kr| }d |d n ddSjst j d|}|d_jrfdddD}|jn djdd|ddfd|ddfg} | D]\} } j| | dqH|} | D]H} jd|d| d | dddjd|d | d | d!dqpd"d#ggd$gd%d&d'gd(d)gd*}|D]N\}}|| vr|D]4}|}jd|d+|d,|d-||dqqdS).Nrr zMAAP username is missing, use '-k aap_containerized.username=' to set itzps auxstatusroutputz/usr/bin/podmanz!/.local/share/containers/storage/)maxsplitzAAP username detected as ''z5Unable to determine AAP username, terminating plugin.~Zaapcsg|]}j|qS) path_joinaap_directory_name).0pathselfrH/usr/lib/python3.9/site-packages/sos/report/plugins/aap_containerized.py Hsz*AAPContainerized.setup..)Z containersZtlszcontroller/etc/*.certzcontroller/etc/*.keyzeda/etc/*.certz eda/etc/*.keyzgateway/etc/*.certzgateway/etc/*.keyzhub/etc/*.certz hub/etc/*.keyzhub/etc/keys/*.pemzpostgresql/*.crtzpostgresql/*.keyzreceptor/etc/*.crtzreceptor/etc/*.keyzreceptor/etc/*.pemz redis/*.crtz redis/*.keyz Directory z2 does not exist or invalid absolute path provided.su - z -c 'podman info --debug'Z podman_infoz -c 'podman ps -a --format json'Zpodman_ps_all_json)suggest_filenamez -c 'podman logs z.logZaap_container_logs)rZsubdirz -c 'podman inspect Zpodman_inspect_logsawx-manage check_license --dataawx-manage list_instances)z!automation-gateway-service status!aap-gateway-manage print_settingsz!aap-gateway-manage authenticatorsz!aap-gateway-manage showmigrationsz aap-gateway-manage list_servicesz'aap-gateway-manage feature_flags --listzaap-gateway-manage --version)zawx-manage showmigrationsrz"awx-manage run_dispatcher --statusz)awx-manage run_callback_receiver --statusrzawx-manage run_wsrelay --statuszaap-eda-manage --versionzaap-eda-manage showmigrationszreceptorctl statuszreceptorclt work list)zautomation-controller-taskzautomation-gatewayzautomation-controller-webzautomation-eda-apiZreceptorz -c 'podman exec -it z bash -c "z"')Z get_optionrZ _log_warnexec_cmdset splitlinessplitaddlenpop _log_errorosr expanduserrZ path_existsZadd_forbidden_pathZ add_copy_specZadd_cmd_output_get_aap_container_namesitemsZ_mangle_command)rrZpsZ podman_userslineuser_Zuser_home_directoryZforbidden_pathsZpodman_commandsZcommandfilenameZaap_containers containerZpod_cmdsZpodZcmdscmdfnamerrrsetup)s                   zAAPContainerized.setupcCsbzgd}|d}|ddkr:|D]}||dvr"dSq"dS)N)zdumb-init -- /usr/bin/envoyz!dumb-init -- /usr/bin/supervisordz'dumb-init -- /usr/bin/launch_awx_web.shz(dumb-init -- /usr/bin/launch_awx_task.shzdumb-init -- aap-eda-managez5pulpcore-content --name pulp-content --bind 127.0.0.1zps --noheaders -eo argsr rr TF)r)rZ aap_processesZ ps_outputZprocessrrr check_enableds   zAAPContainerized.check_enabledcCs|jd}d}d}|||||jd}d}d}|||||jd}d}d}||||d }|d |d d }|d |d dS)Nz/controller/etc/settings.pyz$(EMAIL_HOST_PASSWORD\s*=\s*)\'(.+)\'z \1********z/gateway/etc/settings.pyz(\s*'PASSWORD'\s*:\s*)('.*')z/eda/etc/settings.yamlz6(\s*)(PASSWORD|MQ_USER_PASSWORD|SECRET_KEY)(:\s*)(.*$)z\1\2\3********z8((["\']?PASSWORD["\']?\s*[:=]\s*)[rb]?["\'])(.*?)(["\'])rz\1**********\4z-((SECRET_KEY\s*=\s*)([rb]?["\']))(.*?)(["\'])z\1**********\5)rZdo_path_regex_subZdo_cmd_output_sub)rZ file_pathZjregreplZregexZ replacementrrrpostprocs0   zAAPContainerized.postprocN)__name__ __module__ __qualname____doc__Z short_descZ plugin_nameZprofilesZpackagesrstrZ option_listr1r(r5r7rrrrrs. r)r&Zsos.report.pluginsrrrrrrrr s