ó
    cÛ–iï  ã                   óÚ   • S SK JrJrJrJr  S SKJr  S SKJ	r	  S SK
Jr  S SKrS SKJrJr  S SKJr  S SKr " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      rg)é    )ÚCommandÚCommandErrorÚOptionÚSuperCommandN)ÚSamDB)Úsystem_session)ÚmiscÚdrsuapi)Údrs_Replicatec                   ó    • \ rS rSrS rS rSrg)ÚRODCExceptioné   c                 ó   • Xl         g )N©Úvalue)Úselfr   s     Ú3/usr/lib/python3/dist-packages/samba/netcmd/rodc.pyÚ__init__ÚRODCException.__init__   s   € Ø�
ó    c                 óP   • U R                   R                  < SU R                  < 3$ )Nz: )Ú	__class__Ú__name__r   )r   s    r   Ú__str__ÚRODCException.__str__!   s   € ØŸ>™>×2Ô2°D·J³JÐ?Ð?r   r   N)r   Ú
__module__Ú__qualname__Ú__firstlineno__r   r   Ú__static_attributes__© r   r   r   r      s   † òõ@r   r   c                   ó   • \ rS rSrSrg)ÚNamingErroré%   r    N©r   r   r   r   r   r    r   r   r"   r"   %   ó   † Úr   r"   c                   ó   • \ rS rSrSrg)ÚReplicationErroré)   r    Nr$   r    r   r   r'   r'   )   r%   r   r'   c                   ó¤   • \ rS rSrSrSr\R                  \R                  \R                  S.r
\" SS\S9\" SS	\S9\" S
SSS9/rS/rS rS rSrg)Úcmd_rodc_preloadé-   zBPreload accounts for an RODC.  Multiple accounts may be requested.z/%prog (<SID>|<DN>|<accountname>)+ ... [options])Ú	sambaoptsÚversionoptsÚcredoptsz--serverz	DC to use)ÚhelpÚtypez--filez<Read account list from a file, or - for stdin (one per line)z--ignore-errorsz<When preloading multiple accounts, skip any failing accountsÚ
store_true)r/   Úactionzaccount*c                 ó�  • USS S:X  a$  UR                  SU-  S[        R                  / S9nOlUR                  S5      S:¼  a!  UR                  US[        R                  / S9nO6UR                  S[        R                  " U5      -  [        R
                  / S	9n[        U5      S
:w  a  [        SU-  5      e[        US   S   5      $ )zwork out what DN they meantr   é   zS-z<SID=%s>zobjectclass=user)ÚbaseÚ
expressionÚscopeÚattrsÚ=z((&(samAccountName=%s)(objectclass=user)))r6   r7   r8   é   zFailed to find account '%s'Údn)	ÚsearchÚldbÚ
SCOPE_BASEÚfindÚbinary_encodeÚSCOPE_SUBTREEÚlenr"   Ústr)r   ÚsamdbÚaccountÚress       r   Úget_dnÚcmd_rodc_preload.get_dn@   sÑ   € ð �1�Qˆ<˜4ÓØ—,‘, J°Ñ$8Ø*<Ü%(§^¡^¸2ð ð ?‰Cð �\‰\˜#Ó !Ó#Ø—,‘, GØ*<Ü%(§^¡^¸2ð ð ?‰Cð —,‘,Ð*TÔWZ×WhÒWhÐipÓWqÑ*qÜ%(×%6Ñ%6¸bð ð BˆCäˆs‹8�q‹=ÜÐ;¸gÑEÓFÐFÜ�3�q‘6˜$‘<Ó Ð r   c           	      ód  • UR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nUc  [        S5      eUbq  / nUS:X  a7  [        R                   H"  nUR	                  UR                  5       5        M$     O2[        US5       H"  nUR	                  UR                  5       5        M$     UR                  5       n	UR                  U	S	S
9n
[        SU-  [        5       X©S9n[        S [        5       X©S9n[        R                  " UR                  5       5      nSnU	R                  5       S:¼  a  US-  n[        SU< SU< S3XšXÍ5      n/ nU HÕ  nUR!                  5       nUR#                  U[$        R&                  S/S9n[        R                  " UR)                  SUS   S   S   5      5      n U R+                  UU5      nU R2                  R5                  SU-  5        UR7                  5          UR9                  UUU[:        R<                  S	S9  URC                  5         M×     [E        U5      S:”  a/  U RG                  S5        U H  nU RG                  SU-  5        M     g g ! [,         a8  nU(       d  [/        [1        U5      5      eUR	                  U5         S nAGMU  S nAff = f! [         aN  nUR?                  5         U(       d  [/        SU-  5      eUR	                  [A        SU-  5      5         S nAGM°  S nAff = f)Nr,   r.   ÚserverÚfileÚignore_errorszYou must supply a serverÚ-ÚrT)Úfallback_machinez	ldap://%s)ÚurlÚsession_infoÚcredentialsÚlpÚsealé	   z,printzncacn_ip_tcp:Ú[Ú]ÚinvocationId)r5   r7   r8   Ú
objectGUIDr   zReplicating DN %s
)ÚexopÚrodczError replicating DN %sz'
Preload encountered problematic users:z    %s)$ÚgetÚ	ExceptionÚsysÚstdinÚappendÚstripÚopenÚget_loadparmÚget_credentialsr   r   r	   ÚGUIDÚget_ntds_GUIDÚ	log_levelr   Úget_dsServiceNamer<   r=   r>   Úschema_format_valuerG   r   r   rC   ÚoutfÚwriteÚtransaction_startÚ	replicater
   ÚDRSUAPI_EXOP_REPL_SECRETÚtransaction_cancelr'   Útransaction_commitrB   Úmessage)r   ÚaccountsÚkwargsr,   r.   rJ   Úaccounts_filerL   ÚlinerS   ÚcredsrD   Úlocal_samdbÚdestination_dsa_guidÚbinding_optionsÚreplÚerrorsrE   Ú
dc_ntds_dnrF   Úsource_dsa_invocation_idr;   ÚeÚerrors                           r   ÚrunÚcmd_rodc_preload.runS   së  € Ø—J‘J˜{Ó+ˆ	Ø—:‘:˜jÓ)ˆØ—‘˜HÓ%ˆØŸ
™
 6Ó*ˆØŸ
™
 ?Ó3ˆà‰>ÜÐ6Ó7Ð7àÑ$ØˆHØ Ó#ÜŸIœI�DØ—O‘O D§J¡J£LÖ1ò &ô ! °Ö4�DØ—O‘O D§J¡J£LÖ1ñ 5ð ×#Ñ#Ó%ˆà×(Ñ(¨¸dÐ(ÐCˆô ˜+¨Ñ.Ü#1Ó#3Ø"'ñ0ˆô  ´>Ó3CØ(-ñ6ˆô  $Ÿyšy¨×)BÑ)BÓ)DÓEÐà ˆØ�<‰<‹>˜QÓØ˜xÑ'ˆOÝ³f»oÐNØØ(ó@ˆð ˆÛˆGà×0Ñ0Ó2ˆJØ—,‘, J´c·n±nÈ^ÐL\�,Ð]ˆCÜ'+§y¢y°×1PÑ1PÐQ]Ð_bÐcdÑ_eÐftÑ_uÐvwÑ_xÓ1yÓ'zÐ$ðØ—[‘[ ¨Ó0�ð �I‰I�O‰OÐ1°BÑ6Ô7à×)Ñ)Ô+ðØ—‘˜rÐ#;Ð=QÜ$+×$DÑ$DÈ4ð ñ Qð ×*Ñ*Ö,ñ7  ô: ˆv‹;˜‹?Ø�L‰LÐCÔDÛ�Ø—‘˜X¨Ñ-Ö.ò  ð øô+ !ó Þ$Ü&¤s¨1£vÓ.Ð.Ø—‘˜aÔ Þûð	ûô ó Ø×.Ñ.Ô0Þ$Ü&Ð'@À2Ñ'EÓFÐFØ—‘Ô.Ð/HÈ2Ñ/MÓNÔOÞûðús1   ÇJÈ!KÊ
KÊ,KËKË
L/Ë!AL*Ì*L/r    N)r   r   r   r   Ú__doc__ÚsynopsisÚoptionsÚSambaOptionsÚVersionOptionsÚCredentialsOptionsÚtakes_optiongroupsr   rC   Útakes_optionsÚ
takes_argsrG   r€   r   r    r   r   r*   r*   -   su   † ÙLà@€Hð ×)Ñ)Ø×-Ñ-Ø×.Ñ.ñÐñ 	ˆz °#Ñ6ÙˆxÐ\ÐcfÑgÙÐ Ð'eÐnzÑ{ð€Mð �€Jò!õ&I/r   r*   c                   ó0   • \ rS rSrSr0 r\" 5       \S'   Srg)Úcmd_rodcéŸ   z.Read-Only Domain Controller (RODC) management.Úpreloadr    N)r   r   r   r   r‚   Úsubcommandsr*   r   r    r   r   rŒ   rŒ   Ÿ   s   † Ù8à€KÙ-Ó/€K�	Ôr   rŒ   )Úsamba.netcmdr   r   r   r   Úsamba.getoptÚgetoptr„   Úsamba.samdbr   Ú
samba.authr   r=   Úsamba.dcerpcr	   r
   Úsamba.drs_utilsr   r^   r]   r   r"   r'   r*   rŒ   r    r   r   Ú<module>r—      sd   ð÷& EÓ DÝ Ý Ý %Û 
ß &Ý )Û 
ô@�Iô @ô	�-ô 	ô	�}ô 	ôo/�wô o/ôd0ˆ|õ 0r   