
    hX                         d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Zd dl
Zd dlZd dlZdadZdZdZd Zd Zd Zd Zd	 Zd
 ZdS )    Neth0z10.0.*ij  c                  j   dddddddt           g} t          j                            | dd	d	d	
          }t	          j        |j                  d         d         d         d         }t          j        |t                    r4|	                    d          }|d          d|d          d|d          d}|S d S )Nipz-j-oz-4addrshowdevFT)check	no_podmancapture_outputtextr   	addr_infolocal.      z.1)

lxc_netdevtestenvcmdrunjsonloadsstdoutfnmatchlxc_ip_patternsplit)r   prets      Z/home/osmocom-build/jenkins/workspace/ttcn3-pcu-test-sns-asan/_testenv/testenv/coredump.pyfind_lxc_host_ipr       s    tT665*
EC5DTXYYA
*QX

q
!+
.q
1'
:CsN++ iinnQ--#a&--3q6---
4    c                     t          j        d           t          j                            d          pt                      } | st          j        d           d S 	 t          j        	                    d|  dt           d          5 }t          |                                          d         at          t          j        j         dd          5 }t#          j        ||           d d d            n# 1 swxY w Y   t          j        d	           d d d            d S # 1 swxY w Y   d S # t          j        j        $ rJ}d a|j        d
k    rt          j        d           nt          j        d|            Y d }~d S Y d }~d S d }~wt          j        j        $ r$}d at          j        d|            Y d }~d S d }~ww xY w)Nz"Looking for a coredump on lxc host!TESTENV_COREDUMP_FROM_LXC_HOST_IPz2Failed to get lxc host ip, can't look for coredumpzhttp://:/corezX-Executable-Pathwbz$Coredump found and copied to log diri  No coredump foundz9Unexpected error while attempting to fetch the coredump: )logginginfoosenvirongetr    warningurllibrequesturlopenlxc_portdict
getheadersexecutable_pathopenr   testdirshutilcopyfileobjdebugerror	HTTPErrorcodeURLError)r   responsehes       r   get_from_coredumpctl_lxc_hostrA   #   s    L5666	;	<	<	R@P@R@RB LMMMW^##$Bb$B$B8$B$B$BCC 	Bx"8#6#6#8#899:MNO0777>> 0!"8Q///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0M@AAA		B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B
 <! [ [ [6S==M-....MYVWYYZZZZZZZZZ /..... <  W W WURSUUVVVVVVVVVWsm   +D+ A
DC2&D2C6	6D9C6	:DD+ D""D+ %D"&D+ +F??9FF?F::F?c                     t           j        j        r"ddg}|D ]}t          j        | |          r dS n&|                     t           j        j                  rdS dS )Nz*/usr/bin/open5gs-*z*/usr/bin/osmo-*TF)r   argsbinary_repor   
startswithcache)exepatternspatterns      r   executable_is_relevantrJ   ?   sw    | !

   	 	GsG,, tt	 >>',,-- 	45r!   c                  N   t          j        d           t          j        d          st          j        d           d S t
          j                                        t          j        d          z
                      d          } ddd| d	d
g}t          j        d|            t          j
        |dd          }|j        dk    rt          j        d           d S t          j        |j                  d         }t          |d                   st          j        d           d S t          j        d           t           j        j         d}t           j        
                    dddd| d|t'          |d                   |d         g	t          j        d           |d         ad S )NzLooking for a coredumpcoredumpctlz7coredumpctl is not available, won't try to get coredump   )secondsz%Y-%m-%d %H:%M:%Sz-qz-Sz--json=shortz-n1z+ T)r   r   r   r'   rG   z%Found an unrelated coredump, ignoringz"Coredump found, copying to log dirr%   dumpr   pid)r   r   )r(   r)   r7   whichr9   datetimenow	timedeltastrftime
subprocessr   
returncoder   r   r   rJ   r   r6   r   strDEVNULLr4   )sincer   r   coredump	core_paths        r   get_from_coredumpctl_localr]   P   s    L)***<&& OPPP ""$$x'9!'D'D'DDNNObccE$e^U
CCM*s**s4d;;;A|q)*** z!(##A&H!(5/22 =>>>M6777?*111IKOO	dE4CQVDXDXZbchZij!     uoOOOr!   c                      t           j                            d          rt                       d S t	                       d S )NTESTENV_COREDUMP_FROM_LXC_HOST)r*   r+   r,   rA   r]    r!   r   get_from_coredumpctlra   t   s=    	z~~677 %%'''''"$$$$$r!   c                     t           j        j         d} t          rt          j                            |           sd S t          j        d           d}|dz  }|dt          j	        t                     z  }|dt          j	        |            z  }|dz  }|dt          j	        |            dz  }t           j
                            |           d ad S )	Nr%   zRunning gdb to get a backtracegdbz --batch z -ex btz | tee z
.backtrace)r   r6   r4   r*   pathexistsr(   r)   shlexquoter   r   )r\   r   s     r   get_backtraceri   {   s     ?*111I "'..";"; L1222
C:C-u{?++---C'u{9%%'''C9C7U[++7777CKOOCOOOr!   )rR   r   r   r(   r*   rg   r7   rV   r   testenv.daemonstestenv.testdirr.   urllib.requestr4   r   r   r1   r    rA   rJ   r]   ra   ri   r`   r!   r   <module>rm      s       				                    
  W W W8  "!& !& !&H% % %    r!   