+
    4Ssi  ã                   ó†   € R t ^ RIt^ RIHtHt  ! R R]4      t ! R R]4      t ! R R]4      t ! R	 R
]4      tR t	R t
R# )zManipulating sites.N)ÚFLAG_MOD_ADDÚLdbErrorc                   ó0   a € ] tR t^t o RtR tR tRtV tR# )ÚSiteExceptionzBase element for Sites errorsc                ó   € Wn         R # )N©Úvalue)Úselfr   s   &&Ú-/usr/lib/python3/dist-packages/samba/sites.pyÚ__init__ÚSiteException.__init__   s   € ØŽ
ó    c                óP   € V P                   P                  : R V P                  : 2# )z: )Ú	__class__Ú__name__r   )r	   s   &r
   Ú__str__ÚSiteException.__str__   s   € ØŸ>™>×2Ô2°D·J³JÐ?Ð?r   r   N)	r   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r
   r   r      s   ø‡ € Ù'ò÷@ð @r   r   c                   ó   € ] tR t^"tRtRtR# )ÚSiteNotFoundExceptionz>Raised when the site is not found and it's expected to exists.© N©r   r   r   r   r   r   r   r   r
   r   r   "   s   † ÝHr   r   c                   ó   € ] tR t^&tRtRtR# )ÚSiteAlreadyExistsExceptionzBRaised when the site is not found and it's expected not to exists.r   Nr   r   r   r
   r   r   &   s   † ÝLr   r   c                   ó   € ] tR t^*tRtRtR# )ÚSiteServerNotEmptyExceptionz0Raised when the site still has servers attached.r   Nr   r   r   r
   r!   r!   *   s   † Ý:r   r!   c           	     ól  € V P                  V\        P                  RV,          R7      p\        V4      ^ 8w  d   \	        RV,          4      h\        P
                  ! 4       p\        P                  ! V RV: R\        V4      : 24      Vn        \        P                  ! R\        R4      VR&   V P                  V4       \        P
                  ! 4       p\        P                  ! V R\        VP                  4      ,          4      Vn        \        P                  ! R	\        R4      VR&   V P                  V4       \        P
                  ! 4       p\        P                  ! V R
\        VP                  4      ,          4      Vn        \        P                  ! R\        R4      VR&   V P                  V4       R# )zó
Create a site

:param samdb: A samdb connection
:param configDn: The DN of the configuration partition
:param siteName: Name of the site to create
:return: True upon success
:raise SiteAlreadyExists: if the site to be created already exists.
z(&(objectclass=Site)(cn=%s))©ÚbaseÚscopeÚ
expressionz&A site with the name %s already existszCn=z
,CN=Sites,ÚsiteÚobjectclasszCn=NTDS Site Settings,%sÚnTDSSiteSettingszCn=Servers,%sÚserversContainerT)ÚsearchÚldbÚSCOPE_SUBTREEÚlenr   ÚMessageÚDnÚstrÚdnÚMessageElementr   Úadd)ÚsamdbÚconfigDnÚsiteNameÚretÚmÚm2Úm3s   &&&    r
   Úcreate_siter<   .   s3  € ð �,‰,˜H¬C×,=Ñ,=Ø"@À8Õ"Kð ó M€Cä
ˆ3ƒx�1„}Ü(Ð)QÐT\Õ)\Ó]Ð]ä�Š‹€AÜ�6Š6‘%³¼#¸h½-ÐHÓI€A„DÜ×)Ò)¨&´,ÀÓN€A€mÑà	‡I�Iˆa„Lä	�Š‹€BÜ�FŠF�5Ð4´s¸1¿4¹4³yÕ@ÓA€B„EÜ×*Ò*Ð+=¼|È]Ó[€B€}Ñà	‡I�Iˆb„Mä	�Š‹€BÜ�FŠF�5˜/¬C°·±«IÕ5Ó6€B„EÜ×*Ò*Ð+=¼|È]Ó[€B€}Ñà	‡I�Iˆb„Már   c                óV  € \         P                  ! V R4      p VP                  V4        TP                  R4       TP                  ^ RT4       \         P                  ! T R4      pTP                  T4        T P                  T\         P                  RR7      p\        T4      ^8w  d   \        R	T,          4      h T P                  T\         P                  RR7      p\        T4      ^ 8w  d   \        RT,          4      hT P                  TR.4       R#   \         P                   d    \	        R4      hi ; i  \         P                   d    \	        R4      hi ; i  \         d@   pTP                  w  rxT\         P                  8X  d   \        R	T,          4      h R
p?LæR
p?ii ; i)a6  
Delete a site

:param samdb: A samdb connection
:param configDn: The DN of the configuration partition
:param siteName: Name of the site to delete
:return: True upon success
:raise SiteNotFoundException: if the site to be deleted do not exists.
:raise SiteServerNotEmpty: if the site has still servers in it.
zCN=Siteszdnsite.add_base() failedzCN=Xzdnsite.add_child() failedÚCNz
CN=ServerszobjectClass=siter#   zSite %s does not existNz(objectclass=server)z9Site %s still has servers in it, move them before removalztree_delete:0T)r,   r0   Úadd_baser   r   Ú	add_childÚset_componentr+   Ú
SCOPE_BASEr.   r   ÚargsÚERR_NO_SUCH_OBJECTÚSCOPE_ONELEVELr!   Údelete)	r5   r6   r7   ÚdnsiteÚ	dnserversr8   ÚeÚenumÚestrs	   &&&      r
   Údelete_siterL   S   s…  € ô �VŠV�E˜:Ó&€Fð8Ø�‰˜Ô!ð9Ø×Ñ˜Ô ð ×Ñ˜˜D (Ô+ä—’�u˜lÓ+€IØ×Ñ�vÔðMØ�l‰l ¬c¯n©nØ&8ð ó :ˆäˆs‹8�qŒ=Ü'Ð(@À8Õ(KÓLÐLð ð �,‰,˜I¬S×-?Ñ-?Ø"8ð ó :€Cä
ˆ3ƒx�1„}Ü)Ð*eÐhpÕ*pÓqÐqà	‡L�L�˜/Ð*Ô+áøô9 �<‰<ô 8ÜÐ6Ó7Ð7ð8ûô �<‰<ô 9ÜÐ7Ó8Ð8ð9ûô ô MØ—v‘v‰ˆØ”3×)Ñ)Ô)Ü'Ð(@À8Õ(KÓLÐLô *ûðMús/   ™D «D: Á8AE Ä!D7Ä:!EÅF(Å)5F#Æ#F()r   r,   r   r   Ú	Exceptionr   r   r   r!   r<   rL   r   r   r
   Ú<module>rN      sQ   ðñ$ ã 
ß &ô@�Iô @ôI˜Mô IôM ô Mô; -ô ;ò"ôJ+r   