+
    Rj  c                      ^ RI Ht ^ RIt^ RIHu Ht ^ RIt^ RI	t	^ RI
t
^ RIt^ RIHt ]! ]4      P                  4       P                   ^,          t]R,          R,          tR tR tR tR# )	    )annotationsN)Pathbinzinstall-tailnet-edgec                   \         P                  P                  4       p\        V 4      VR &   \        P
                  ! \        \        4      RR.VRRRR7      pRq2P                  qCV9   qU'       g   \        P                  ! R7V3R8W434      R\        P                  ! V4      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR	\        P                  ! V4      /,          pR
RV/,          p\        \        P                  ! V4      4      hR;p;rTV R,          pVR,          p	V	P                   q! 4       q'       g   RRR\        P                  ! 4       9   g   \        P                  ! V	4      '       d   \        P                  ! V	4      MRR\        P                  ! V
4      R\        P                  ! V4      /,          p\        \        P                  ! V4      4      hR;rV	P#                  4       pVR,          p. qP$                  q! 4       qq?'       d   VP                   pV! 4       pV'       * pTpV'       Egy   RRR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pV
P'                  V4       V'       d   RRR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! X4      R\        P                  ! X4      /,          pV
P'                  V4       \        P(                  ! V
^ 4      / ,          pRRV/,          p\        \        P                  ! V4      4      hR;p;p
;p;p;p;pp\*        P,                  qP*                  qD! 4       pVP.                  pV
! V4      pRpVV8H  pV'       Egv   \        P                  ! R9V3R:VV34      RR\        P                  ! 4       9   g!   \        P                  ! \*        4      '       d   \        P                  ! \*        4      MRR\        P                  ! V
4      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR	\        P                  ! V4      R\        P                  ! V4      R\        P                  ! V4      R \        P                  ! V4      R!\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p
;p;p;p;p;ppV R",          p\0        P2                  ! VP5                  4       4      pR#R.R$R%R&R'R(R)R*R+/pVV8H  q'       g   \        P                  ! R9V
3R;VV34      RR,\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR,R\        P                  ! V4      /,          pR-R	V/,          p\        \        P                  ! V4      4      hR;r\*        P,                  p
VP*                  qD! 4       pVP.                  pV
! V4      pR.pVV8H  pV'       Egv   \        P                  ! R9V3R:VV34      RR\        P                  ! 4       9   g!   \        P                  ! \*        4      '       d   \        P                  ! \*        4      MRR\        P                  ! V
4      RR/\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR/R	\        P                  ! V4      R\        P                  ! V4      R\        P                  ! V4      R \        P                  ! V4      R!\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p
;p;p;p;p;ppV R0,          P5                  4       pR1q3V9   qU'       g   \        P                  ! R7V3R<VV34      R\        P                  ! V4      RR2\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR2/,          pR-R	V/,          p\        \        P                  ! V4      4      hR;r5R3q3V9   qU'       g   \        P                  ! R7V3R<VV34      R\        P                  ! V4      RR2\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR2/,          pR-R	V/,          p\        \        P                  ! V4      4      hR;r5R4q3V9   qU'       g   \        P                  ! R7V3R<VV34      R\        P                  ! V4      RR2\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR2/,          pR-R	V/,          p\        \        P                  ! V4      4      hR;r5R5q3V9   qU'       g   \        P                  ! R7V3R<VV34      R\        P                  ! V4      RR2\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR2/,          pR-R	V/,          p\        \        P                  ! V4      4      hR;r5R6q3V9  qU'       g   \        P                  ! R=V3R>VV34      R\        P                  ! V4      RR2\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR2/,          pR-R	V/,          p\        \        P                  ! V4      4      hR;r5R# )?!OVERDECK_SUBROUTER_EDGE_TEST_ROOT--allow-hostdebian1T)envtextcapture_outputcheckzApproved hosts: 1py1py3resultpy5assert %(py7)spy7Nzvar/lib/overdeck/subrouter-edgecurrentzEassert %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.is_symlink
}()
}py0py2py4ztailnet_edge.pyz;%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s.is_file
}()
}edgepy6zFnot %(py12)s
{%(py12)s = %(py10)s
{%(py10)s = %(py8)s.is_symlink
}()
}py8py10py12zassert %(py16)spy16im  statpy9py11py14z etc/overdeck/subrouter-edge.jsonallowed_hostslisten_portiz  schemaz"overdeck-subrouter-tailnet-edge/v1upstream_hostz	127.0.0.1upstream_portiz  dataassert %(py5)si  configz2etc/systemd/system/overdeck-subrouter-edge.servicezUser=overdeck-subrouterunitzProtectHome=yeszProtectSystem=strictz'RestrictAddressFamilies=AF_INET AF_UNIXz0.0.0.0in)z.%(py1)s in %(py5)s
{%(py5)s = %(py3)s.stdout
})==)z%(py11)s
{%(py11)s = %(py2)s
{%(py2)s = %(py0)s.S_IMODE
}(%(py9)s
{%(py9)s = %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.stat
}()
}.st_mode
})
} == %(py14)s)z%(py0)s == %(py3)sz%(py1)s in %(py3)snot inz%(py1)s not in %(py3)s)osenvironcopystr
subprocessrunINSTALLstdout
@pytest_ar_call_reprcompare	_saferepr@py_builtinslocals_should_repr_global_nameAssertionError_format_explanation
is_symlinkresolveis_fileappend_format_boolopr   S_IMODEst_modejsonloads	read_text)tmp_pathr	   r   @py_assert0@py_assert4@py_assert2@py_format6@py_format8runtimer   @py_assert1@py_assert3@py_format5releaser   @py_assert5@py_assert9@py_assert11@py_assert13@py_format7@py_format14@py_format15@py_format17@py_assert6@py_assert8@py_assert10@py_assert12r(   r&   @py_format4r)   s   &                              p/home/user/overdeck-private-tests/subrouter-s6-edge-restart/modules/subrouter/tests/test_tailnet_edge_install.py5test_installer_stages_immutable_edge_and_exact_configrd      s   
**//
C/28}C+,^^	W~y1sVZbfF /--/-//////////////&////&///-////////::G	!G77ooG&&D3<<3<>3>$//3/"33"33333333333433334333<333>3333>333333$3333$333/333"3333333333333333<<5		5	5++5<+,55,55555,555555455554555<5555555555555	555555+555,555555555555::F::f&&()D)u6 4     4      4   4            <<777--7<-.7%7.%77777.%777777477774777<7777777777777777777-777.777%777777777KKVVXD$,,,,,,$,,,$,,,,,,,,,,,,,,,,,,$$$$$$$$$$$$$$$$$$$$$$$$$$$!)T)))))!T)))!))))))T))))T))))))))4<<<<<<4<<<4<<<<<<<<<<<<<<<<<< D     9D   9      D    D            c           
        \         P                  P                  4       p\        V 4      VR &   . RR.3 EF  p\        P
                  ! \        \        4      .VOVRRR7      pVP                  p^ qTV8g  qf'       g   \        P                  ! RV3RWE34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      R\        P                  ! V4      /,          pR	R
V/,          p\        \        P                  ! V4      4      hR;p;reEK  	  R# )r   r   z
../debian1T)r	   r
   r   r   r   r   r   r   r   N)!=)z2%(py2)s
{%(py2)s = %(py0)s.returncode
} != %(py5)s)r1   r2   r3   r4   r5   r6   r7   
returncoder9   r:   r<   r=   r>   r;   r?   r@   )	rK   r	   argvr   rR   rM   rS   rO   rP   s	   &        rc   3test_installer_rejects_missing_or_unsafe_allow_hostrj   -   s    
**//
CHS!DEnl34W 5 53TZ^_  %A%A%%%%% %%%%%%v%%%%v%%% %%%A%%%%%%%% 5re   c                    \         P                  R R7      p RqV 9   q"'       g   \        P                  ! RV3RW34      R\        P                  ! V4      RR\
        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MR/,          pRRV/,          p\        \        P                  ! V4      4      hR;rR	qV 9   q"'       g   \        P                  ! RV3RW34      R\        P                  ! V4      RR\
        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MR/,          pRRV/,          p\        \        P                  ! V4      4      hR;rR
qV 9  q"'       g   \        P                  ! RV3RW34      R\        P                  ! V4      RR\
        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MR/,          pRRV/,          p\        \        P                  ! V4      4      hR;rR# )zutf-8)encodingz0systemctl enable overdeck-subrouter-edge.servicer   r   sourcer'   r   Nz1systemctl restart overdeck-subrouter-edge.servicez6systemctl enable --now overdeck-subrouter-edge.servicer*   r-   r.   r0   )
r7   rJ   r9   r:   r;   r<   r=   r>   r?   r@   )rm   rL   rN   rb   rO   s        rc   1test_installer_restarts_edge_after_config_rewritern   4   s5   0F=GGGGGG=GGG=GGGGGGGGGGGGGGGGGG>H&HHHHH>HHH>HHHHHH&HHHH&HHHHHHHHCQ6QQQQQCQQQCQQQQQQ6QQQQ6QQQQQQQQre   )
__future__r   builtinsr<   _pytest.assertion.rewrite	assertionrewriter9   rH   r1   r   r5   pathlibr   __file__rB   parentsMODULEr7   rd   rj   rn    re   rc   <module>ry      sX    "    	   	h			!	)	)!	,
5.1
1!@&Rre   