a
    aS	                     @   sP   d Z ddlmZ ddlmZ G dd deZG dd deZG d	d
 d
eZdS )zLocal host configuration.    )absolute_import   )SamDBc                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	
Hostconfigz[Aggregate object that contains all information about the configuration
    of a Samba host.c                 C   s
   || _ d S N)lpselfr    r
   2/usr/lib/python3/dist-packages/samba/hostconfig.py__init__   s    zHostconfig.__init__c                 C   s
   t | jS r   )SharesContainerr   r	   r
   r
   r   
get_shares   s    zHostconfig.get_sharesc                 C   s   t | j ||| jdS )zAccess the SamDB host.

        :param session_info: Session info to use
        :param credentials: Credentials to access the SamDB with
        )Zurlsession_infocredentialsr   )r   r   Z	samdb_url)r	   r   r   r
   r
   r   	get_samdb!   s    
zHostconfig.get_samdbN)__name__
__module____qualname____doc__r   r   r   r
   r
   r
   r   r      s   r   c                   @   s8   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d ZdS )r   zA shares container.c                 C   s
   || _ d S r   )_lpr   r
   r
   r   r   3   s    zSharesContainer.__init__c                 C   s   |dkrt t| j| S )Nglobal)KeyErrorSharer   r	   namer
   r
   r   __getitem__6   s    zSharesContainer.__getitem__c                 C   s&   d| j  v rt| j d S t| j S )Nr   r   )r   serviceslenr   r
   r
   r   __len__<   s    zSharesContainer.__len__c                 C   s   dd | j  D S )Nc                 S   s   g | ]}|d kr|qS )r   r
   ).0r   r
   r
   r   
<listcomp>B       z(SharesContainer.keys.<locals>.<listcomp>)r   r   r   r
   r
   r   keysA   s    zSharesContainer.keysc                 C   s   t |  S r   )iterr$   r   r
   r
   r   __iter__D   s    zSharesContainer.__iter__N)	r   r   r   r   r   r   r    r$   r&   r
   r
   r
   r   r   0   s   r   c                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	r   zA file share.c                 C   s
   || _ d S r   Z_service)r	   Zservicer
   r
   r   r   K   s    zShare.__init__c                 C   s
   | j | S r   r'   r   r
   r
   r   r   N   s    zShare.__getitem__c                 C   s   || j |< d S r   r'   )r	   r   valuer
   r
   r   __setitem__Q   s    zShare.__setitem__N)r   r   r   r   r   r   r)   r
   r
   r
   r   r   H   s   r   N)	r   Z
__future__r   Zsamdbr   objectr   r   r   r
   r
   r
   r   <module>   s
   