o
    jD                  	   @   sr  d dl Z d dlmZ dd Zdd Zdd Zd	d
 Zg dZeD ]Zede  e	ed  Z
e
d e e
ZW d   n1 sCw   Y  ed e	ed Z
e e
ZW d   n1 sbw   Y  dddiiZeed ZeedZed D ]9Zed ed D ]-Zed ed kreed eeD ]\ZZZeev reee v rqeded ef  qqq|q dS )    N)tqdmc                 C   sl   | D ]1}t |tstd| d q|D ]}|d |d kr(|d |d kr( nqtd|d  d qd S )NTYPE_MISSMATCH not a dictGUID
IsEnforcedMISSING_LINK
 not in l2
isinstancedictprintl1l2entryce r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/msldap/examples/jsontest.pycompare_links   s   
 r   c                 C   s   | D ]A}t |tstd| d q|D ]$}|d |d kr8|d |d kr8|d |d kr8|d |d kr8 nqtd|d  d qd S )	Nr   r   PrincipalSIDPrincipalType	RightNameIsInheritedMISSING_ACEr   r	   r   r   r   r   compare_aces   s   
@r   c                 C   st   |D ]5}t |tstd|  | d q|D ]}|d |d kr*|d |d kr* nqtd|  |d  d qd S )NzTYPE_MISSMATCH %sr   ObjectIdentifier
ObjectTypez
MISSING_%sr   r	   )ctyper   r   r   r   r   r   r   compare_objlist   s   
 r   c                 c   s   |D ]C}||vrd|| dfV  t || ttttfrH||vr-d|d| dfV  n|| || krHd|d| d||  d||  fV  t || tr||vr_d|d| dfV  nt || trt|| t|| krd|d| d| d	| d
fV  |dkrt|| ||  n|dkrt|| ||  nq|dv rt	||| ||  nbt
|| D ]H\}}|t|| krdd| d| dd| d| dfV  q|D ]$}||| | vrdd| d| d| dd| d| d| dfV  qqnd|| d||  d||  fV  t || trG||vr'd|d| dfV  qt || tr>td| |f || ||  qd|| dfV  qd S )NMISSING_PARAMz not in dict'z' not in dictNOT_EQz' value not equal in dict. D1: z D2: z#' length not equal in dict. D1: d1[z	] D2: d2[]LinksAces)ChildObjectsMembers[z]'z]' not in dictz][TYPE_MISMATCHz not a list in dict. D1: %s -> %sz not a dict in dict)r
   strintfloatboollistlenr   r   r   	enumerater   compare_dict)labeld1d2kiitemk2r   r   r   r1   (   sN   
& *4$
r1   ))z4/home/webdev/Desktop/comparer/good/good_domains.jsonz1/home/webdev/Desktop/projects/msldap/domains.json)z3/home/webdev/Desktop/comparer/good/good_groups.jsonz0/home/webdev/Desktop/projects/msldap/groups.json)z6/home/webdev/Desktop/comparer/good/good_computers.jsonz3/home/webdev/Desktop/projects/msldap/computers.json)z7/home/webdev/Desktop/comparer/good/good_containers.jsonz4/home/webdev/Desktop/projects/msldap/containers.json)z1/home/webdev/Desktop/comparer/good/good_gpos.jsonz./home/webdev/Desktop/projects/msldap/gpos.json)z0/home/webdev/Desktop/comparer/good/good_ous.jsonz-/home/webdev/Desktop/projects/msldap/ous.jsonzComparing %s to %s   zLoading test file...   r!   whencreateddata)totalr   r)   )jsonr   r   r   r   r1   filelist	filetupler   openfseekloadjson2json1bypass_diffr/   r=   pbarguserupdateuser	diff_type
param_namedescr   r   r   r   <module>   sH    1



