
    Id                     \    d dl Z d dlmZmZ d dlmZ d dlmZmZ d dl	m
Z
  G d dee      Zy)    N)
gp_xml_extgp_file_applier)NamedTemporaryFile)PopenPIPE)logc                       e Zd Zd Zd Zd Zy)vgp_symlink_extc                      y)Nz VGP/Unix Settings/Symbolic Links )selfs    :/usr/lib/python3/dist-packages/samba/gp/vgp_symlink_ext.py__str__zvgp_symlink_ext.__str__   s    1    c           
         |D ]J  \  }}t        |       |v s|t        |          j                         D ]  \  }}| j                  |||        L |D ]  }|j                  sd}t        j
                  j                  |j                  |      }	| j                  |	      }
|
sP|
j                  d      }|j                  d      }|j                  d      D ]n  }|j                  d      j                  }|j                  d      j                  }|}| j                  |      }d }| j                  |j                  |||||       p  y )N*MACHINE/VGP/VTLA/Unix/Symlink/manifest.xmlpolicysettingdatafile_propertiessourcetargetc                     t         j                  j                  |      st        j                  | |       |gS t	        j
                  d|       g S )NzSymlink destination exists)ospathexistssymlinkr   warn)r   r   s     r   applier_funcz:vgp_symlink_ext.process_group_policy.<locals>.applier_func4   s;    !ww~~f5JJvv6$*8OHH%A6J!	r   )stritemsunapplyfile_sys_pathr   r   joinparsefindfindalltextgenerate_value_hashapplyname)r   deleted_gpo_listchanged_gpo_listguidsettings	attributer   gpoxmlr   xml_confpolicyr   entryr   r   
value_hashr   s                     r   process_group_policyz$vgp_symlink_ext.process_group_policy   s>   . 	;ND(4yH$*23t9*=*C*C*E ;&IwLLy':;	;
 $ 	/C  Bww||C$5$5s;::d+!7{{6*!\\*;< /E"ZZ166F"ZZ166F !'I "&!9!9&!AJ" JJsxxJ%v/#/	/r   c                    i }d}|j                   rt        j                  j                  |j                   |      }| j	                  |      }|s|S |j                  d      }|j                  d      }|j                  d      D ]  }|j                  d      j                  }	|j                  d      j                  }
t        |       |j                         vrg |t        |       <   |t        |          j                  d|	d|
        |S )	Nr   r   r   r   r   r   zln -s  )r"   r   r   r#   r$   r%   r&   r'   r   keysappend)r   r0   outputr1   r   r2   r3   r   r4   r   r   s              r   rsopzvgp_symlink_ext.rsop>   s    :77<< 1 137Dzz$'H]]?3F;;v&D&78 KH-22H-22t9FKKM1(*F3t9%s4y!((&&)IJK r   N)__name__
__module____qualname__r   r6   r<   r   r   r   r
   r
      s    2!/Fr   r
   )r   samba.gp.gpclassr   r   tempfiler   
subprocessr   r   samba.gp.util.loggingr   r
   r   r   r   <module>rD      s$   " 
 8 ' " %7j/ 7r   