
    G%@i!                     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                   h    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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       | j                  d      }|d   dk(  rt               }|d   j	                         D ]2  }d|v sd|v s|j                  d	
      \  }}|j                  |       4 t        |      d	k(  r&|j                         }| j                  d| d       n| 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 ];  }| j#                  d| d| d| dd       | j#                  d| d| d|d       = d d!gg d"g d#d$d%gd&d'gd(}|j'                         D ]@  \  }}||v s|D ]1  }| j)                  |      }| j#                  d| d)| d*| d+||       3 B y c c}	w ),Nr   zMAAP username is missing, use '-k aap_containerized.username=<user>' to set itzps auxstatusr   outputz/usr/bin/podmanz!/.local/share/containers/storage/   )maxsplitzAAP username detected as ''z5Unable to determine AAP username, terminating plugin.r   ~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 -c 'podman logs z.logaap_container_logs)r   subdirz -c 'podman inspect podman_inspect_logsawx-manage check_license --dataawx-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 --listzaap-gateway-manage --version)zawx-manage showmigrationsr$   z"awx-manage run_dispatcher --statusz)awx-manage run_callback_receiver --statusr#   zawx-manage run_wsrelay --statuszaap-eda-manage --versionzaap-eda-manage showmigrationszreceptorctl statuszreceptorclt work list)zautomation-controller-taskzautomation-gatewayzautomation-controller-webzautomation-eda-apireceptorz -c 'podman exec -it  z
 bash -c "z"')
get_option	_log_warnexec_cmdset
splitlinessplitaddlenpop
_log_errorospath
expanduser	path_joinpath_existsadd_forbidden_pathadd_copy_specadd_cmd_output_get_aap_container_namesitems_mangle_command)selfr   pspodman_userslineuser_user_home_directoryaap_directory_namer2   forbidden_pathspodman_commandscommandfilenameaap_containers	containerpod_cmdspodcmdscmdfnames                        F/usr/lib/python3/dist-packages/sos/report/plugins/aap_containerized.pysetupzAAPContainerized.setup)   s9   ??:.NN J Kx(B(|q "uxL335 /D)T1;tC"&**a*"8a$((.	/
 |$)+//1HNN%?z#KL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H:%6ykC(1{$%7/   
 H:%9)AF%.0   
	" 2++#* +/#
 %'5
> ") 	4ICn$ 4C 005E''%z :--0ESE)F9>/2 ( 44	4us   I9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}}'r   r   r   
z"Error retrieving Podman containers)r)   stripr,   	Exceptionr0   )r<   r   rM   cmd_outs       rO   r9   z)AAPContainerized._get_aap_container_names   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dumb-init -- aap-eda-managez5pulpcore-content --name pulp-content --bind 127.0.0.1zps --noheaders -eo argsr   r   r   TF)r)   )r<   aap_processes	ps_outputprocesss       rO   check_enabledzAAPContainerized.check_enabled   sK     MM";<	X!#(  i11      c                 X    d}| j                  d|d       d}| j                  d|d       y )Nz8((["\']?PASSWORD["\']?\s*[:=]\s*)[rb]?["\'])(.*?)(["\'])r%   z\1**********\4z-((SECRET_KEY\s*=\s*)([rb]?["\']))(.*?)(["\'])z\1**********\5)do_cmd_output_sub)r<   jregs     rO   postproczAAPContainerized.postproc   s=    J/	 @/	r[   N)__name__
__module____qualname____doc__
short_descplugin_nameprofilespackagesr   stroption_listrP   r9   rZ   r_    r[   rO   r   r      sk    % +J%K&HH 	-		
 	E		
K"@4F	$r[   r   )r1   sos.report.pluginsr   r   r   r   rj   r[   rO   <module>rl      s     
 > >Hv| Hr[   