
    ([Qh$                     8    d dl Z d dlmZmZmZ  G d dee      Zy)    N)PluginRedHatPlugin	PluginOptc                   b    e Zd ZdZdZdZdZdZ edde	d	       ed
de	d	      gZ
d Zd Zd Zy)AAPContainerizedzPCollects details about AAP Containerized setup
    under a user's home directoryzAAP Containerized Setupaap_containerized)sysmgmtansible)podmanusername z>Username that was used to setup AAP containerized installation)defaultval_typedesc	directoryzhAbsolute path to AAP containers volume directory. Defaults to 'aap' under provided user's home directoryc                    | j                  d      }|s| j                  d       y | j                  d      s5t        j                  j	                  d|       }| j                  |d      }n| j                  d      }| j                  |      rBdD cg c]  }| j                  ||       }}| j                  |       | j                  |       n| j                  d| d       d	| d
dfd	| ddfg}|D ]  \  }}| j                  ||        | j                  |      }	|	D ]#  }
|
 d}| j                  d	| d|
 d| d       % y c c}w )Nr   z=Username is mandatory to collect AAP containerized setup logsr   ~aap)
containerstlszcontroller/etc/*.certzcontroller/etc/*.keyzeda/etc/*.certzeda/etc/*.keyzgateway/etc/*.certzgateway/etc/*.keyzhub/etc/*.certzhub/etc/*.keyzhub/etc/keys/*.pemzpostgresql/*.crtzpostgresql/*.keyzreceptor/etc/*.crtzreceptor/etc/*.keyzreceptor/etc/*.pemzredis/*.crtzredis/*.keyz
Directory z1 does not exist or invalid absolute path providedsu - z -c 'podman info --debug'podman_infoz  -c 'podman ps -a --format json'podman_ps_all_json)suggest_filenamez.logz -c 'podman logs 'aap_containers_log)r   subdir)
get_option
_log_errorospath
expanduser	path_joinpath_existsadd_forbidden_pathadd_copy_specadd_cmd_output_get_aap_container_names)selfr   user_home_directoryaap_directory_namer!   forbidden_pathspodman_commandscommandfilenameaap_containers	containerlog_files               F/usr/lib/python3/dist-packages/sos/report/plugins/aap_containerized.pysetupzAAPContainerized.setup)   s   ??:.OO ; < {+"$''"4"4q
^"D!%0CU!K!%!= ./ 148O . ##O412OOj);(< =@ @ A
 XJ78-HXJ>?$&
 "1 	DGX(C	D 66x@ ( 	I#D)HH:%6ykC(0z/   	Ys   Ec                     	 d| d}| j                  |      }|d   dk(  r"|d   j                         j                  d      S g S # t        $ r | j	                  d       g cY S w xY w)Nr   z& -c 'podman ps -a --format {{.Names}}'statusr   output
z"Error retrieving Podman containers)exec_cmdstripsplit	Exceptionr   )r)   r   cmdcmd_outs       r3   r(   z)AAPContainerized._get_aap_container_nameso   sv    	(#MNCmmC(Gx A%x(..066t<<I 	OO@AI	s   A A A A$#A$c                 ^    g d}| j                  d      }|d   dk(  r|D ]  }||d   v s y y)N)zdumb-init -- /usr/bin/envoyz!dumb-init -- /usr/bin/supervisordz'dumb-init -- /usr/bin/launch_awx_web.shz(dumb-init -- /usr/bin/launch_awx_task.shz+pulpcore-content --name pulp-content --bindzdumb-init -- aap-eda-managezps --noheaders -eo argsr6   r   r7   TF)r9   )r)   aap_processes	ps_outputprocesss       r3   check_enabledzAAPContainerized.check_enabled{   sK     MM";<	X!#(  i11      N)__name__
__module____qualname____doc__
short_descplugin_nameprofilespackagesr   stroption_listr4   r(   rC    rD   r3   r   r      sf    % +J%K&HH 	-		
 	E		
K"CL	rD   r   )r    sos.report.pluginsr   r   r   r   rO   rD   r3   <module>rQ      s     
 > >|v| |rD   