
    d.                     F   d dl mZmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZmZ d dlmZ  G d de      Z G d d	e      Z G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de	      Z G d de	      Zy)    )sitessubnetsN)CommandCommandErrorSuperCommandOption)SiteSubnet)
ModelErrorc                       e Zd ZdZdZej                  ej                  ej                  dZ	 e
dddedd	       e
d
dddd      gZ	 	 ddZy)cmd_sites_listzList sites.z%prog [options]	sambaoptsversionoptscredopts-H--URL%LDB URL for database or target serverURLldap_urlhelptypemetavardest--jsonOutput results in JSON format.output_formatstore_constjsonr   r   actionconstNc                 x   | j                  |||      }	 t        j                  |      D ci c]  }|j                  |j	                          }}|dk(  r| j                  |       y |j                         D ]   }| j                  j                  | d       " y c c}w # t
        $ r}	t        |	      d }	~	ww xY w)Nr    
)ldb_connectr	   querycnas_dictr   r   
print_jsonkeysoutfwrite)
selfr   r   r   r   r   ldbsite
sites_dictes
             4/usr/lib/python3/dist-packages/samba/netcmd/sites.pyrunzcmd_sites_list.run1   s     xH=	"&*jjo7" ''4<<>1 7J 7 F"OOJ'") -		4&,-7 	"q/!	"s(   B  "BB  B   	B9)B44B9NNNNN)__name__
__module____qualname____doc__synopsisoptionsSambaOptionsVersionOptionsCredentialsOptionstakes_optiongroupsr   strtakes_optionsr4        r3   r   r      sp     H ))--.. 	tW#JZ	9x>#M	IM ;?,0-rC   r   c                       e Zd ZdZdZdgZej                  ej                  ej                  dZ
 edddedd	
      gZ	 	 ddZy)cmd_sites_viewzView one site.%prog <site> [options]sitenamer   r   r   r   r   r   r   Nc                     | j                  |||      }	 t        j                  ||      }|t	        d| d      | j                  |j                                y # t        $ r}t	        |      d }~ww xY w)Nr(   Site  not found.)r&   r	   getr   r   r*   r)   )	r.   rG   r   r   r   r   r/   r0   r2   s	            r3   r4   zcmd_sites_view.runW   sx     xH=	"88CH-D
 <xj<== 	'  	"q/!	"   A 	A6&A11A6NNNNr6   r7   r8   r9   r:   
takes_argsr;   r<   r=   r>   r?   r   r@   rA   r4   rB   rC   r3   rE   rE   E   sd    'HJ ))--.. 	tW#JZ	9M
 EI(rC   rE   c                       e Zd ZdZdZdgZej                  ej                  ej                  dZ
 edddedd	
      gZ	 	 ddZy)cmd_sites_createzCreate a new site.rF   rG   r   r   r   r   r   Hr   Nc           	      |   | j                  |||      }|j                          	 t        j                  ||j	                         |       |j                          | j                  j                  d|z         y # t        j                  $ r/}|j                          t        d|dt        |            d }~ww xY w)NzError while creating site 	, error: zSite %s created !
)r&   transaction_startr   create_siteget_config_basedntransaction_commitSiteAlreadyExistsExceptiontransaction_cancelr   r@   r,   r-   r.   rG   rS   r   r   r   samdbr2   s           r3   r4   zcmd_sites_create.run{   s      Ix8!	3eU%<%<%>I$$& 			-89 // 	3$$& (#a& 2 3 3	3   5A9 9B;*B66B;rN   rO   rB   rC   r3   rR   rR   i   sc    'HJ ))--.. 	tW#JS	2M
 >B:rC   rR   c                       e Zd ZdZdZdgZej                  ej                  ej                  dZ
 edddedd	
      gZ	 	 ddZy)cmd_sites_deletezDelete an existing site.rF   rG   r   r   r   r   r   rS   r   Nc           	      |   | j                  |||      }|j                          	 t        j                  ||j	                         |       |j                          | j                  j                  d|z         y # t        j                  $ r/}|j                          t        d|dt        |            d }~ww xY w)NzError while removing site rU   zSite %s removed!
)r&   rV   r   delete_siterX   rY   SiteExceptionr[   r   r@   r,   r-   r\   s           r3   r4   zcmd_sites_delete.run   s      Ix8!	PeU%<%<%>I$$& 			,x78 "" 	P$$&=Es1vNP P	Pr^   rN   rO   rB   rC   r3   r`   r`      sc    "'HJ ))--.. 	tW#JS	2M
 >B9rC   r`   c                       e Zd ZdZdZdgZej                  ej                  ej                  dZ
 edddedd	
       eddddd      gZ	 	 ddZy)cmd_sites_subnet_listzList subnets.rF   rG   r   r   r   r   r   r   r   r   r   r   r   r    r!   Nc                 ,   | j                  |||      }	 t        j                  ||      }|t	        d| d      	 t        j                  |t        |j                              D 
ci c]  }
|
j                  |
j                          }}
|dk(  r| j                  |       y |j                         D ]   }
| j                  j                  |
 d       " y # t        $ r}	t	        |	      d }	~	ww xY wc c}
w # t        $ r}	t	        |	      d }	~	ww xY w)NrI   rJ   rK   )site_objectr    r%   )r&   r	   rL   r   r   r
   r'   r@   dnr(   r)   r*   r+   r,   r-   )r.   rG   r   r   r   r   r   r/   r0   r2   subnetsubnets_dicts               r3   r4   zcmd_sites_subnet_list.run   s    xH=	"88CH-D
 <xj<==	"*0,,sCFtww<+QR & #IIv~~'77 RL R F"OOL)&++- /		6("./'  	"q/!	"R  	"q/!	"s@   C ,C: *"C5C: 	C2"C--C25C: :	DDDr5   rO   rB   rC   r3   re   re      sy    'HJ ))--.. 	tW#JZ	9x>#M	IM EI,0/rC   re   c                       e Zd ZdZdZdgZej                  ej                  ej                  dZ
 edddedd	
      gZ	 	 ddZy)cmd_sites_subnet_viewzView subnet details.%prog <subnet> [options]
subnetnamer   r   r   r   r   r   r   Nc                     | j                  |||      }	 t        j                  ||      }|t	        d| d      | j                  |j                                y # t        $ r}t	        |      d }~ww xY w)NrI   Subnet rK   )r&   r
   rL   r   r   r*   r)   )	r.   rn   r   r   r   r   r/   ri   r2   s	            r3   r4   zcmd_sites_subnet_view.run   sy     xH=	"ZZ
3F
 >K@AA 	()  	"q/!	"rM   rN   rO   rB   rC   r3   rl   rl      sd    )HJ ))--.. 	tW#JZ	9M
 GK*rC   rl   c                       e Zd ZdZdZddgZej                  ej                  ej                  dZ
 eddded	d
      gZ	 	 ddZy)cmd_sites_subnet_createzCreate a new subnet.)%prog <subnet> <site-of-subnet> [options]rn   site_of_subnetr   r   r   r   r   rS   r   Nc                 l   | j                  |||      }|j                          	 t        j                  ||j	                         ||       |j                          | j                  j                  d|z         y # t        j                  $ r&}|j                          t        d|d|      d }~ww xY w)NzError while creating subnet : zSubnet %s created !
)r&   rV   r   create_subnetrX   rY   SubnetExceptionr[   r   r,   r-   	r.   rn   rt   rS   r   r   r   r]   r2   s	            r3   r4   zcmd_sites_subnet_create.run  s      Ix8!	0!!%)@)@)BJ"02$$& 			/*<= && 	0$$& *A / 0 0	0s   6A: :B3!B..B3rN   rO   rB   rC   r3   rr   rr     sh    :H 01J ))--.. 	tW#JS	2M
 AE'+>rC   rr   c                       e Zd ZdZdZdgZej                  ej                  ej                  dZ
 edddedd	
      gZ	 	 ddZy)cmd_sites_subnet_deletezDelete an existing subnet.rm   rn   r   r   r   r   r   rS   r   Nc                 j   | j                  |||      }|j                          	 t        j                  ||j	                         |       |j                          | j                  j                  d|z         y # t        j                  $ r&}|j                          t        d|d|      d }~ww xY w)NzError while removing subnet rU   zSubnet %s removed!
)r&   rV   r   delete_subnetrX   rY   rx   r[   r   r,   r-   )r.   rn   rS   r   r   r   r]   r2   s           r3   r4   zcmd_sites_subnet_delete.run6  s      Ix8!	0!!%)@)@)BJO$$& 			.;< && 	0$$& *A / 0 0	0s   5A9 9B2!B--B2rN   rO   rB   rC   r3   r{   r{   $  sd    $)HJ ))--.. 	tW#JS	2M
 @D=rC   r{   c                       e Zd ZdZdZddgZej                  ej                  ej                  dZ
 eddded	d
      gZ	 	 ddZy)cmd_sites_subnet_set_sitezAssign a subnet to a site.rs   rn   rt   r   r   r   r   r   rS   r   Nc           	      p   | j                  |||      }|j                          	 t        j                  ||j	                         ||       |j                          t        d|d|| j                         y # t        j                  $ r)}|j                          t        d|d|d|      d }~ww xY w)NzError assigning subnet z	 to site rv   rp   z shifted to site )file)r&   rV   r   set_subnet_siterX   rY   rx   r[   r   printr,   ry   s	            r3   r4   zcmd_sites_subnet_set_site.runV  s      Ix8!	@##E5+B+B+D$.@$$& 	N,3799	> && 	@$$& *NA ? @ @	@s   6A9 9B5$B00B5rN   rO   rB   rC   r3   r   r   F  sh    $:H 01J ))--.. 	tW#JS	2M
 AE'+>rC   r   c                   R    e Zd ZdZ e        e        e        e        e       dZ	y)cmd_sites_subnetzSubnet management subcommands.)createremovelistviewzset-siteN)
r6   r7   r8   r9   rr   r{   re   rl   r   subcommandsrB   rC   r3   r   r   h  s*    ()+)+%'%'-/KrC   r   c                   x    e Zd ZdZi Z e       ed<    e       ed<    e       ed<    e       ed<    e	       ed<   y)	cmd_siteszSites management.r   r   r   r   ri   N)
r6   r7   r8   r9   r   r   rE   rR   r`   r   rB   rC   r3   r   r   s  sK    K(*K(*K,.K,.K,.KrC   r   )sambar   r   samba.getoptgetoptr;   samba.netcmdr   r   r   r   samba.netcmd.domain.modelsr	   r
   %samba.netcmd.domain.models.exceptionsr   r   rE   rR   r`   re   rl   rr   r{   r   r   r   rB   rC   r3   <module>r      s   & !   4 <#-W #-L!(W !(H:w :D9w 9D//G //d!*G !*H>g >B=g =D> >D| / /rC   