
    g-                         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RaDSX\RaCCHqLSVs]ud3{CIIK@!HFMM5$/    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##%TM:all6&:	,,R$,GEE~'7Q&+=Q<RTE_>+;*/B8
 9I L n.>D-2r;L  --s~~cN`N`a		!1E9:: '$%OO23OO01EEKKME //

595J5JL $3##%"&!	%lG!%)<2I0E3T!.0C $3''C/&'<v'EFF	 $ 		 23''))IIOO$=>		 9:$$&&IIOO$CD "00Bl:B% 1 Q $$&!HHQK 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 	ywT	VwUE,*	,wzK I	J};l5	7t[yu4	6tY|U5	7yw;jk{E,Uno l  bz  	{(+\8	:
 	*1J$ \		3
 	tW#kS	247|**	,9MB BG#(DH5:$)"'.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#   