o
    Žõ±j’  ã                   @   sv   d dl mZ d dlmZ g d¢ZG dd„ dƒZedkr9d dlZejdd	�Z	e 
e	¡ ee	ƒ e	 ¡ Ze e¡ dS dS )
é    )ÚSMBConnectionFactory)ÚSMBCredentialTypes)ÚdomainÚuserÚpasswordÚ	auth_typeÚtimeoutÚprotocolc                   @   s,   e Zd Zdd„ Zedd„ ƒZedd„ ƒZdS )ÚSMBConnectionParamsc                 C   s   d S )N© )Úselfr   r   ú“/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiosmb/commons/connection/params.pyÚ__init__	   s   zSMBConnectionParams.__init__c                 C   s–   |   d¡}|jddddd� |jddd	d
� |jdddd
� |jdddd„ tD ƒddd� |jddtddd� |jdg d¢ddd� |jddd
� d S ) NzParameter based connectionz-dz--domainÚ.Ú
Domainname)ÚdefaultÚhelpz-uz--userÚUsername)r   z-pz
--passwordz-Password (or other secret for authentication)z-az--auth-typec                 S   s   g | ]}|j ‘qS r   )Úvalue)Ú.0Úer   r   r   Ú
<listcomp>   s    z5SMBConnectionParams.extend_parser.<locals>.<listcomp>zntlm-passwordzauthentication type)Úchoicesr   r   z-tz	--timeouté   zConnection timeout)Útyper   r   z
--protocol)ÚsmbÚsmb2Úsmb3r   zSMB protocol versionz--dczDC ip for kerberos)Úadd_argument_groupÚadd_argumentr   Úint)ÚparserÚgroupr   r   r   Úextend_parser   s   
z!SMBConnectionParams.extend_parserc                 C   sŠ   t D ]}t| |ƒdu rtd| ƒ‚t| |ƒd u rtd| ƒ‚qd}| j| j| j| j| jt| dƒr3| j	nd dœ}|j
di |¤Ž}t|ƒ |S )NFzEThe parameter "%s" is mandatory for parameter based connection setup!z#The parameter "%s" cannot be empty!zC{protocol}+{auth_type}://{domainname}\{username}:{password}@{host}/Úhost)r	   r   Ú
domainnameÚusernamer   r$   r   )ÚSMB_CONNECTION_PARAM_MANDATORYÚhasattrÚ	ExceptionÚgetattrr	   r   r   r   r   r$   ÚformatÚprint)ÚargsÚpÚurl_templateÚparamsÚurlr   r   r   Ú
parse_args   s"   ÿú	zSMBConnectionParams.parse_argsN)Ú__name__Ú
__module__Ú__qualname__r   Ústaticmethodr#   r2   r   r   r   r   r
      s    

r
   Ú__main__NÚTEST)Úprog)Ú!aiosmb.commons.connection.factoryr   Ú$aiosmb.commons.connection.credentialr   r'   r
   r3   ÚargparseÚArgumentParserr!   r#   r,   r2   r-   r   r   r   r   Ú<module>   s   &
ö