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: //usr/lib/python3/dist-packages/samba/tests/blackbox/__pycache__/downgradedatabase.cpython-310.pyc
o

�/a��@s�ddlmZddlZddlZddlZddlmZddlmZej	�
ej�d�d�Z
Gdd�de�ZGd	d
�d
e�ZGdd�de�ZdS)
�)�BlackboxTestCaseN)�check_output)�SamDB�
SRCDIR_ABSz(source4/scripting/bin/samba_downgrade_dbcs<eZdZdZ�fdd�Z�fdd�Zdd�Zdd	�Z�ZS)
�DowngradeTestBasez>Test that sambadowngradedatabase downgrades the samba databasecs�tt|���t|d�s|�d�d}|j|d�}|�|d�tj�	|j
d��tj�	�d�|_tj
|jdgd	�|_|jjd
tjdgd�}|d
d}dd�|D�}�fdd�|D�|_|j�|j�dS)N�backendz%Subclass this class and set 'backend'z�samba-tool domain provision --domain FOO --realm foo.example.com --targetdir {self.tempdir} --backend-store {self.backend} --host-name downgradetest --option="vfs objects=dfs_samba4 acl_xattr fake_acls xattr_tdb"��selfzProvisioning for downgrade�privatezsam.ldbzmodules:)�optionsz
@PARTITION�	partition��base�scope�attrsrcSsg|]}t|��d�d�qS)�:�)�str�split��.0�p�r�H/usr/lib/python3/dist-packages/samba/tests/blackbox/downgradedatabase.py�
<listcomp>6�z+DowngradeTestBase.setUp.<locals>.<listcomp>csg|]	}tj��|��qSr)�os�path�joinr��private_dirrrr7s�)�superr�setUp�hasattr�fail�format�	check_runrrr�tempdir�sam_path�ldb�Ldb�search�
SCOPE_BASE�dbs�append)r	�prov_cmd�
partitions��	__class__rrr" s&

�
�zDowngradeTestBase.setUpcs�t�tj�|jd��t�tj�|jd��t�tj�|jd��t�tj�|jd��t�tj�|jd��t�tj�|jd��t�tj�|jd��tt|��	�dS)Nr
�etc�statezbind-dnszmsg.lockz	names.tdbzgencache.tdb)
�shutil�rmtreerrrr'�unlinkr!r�tearDownrr1rrr8;szDowngradeTestBase.tearDowncs�g}|jD]}tdd|g�}|�d�}|�d�}|dd�|D�7}qd��fdd	�|D�}d
��fdd	�|D�}dd	�|D�}d
��fdd	�|D�}dd�|D�}|||fS)Nzbin/ldbdumpz-izutf-8�
cSsg|]	}|�d�r|�qS)�#��
startswith�r�srrrrP�z?DowngradeTestBase.ldbdump_keys_pack_formats.<locals>.<listcomp>z# key: GUID=c�&h|]}|���r|t��d��qS�N�r<�len�r�c)�guid_key_tagrr�	<setcomp>S��z>DowngradeTestBase.ldbdump_keys_pack_formats.<locals>.<setcomp>z
# key: DN=cr@rArBrD)�
dn_key_tagrrrGWrHcSsh|]	}|�d�s|�qS)�@r;)r�drrrrG[r?z# pack format: cr@rArBrD)�pack_format_tagrrrG^rHcSsg|]}t|d��qS)�)�intr=rrrr`s)r-r�decoder)r	�comments�db�dump�	guid_keys�dn_keys�dn_keys_no_at_attrs�pack_formatsr)rIrFrLr�ldbdump_keys_pack_formatsIs



z+DowngradeTestBase.ldbdump_keys_pack_formatscsH|jjdtjdgd��|�t��d��d��}�fdd�|D�}|S)Nz@ATTRIBUTES�*r
rrcsh|]}t�d�|���qS)r)r�get)r�k��
at_attributesrrrGkrz4DowngradeTestBase.attribute_types.<locals>.<setcomp>)r)r+r,�assertEqualrC�keys)r	r^�attribute_typesrr[rr_es�z!DowngradeTestBase.attribute_types)	�__name__�
__module__�__qualname__�__doc__r"r8rWr_�
__classcell__rrr1rrsrc@�eZdZdZdd�ZdS)�DowngradeTestTDB�tdbcCs�d}tjt|�d�}|��\}}}|�t|�d�|�t|�d�|�||��v�|�|tjg�t|�}|j	dt
|jfdd�|��\}}}|�t|�d�|�t|�|�|�||��v�|�|tjg�dS�N�LDB_SYNTAX_�rz%s -H %szRunning sambadowngradedatabase)�msg�
r)�SYNTAX_ORDERED_INTEGERrCrW�
assertGreaterr]�
assertTruer_�PACKING_FORMAT_V2r&�COMMANDr(�PACKING_FORMAT�r	�type_prefix�ordered_int_typerTrSrV�num_guid_keys_before_downgraderrr�test_downgrade_databasev� �z(DowngradeTestTDB.test_downgrade_databaseN)r`rarbrrwrrrrrfo�rfc@re)�DowngradeTestMDB�mdbcCs�d}tjt|�d�}|��\}}}|�t|�d�|�t|�d�|�||��v�|�|tjg�t|�}|j	dt
|jfdd�|��\}}}|�t|�|�|�t|�d�|�||��v�|�|tjg�dSrhrlrsrrr�test_undo_guid�rxzDowngradeTestMDB.test_undo_guidN)r`rarbrr|rrrrrz�ryrz)�samba.testsrrr)r5�
subprocessr�samba.samdbrrr�environrYrqrrfrzrrrr�<module>s�R