HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/samba/netcmd/__pycache__/dbcheck.cpython-310.pyc
o

�/ak�@shddlZddlZddlmZddlmZddlmZddl	m
Z
mZmZddl
mZGdd�de
�ZdS)�N)�system_session)�SamDB)�Command�CommandError�Option)�dbcheckc@s6eZdZdZdZejejejd�Z	dd�Z
dgZeddd	d
d�edd
dddd�edde
dd�edddddd�eddddddd�eddddd d!�ed"d#d$d%d�ed&d'ddd(d�ed)d*ddd+d�ed,d-ddd.d�ed/d0d1ddd2�ed3d4d5e
d6d7d8�ed9d:ddejd�g
Zd$d$dddddd	d$d$d$d$dddddgfd;d<�Zd$S)=�cmd_dbcheckz#Check local AD database for errors.z%prog [<DN>] [options])�	sambaopts�versionopts�credoptscCs�|dusJ�|j}|rH|d}|dd�dkrt|�dks1|dd�dkr:t|�dkr:|ddkr:t|jdd�dSt|jd|���|d=dSt|jdd�dS)	Nr�z--��-�yesT�	yes_rules)�rargs�len�setattr�values�split)�option�opt�value�parserr�arg�r�6/usr/lib/python3/dist-packages/samba/netcmd/dbcheck.py�process_yes*s(
zcmd_dbcheck.process_yeszDN?z--scope�scope�SUBz>Pass search scope that builds DN list. Options: SUB, ONE, BASE)�dest�default�helpz--fix�fixF�
store_truezFix 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_ncszcross naming context boundariesz-vz	--verbose�verbosezPrint more details of checking)r r%r!r"z-qz--quietzdon't print details of checking)r%r!r"z--attrs�attrsNz-list of attributes to check (space separated)z	--reindex�reindexzforce 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_aclszGreset ACLs on objects with well known default ACL values to the defaultz--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Cs|
��}|duo|�d�}|r|	j|dd�}nd}|r'tt�|||dgd�}nztt�|||d�}Wn	td|��|dusB|sE|}n	tt�d||d�}tjtjtj	d�}|�
�}||vretd	|��||}d
g}|rs|�d�|rz|�d�|s�d
g}n|��}d}|r�|r�|�
�d}zYt||||||||||d�
}|D]}t||�r�t||d�q�td|��|
r�|j�d�d}|��r�|j�d�n|r�|j�d�d}|��r�|j�d�n	|j||||d�}Wn
|r�|���|r�|��|dk�rt�d�dSdS)N�ldapT)�fallback_machinezmodules=samba_dsdb)�session_info�url�credentials�lp�options)r5r6r7r8ztFailed to connect to DB at %s.  If this is a really old sam.ldb (before alpha9), then try again with --force-modules)r�BASE�ONEzUnknown scope %szshow_deleted:1zpaged_results:1:1000zsearch_options:1:2�*F)	�samdb_schemar(r#r�quiet�in_transactionr-r,�check_expired_tombstones�ALLzInvalid fix rule %szRe-indexing...
rzcompleted re-index OK
zResetting @MODULES...
zcompleted @MODULES reset OK
)�DNr�controlsr)r
)�get_loadparm�
startswith�get_credentialsrrr�ldb�
SCOPE_SUBTREE�
SCOPE_BASE�SCOPE_ONELEVEL�upper�appendr�transaction_startr�hasattrr�outf�write�reindex_database�
reset_modules�check_database�transaction_cancel�transaction_commit�sys�exit)�selfrBr/r(r#rr'r>rrr	r
r)r*r+r-r,r2rr8�	over_ldap�creds�samdbr=�	scope_map�search_scoperC�started_transaction�chkr�error_countrrr�runWs�	�
��

�
����
�zcmd_dbcheck.run)�__name__�
__module__�__qualname__�__doc__�synopsisr9�SambaOptions�VersionOptions�CredentialsOptionsDouble�takes_optiongroupsr�
takes_argsr�str�
SUPPRESS_HELP�
takes_optionsrarrrrr sh��
��
��
�����
�r)rGrV�samba.getopt�getoptr9�
samba.authr�samba.samdbr�samba.netcmdrrr�samba.dbcheckerrrrrrr�<module>s