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   &
