
    b                     v    d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ  G d de          ZdS )	    N)SamDB)delete_force)SambaToolCmdTest)Credentials)system_sessionc                   ^     e Zd Z fdZ fdZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Z xZS )RodcCmdTestCasec                 T   t          t          |                                            t          j                                        | _        | j                            t          j	        d                    t                      | _        | j                            t          j	        d                    | j                            t          j	        d                    | j                            | j                   t                      | _        t#          dt          j	        d         z   | j        | j        | j                  | _        | j                                        | _        | j                            dd           | j                            d	d
           | j                            dd           | j                            dd           | j                            dd           | j                            dd           | j                            dg dd           d S )NSMB_CONF_PATHDC_USERNAMEDC_PASSWORDzldap://	DC_SERVER)session_infocredentialslp
sambatool1z1qazXSW@
sambatool2z2wsxCDE#
sambatool3z3edcVFR$
sambatool4z4rfvBGT%
sambatool5z5tjbNHY*
sambatool6z6yknMJU*z'Allowed RODC Password Replication Group)r   r   r   r   r   T)add_members_operation)superr	   setUpsambaparamLoadParmr   loadosenvironr   credsset_usernameset_passwordguessr   sessionr   ldb	domain_dnbase_dnnewuseradd_remove_group_members)self	__class__s    =/usr/lib/python3/dist-packages/samba/tests/samba_tool/rodc.pyr   zRodcCmdTestCase.setUp   s   ot$$**,,,+&&((RZ0111 ]]


= 9:::

= 9:::
!!!%''RZ%<<&*l
twX X X x))++z222z222z222z222z222z222))*S+G +G +G@D 	* 	F 	F 	F 	F 	F    c                    t          t          |                                            | j                            d           | j                            d           | j                            d           | j                            d           | j                            d           | j                            d           |                     ddd	d
t          j        d         | j                  \  }}}d S )Nr   r   r   r   r   r   drs	replicatez--localunusedr   )	r   r	   tearDownr&   
deleteuser	runsubcmdr   r    r(   )r+   resultouterrr,   s       r-   r3   zRodcCmdTestCase.tearDown7   s    ot$$--///L)))L)))L)))L)))L)))L)))!^^E;	8,.J{,CT\S Scccr.   c                     |                      ddddt          j        d                   \  }}}|                     |||d           |                     |d| j        z             |                     |d           d S )	Nrodcpreloadr   --serverr   'ensuring rodc prefetch ran successfullyz)Replicating DN CN=sambatool1,CN=Users,%s
 r5   r   r    assertCmdSuccessassertEqualr(   r+   r6   r7   r8   s       r-   test_single_by_account_namez+RodcCmdTestCase.test_single_by_account_nameB   s    !^^FI|,6
;8OQ Qcfc30YZZZJT\YZZZb!!!!!r.   c                     |                      ddd| j        z  dt          j        d                   \  }}}|                     |||d           |                     |d| j        z             d S )Nr:   r;   zcn=sambatool2,cn=users,%sr<   r   r=   z)Replicating DN CN=sambatool2,CN=Users,%s
r5   r(   r   r    r@   rA   rB   s       r-   test_single_by_dnz!RodcCmdTestCase.test_single_by_dnI   sy    !^^FI?Z]a]i?i,6
;8OQ Qcfc30YZZZJT\YZZZZZr.   c           	          |                      dddddt          j        d                   \  }}}|                     |||d           |                     |d| j        d	| j        d
           d S )Nr:   r;   r   r   r<   r   r=   &Replicating DN CN=sambatool1,CN=Users,'
Replicating DN CN=sambatool2,CN=Users,
r?   rB   s       r-   test_multi_by_account_namez*RodcCmdTestCase.test_multi_by_account_nameO   s    !^^FI|\,6
;8OQ Qcfc30YZZZx|  yE  yE  yE  GK  GS  GS  GS  T  	U  	U  	U  	U  	Ur.   c           	          |                      ddd| j        z  d| j        z  dt          j        d                   \  }}}|                     |||d           |                     |d| j        d	| j        d
           d S )Nr:   r;   zcn=sambatool3,cn=users,%szcn=sambatool4,cn=users,%sr<   r   r=   z&Replicating DN CN=sambatool3,CN=Users,z'
Replicating DN CN=sambatool4,CN=Users,rJ   rE   rB   s       r-   test_multi_by_dnz RodcCmdTestCase.test_multi_by_dnU   s    !^^FI?Z]a]i?i  lG  JN  JV  lV,6
;8OQ Qcfc30YZZZx|  yE  yE  yE  GK  GS  GS  GS  T  	U  	U  	U  	U  	Ur.   c           	         t           j                            | j        d          }t	          |d                              d           |                     ddd|dt           j        d                   \  }}}|                     |||d	           | 	                    |d
| j
        d| j
        d           t          j        |           d S )Naccountlistwzsambatool1
sambatool2r:   r;   z--filer<   r   r=   rH   rI   rJ   )r   pathjointempdiropenwriter5   r    r@   rA   r(   unlink)r+   tempfr6   r7   r8   s        r-   test_multi_in_filez"RodcCmdTestCase.test_multi_in_file[   s    T\=99UC7888!^^FIx,6
;8OQ Qcfc30YZZZx|  yE  yE  yE  GK  GS  GS  GS  T  	U  	U  	U
	%r.   c           
          |                      ddddddt          j        d         d          \  }}}|                     |||d	           |                     |                    d
| j        z                       d S )Nr:   r;   nonexistentuser1r   nonexistentuser2r<   r   --ignore-errorsr=   z)Replicating DN CN=sambatool5,CN=Users,%s
r5   r   r    r@   
assertTrue
startswithr(   rB   s       r-   $test_multi_with_missing_name_successz4RodcCmdTestCase.test_multi_with_missing_name_successd   s    !^^FI,>,>,6
;8O,=	? ?c
 	fc30YZZZ'S)-(6 7 7 	8 	8 	8 	8 	8r.   c           
          |                      ddddddt          j        d                   \  }}}|                     |d           d S )	Nr:   r;   rZ   r   r[   r<   r   z+ensuring rodc prefetch quit on missing userr5   r   r    assertCmdFailrB   s       r-   $test_multi_with_missing_name_failurez4RodcCmdTestCase.test_multi_with_missing_name_failuren   sU    !^^FI,>,>,6
;8OQ Qc 	6#PQQQQQr.   c           	         |                      dddddt          j        d         d          \  }}}|                     |||d           |                     |                    d	| j        d
| j        d                     d S )Nr:   r;   r   r   r<   r   r\   r=   z&Replicating DN CN=sambatool6,CN=Users,z'
Replicating DN CN=sambatool5,CN=Users,rJ   r]   rB   s       r-    test_multi_without_group_successz0RodcCmdTestCase.test_multi_without_group_successu   s    !^^FI,8,,6
;8O,=? ?c 	fc30YZZZ*.,,,(F G G 	H 	H 	H 	H 	Hr.   c           	          |                      dddddt          j        d                   \  }}}|                     |d           d S )Nr:   r;   r   r   r<   r   z2ensuring rodc prefetch quit on non-replicated userrb   rB   s       r-    test_multi_without_group_failurez0RodcCmdTestCase.test_multi_without_group_failure   sR    !^^FI,8,,6
;8OQ Qc 	6#WXXXXXr.   )__name__
__module____qualname__r   r3   rC   rF   rK   rM   rX   r`   rd   rf   rh   __classcell__)r,   s   @r-   r	   r	      s        F F F F F4	S 	S 	S 	S 	S" " "[ [ [U U UU U U  8 8 8R R RH H HY Y Y Y Y Y Yr.   r	   )r   r&   r   samba.samdbr   samba.testsr   samba.tests.samba_tool.baser   samba.credentialsr   
samba.authr   r	    r.   r-   <module>rs      s   $ 
			 



        $ $ $ $ $ $ 8 8 8 8 8 8 ) ) ) ) ) ) % % % % % %gY gY gY gY gY& gY gY gY gY gYr.   