ó
    cÛ–i-  ã                   ó‚   • S SK r S SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  SSKJrJrJr   " S S	\5      rg)
é    N)Úcolour)Úsystem_session)Údbcheck)ÚSamDBé   )ÚCommandÚCommandErrorÚOptionc                   óŠ  • \ rS rSrSrSr\R                  \R                  \R                  S.r
S rS/r\" SSS	S
S9\" SSSSSS9\" SS\SS9\" SSSSSS9\" SSSSSSS9\" SSSSS S!9\" S"S#S$S%S9\" S&S'SSS(S9\" S)S*SSS+S9\" S,S-SSS.S9\" S/S0S1SSS29\" S3S4S5\S6S7S89\" S9S:SS\R                   S9/r        S=S; jrS<rg$)>Úcmd_dbchecké    z#Check local AD database for errors.z%prog [<DN>] [options])Ú	sambaoptsÚversionoptsÚcredoptsc                 ó`  • Ub   eUR                   nU(       a  US   nUS S S:X  a  [        U5      S:”  d!  US S S:X  a0  [        U5      S:”  a!  US   S:w  a  [        UR                  SS5        g [        UR                  SUR	                  5       5        US	 g [        UR                  SS5        g )	Nr   é   z--r   Ú-ÚyesTÚ	yes_rules)ÚrargsÚlenÚsetattrÚvaluesÚsplit)ÚoptionÚoptÚvalueÚparserr   Úargs         Ú6/usr/lib/python3/dist-packages/samba/netcmd/dbcheck.pyÚprocess_yesÚcmd_dbcheck.process_yes*   s–   € Ø‰}Ðˆ}Ø—‘ˆÞØ˜‘(ˆCØ�R�a�˜D“¤S¨£X°£\Ø�R�a�˜C“¤C¨£H¨q£L°S¸±V¸s³]Ü˜Ÿ™ u¨dÕ3ä˜Ÿ™ {°C·I±I³KÔ@Ø˜!‘Hä�F—M‘M 5¨$Õ/ó    zDN?z--scopeÚscopeÚSUBz>Pass search scope that builds DN list. Options: SUB, ONE, BASE)ÚdestÚdefaultÚhelpz--fixÚfixFÚ
store_truezFix any errors found)r&   r'   Úactionr(   z--yesÚcallbackzrdon't confirm changes individually. Applies all as a single transaction (will not succeed if any errors are found))r+   r,   r(   z--cross-ncsÚ	cross_ncszcross naming context boundariesz-vz	--verboseÚverbosezPrint more details of checking)r&   r+   r'   r(   z-qz--quietzdon't print details of checking)r+   r'   r(   z--attrsÚattrsNz-list of attributes to check (space separated)z	--reindexÚreindexzforce database re-indexz--force-modulesÚforce_moduleszVforce loading of Samba modules and ignore the @MODULES record (for very old databases)z--reset-well-known-aclsÚreset_well_known_aclszTreset ACLs on objects with well known default values (for updating from early 4.0.x)z--quick-membership-checksÚquick_membership_checkszrSkips missing/orphaned memberOf backlinks checks, but speeds up dbcheck dramatically for domains with large groups)r&   r(   r'   r+   z-Hz--URLzFLDB URL for database or target server (defaults to local SAM database)ÚURLÚH)r(   ÚtypeÚmetavarr&   z#--selftest-check-expired-tombstonesÚ!selftest_check_expired_tombstonesc                 ó   • Uc  / nU
R                  5       nUS L=(       a    UR                  S5      nU(       a  U	R                  USS9nOS nU(       a  [        [	        5       UUUS/S9nO [        [	        5       UUUS9nUb  U(       d  UnO[        [	        5       S UUS9n[        R                  [        R                  [        R                  S.nUR                  5       nUU;  a  [        S	U-  5      eUU   nS
/nU(       a  UR                  S5        U(       a  UR                  S5        U(       d  S/nOUR                  5       n[        R                  " [        R                   U R"                  S9nSnU(       a  U(       a  UR%                  5         Sn ['        UUUXEUUUUUUS9nU H/  n[)        UU5      (       a  [+        UUS5        M#  [        SU-  5      e   U(       aN  U R,                  R/                  S5        SnUR1                  5       (       a  U R,                  R/                  S5        OhU(       aN  U R,                  R/                  S5        SnUR3                  5       (       a  U R,                  R/                  S5        OUR5                  UUUUS9n U(       a  UR9                  5         US:w  a  [        R:                  " S5        g g !   [        SU-  5      e= f!   U(       a  UR7                  5         e = f)NÚldapT)Úfallback_machinezmodules=samba_dsdb)Úsession_infoÚurlÚcredentialsÚlpÚoptions)r<   r=   r>   r?   ztFailed to connect to DB at %s.  If this is a really old sam.ldb (before alpha9), then try again with --force-modules)r%   ÚBASEÚONEzUnknown scope %szshow_deleted:1zpaged_results:1:1000zsearch_options:1:2Ú*)ÚhintF)
Úsamdb_schemar.   r)   r   ÚquietÚin_transactionr3   r2   Úcheck_expired_tombstonesr   ÚALLzInvalid fix rule %szRe-indexing...
r   zcompleted re-index OK
zResetting @MODULES...
zcompleted @MODULES reset OK
)ÚDNr$   Úcontrolsr/   r   )Úget_loadparmÚ
startswithÚget_credentialsr   r   r	   ÚldbÚSCOPE_SUBTREEÚ
SCOPE_BASEÚSCOPE_ONELEVELÚupperÚappendr   r   Úcolour_if_wantedÚsysÚstdoutÚrequested_colourÚtransaction_startr   Úhasattrr   ÚoutfÚwriteÚreindex_databaseÚreset_modulesÚcheck_databaseÚtransaction_cancelÚtransaction_commitÚexit) ÚselfrJ   r5   r.   r)   r   r-   rF   r$   r   r   r   r/   r0   r1   r3   r2   r8   r   r?   Ú	over_ldapÚcredsÚsamdbrE   Ú	scope_mapÚsearch_scoperK   Ústdout_colourÚstarted_transactionÚchkr   Úerror_counts                                    r    ÚrunÚcmd_dbcheck.run[   sÞ  € ð ÑØˆIà×#Ñ#Ó%ˆà˜T�M×: a§l¡l°6Ó&:ˆ	æØ×,Ñ,¨RÀ$Ð,ÐG‰EàˆEæÜ¤~Ó'7¸QØ&+°Ð=QÐ<RñT‰Eð_Ü¬>Ó+;ÀØ*/°Bñ8�ð
 ‰9žIØ ‰Lä ¬nÓ.>ÀDØ-2°rñ;ˆLô  ×-Ñ-´s·~±~Ìc×N`ÑN`Ñaˆ	Ø—‘“ˆØ˜	Ó!ÜÐ1°EÑ9Ó:Ð:Ø  Ñ'ˆà$Ð%ˆÞØ�O‰OÐ2Ô3ÞØ�O‰OÐ0Ô1æØ�E‰Eà—K‘K“MˆEô ×/Ò/´·
±
Ø59×5JÑ5JñLˆð $ÐÞ–3Ø×#Ñ#Ô%Ø"&Ðð!	Ü˜%¨lÀGØ!°%Ø)<Ø2IØ0EØ3TØ!.ñ0ˆCó $�Ü˜3 ×'Ñ'Ü˜C ¨Ö/ä&Ð'<¸vÑ'EÓFÐFñ	 $ö Ø—	‘	—‘Ð 2Ô3Ø�Ø×'Ñ'×)Ñ)Ø—I‘I—O‘OÐ$=Ô>øæØ—	‘	—‘Ð 9Ô:Ø�Ø×$Ñ$×&Ñ&Ø—I‘I—O‘OÐ$CÔDøð "×0Ñ0°B¸lØ:BÈ%ð 1ð Q‘ö Ø×$Ñ$Ô&à˜!ÓÜ�HŠH�Q�Kð øðS_Ü"ð  $Zð  ]^ñ  $^ó  _ð  _ûð@	Þ"Ø×(Ñ(Ô*Øús&   Á+K ÆBK# È3AK# ÊK# ËK Ë#K=© )NNFFFFFr%   NNNNFFFFFN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úsynopsisr@   ÚSambaOptionsÚVersionOptionsÚCredentialsOptionsDoubleÚtakes_optiongroupsr!   Ú
takes_argsr
   ÚstrÚoptparseÚSUPPRESS_HELPÚtakes_optionsrm   Ú__static_attributes__ro   r#   r    r   r       s~  † Ù-Ø'€Hð ×)Ñ)Ø×-Ñ-Ø×4Ñ4ñÐò0ð �€Jñ 	ˆy˜w°ØTñ	Váˆw˜U¨E¸,Ø*ñ	,áˆw˜z°Kð Iñ	Jáˆ} ;¸ÀlØ5ñ	7áˆt�[ y¸ÈuØ4ñ	6áˆt�Y |¸UØ5ñ	7áˆy˜w°Ð;jÑkÙˆ{ °EÀ,ÐUnÑoÙÐ  ÀÈlð  bzñ  	{ÙÐ(Ø+Ø \ð8ñ	:ñ
 	Ð*Ð1Jð$ð  \ñ		3ñ
 	ˆt�WÐ#kØ ¨Sñ	2áÐ4Ø7ÀÈ|Ø×*Ñ*ñ	,ð9€MðB BGØ#(ØDHØ5:Ø$)Ø"'Ø.3Ø÷fr#   r   )r|   rV   rO   Úsamba.getoptÚgetoptr@   Úsambar   Ú
samba.authr   Úsamba.dbcheckerr   Úsamba.samdbr   Ú r   r	   r
   r   ro   r#   r    Ú<module>r‡      s3   ðó& Û 
ã 
Ý Ý Ý %Ý #Ý ç +Ñ +ôa�'õ ar#   