a
    a>                     @   s   d dl mZ d dlmZmZ d dlmZ d dlmZ	 d dl
mZ d dlmZmZmZmZ G dd deZG d	d
 d
eZG dd deZG dd deZG dd deZG dd deZG dd deZdS )    )print_function)sitessubnets)SamDBN)system_session)CommandCommandErrorSuperCommandOptionc                   @   sL   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	d
gZdddZdS )cmd_sites_createzCreate a new site.%prog <site> [options]sitename	sambaoptsversionoptscredopts-H--URL%LDB URL for database or target serverURLHhelptypemetavardestNc           
   
   C   s   |  }|j|dd}t|t ||d}|  zt|| | |  W nB tj	y }	 z(|
  td|t|	f W Y d }	~	n
d }	~	0 0 | jd|  d S )NTZfallback_machineZurlZsession_infoZcredentialslpz'Error while creating site %s, error: %szSite %s created !
)get_loadparmget_credentialsr   r   transaction_startr   Zcreate_siteget_config_basedntransaction_commitZSiteAlreadyExistsExceptiontransaction_cancelr   stroutfwrite
selfr   r   r   r   r   r   credssamdbe r-   4/usr/lib/python3/dist-packages/samba/netcmd/sites.pyrun2   s    
zcmd_sites_create.run)NNNN__name__
__module____qualname____doc__ZsynopsisZ
takes_argsoptionsZSambaOptionsZVersionOptionsZCredentialsOptionsZtakes_optiongroupsr
   r%   Ztakes_optionsr/   r-   r-   r-   r.   r       s     r   c                   @   sL   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	d
gZdddZdS )cmd_sites_deletezDelete an existing site.r   r   r   r   r   r   r   r   r   Nc           
   
   C   s   |  }|j|dd}t|t ||d}|  zt|| | |  W nB tj	y }	 z(|
  td|t|	f W Y d }	~	n
d }	~	0 0 | jd|  d S )NTr   r   z'Error while removing site %s, error: %szSite %s removed!
)r   r    r   r   r!   r   Zdelete_siter"   r#   ZSiteExceptionr$   r   r%   r&   r'   r(   r-   r-   r.   r/   W   s    zcmd_sites_delete.run)NNNNr0   r-   r-   r-   r.   r6   E   s     r6   c                   @   sN   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
dgZdddZdS )cmd_sites_subnet_createzCreate a new subnet.)%prog <subnet> <site-of-subnet> [options]
subnetnamesite_of_subnetr   r   r   r   r   r   r   Nc              
   C   s   |  }||}t|t ||d}	|	  z t|	|	 || |	  W n> tj	y }
 z$|	
  td||
f W Y d }
~
n
d }
~
0 0 | jd|  d S )Nr   z"Error while creating subnet %s: %szSubnet %s created !
)r   r    r   r   r!   r   Zcreate_subnetr"   r#   SubnetExceptionr$   r   r&   r'   r)   r9   r:   r   r   r   r   r   r*   r+   r,   r-   r-   r.   r/   z   s"    
zcmd_sites_subnet_create.run)NNNNr0   r-   r-   r-   r.   r7   j   s     r7   c                   @   sL   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	d
gZdddZdS )cmd_sites_subnet_deletezDelete an existing subnet.z%prog <subnet> [options]r9   r   r   r   r   r   r   r   Nc           
   
   C   s   |  }||}t|t ||d}|  zt|| | |  W n> tj	y }	 z$|
  td||	f W Y d }	~	n
d }	~	0 0 | jd|  d S )Nr   z)Error while removing subnet %s, error: %szSubnet %s removed!
)r   r    r   r   r!   r   Zdelete_subnetr"   r#   r;   r$   r   r&   r'   )
r)   r9   r   r   r   r   r   r*   r+   r,   r-   r-   r.   r/      s    
zcmd_sites_subnet_delete.run)NNNNr0   r-   r-   r-   r.   r=      s     r=   c                   @   sN   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
dgZdddZdS )cmd_sites_subnet_set_sitezAssign a subnet to a site.r8   r9   r:   r   r   r   r   r   r   r   Nc              
   C   s   |  }||}t|t ||d}	|	  z t|	|	 || |	  W n@ tj	y }
 z&|	
  td|||
f W Y d }
~
n
d }
~
0 0 td||f | jd d S )Nr   z(Error assigning subnet %s to site %s: %szSubnet %s shifted to site %s)file)r   r    r   r   r!   r   Zset_subnet_siter"   r#   r;   r$   r   printr&   r<   r-   r-   r.   r/      s*    
zcmd_sites_subnet_set_site.run)NNNNr0   r-   r-   r-   r.   r>      s     r>   c                   @   s"   e Zd ZdZe e e dZdS )cmd_sites_subnetzSubnet management subcommands.)createremovezset-siteN)r1   r2   r3   r4   r7   r=   r>   subcommandsr-   r-   r-   r.   rA      s
   rA   c                   @   s2   e Zd ZdZi Ze ed< e ed< e ed< dS )	cmd_siteszSites management.rB   rC   ZsubnetN)r1   r2   r3   r4   rD   r   r6   rA   r-   r-   r-   r.   rE      s
   

rE   )Z
__future__r   Zsambar   r   Zsamba.samdbr   Zsamba.getoptZgetoptr5   Z
samba.authr   Zsamba.netcmdr   r   r	   r
   r   r6   r7   r=   r>   rA   rE   r-   r-   r-   r.   <module>   s   %%$%%	