
    Id                         d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZmZ d dlmZ d dlmZmZmZ d dlmZ d d	lmZ d
dlmZmZ  G d de      Zy)    N)is_ad_dc_built)nbt)join_DC	join_RODC)LIBNET_JOIN_AUTOMATICNet)r   )CommandCommandErrorOption)default_path)param   )common_join_optionscommon_provision_join_optionsc                      e Zd ZdZdZej                  ej                  ej                  dZ	 e
ddd      gZ e
ddd	
      gZ e
ddd
      gZej                  e       ej                  e        ej$                         rej                  e        ej&                         rej                  e       ddgZ	 	 	 	 	 	 	 ddZy)cmd_domain_joinz9Join domain as either member or backup domain controller.z,%prog <dnsdomain> [DC|RODC|MEMBER] [options])	sambaoptsversionoptscredoptsz--use-ntvfsz+Use NTVFS for the fileserver (default = no)
store_true)helpactionz--experimental-s4-memberzfPerform member joins using the s4 Net join_member. Don't choose this unless you know what you're doing)r   r   z--no-dns-updateszDisable DNS updatesdomainzrole?Nc                    |j                         }|j                  |      }t        |||j                        }| j	                  ||      }|j                  d      }||j                         }||dk(  r|r|j                  ||t        |
      \  }}}n|j                  d|       |j                  d      dk(  rL|j                  d|j                  |t        j                  t        j                  z  	      j                         |j                  d
d       |j                  r|j                  n	t!               }t#        j$                  dt&        j(                  j+                  |            5 }|j-                  d|j.                         t&        j(                  j1                  |      r?t'        j2                  |      j4                  }t'        j6                  |j.                  |       t'        j8                  |j.                  |       d d d        t;        j<                         }|j?                  |       tA        |||      } | j                  ||
||      \  }}| jB                  jE                  d|d|d       y |dk(  r%tG               rtI        |||||||||	|
|||||       y |dk(  r%tG               rtK        |||||||||	|
|||||       y tM        d|z        # 1 sw Y   xY w)N)server)verbosequietznetbios nameMEMBER)machinepassrealm	workgroup	WORKGROUP)r   flagszserver rolezmember serverF)deletedir)r   debugnoDnsUpdateszJoined domain z (z)
DC)loggerr   credslpr   sitenetbios_name	targetdirdomain_critical_onlyr   	use_ntvfsdns_backendplaintext_secretsbackend_storebackend_store_sizeRODCz5Invalid role '%s' (possible values: MEMBER, DC, RODC))'get_loadparmget_credentialsr   	ipaddress
get_loggergetupperjoin_memberr   setfinddcr   NBT_SERVER_LDAPNBT_SERVER_DSdomain_name
configfiler   tempfileNamedTemporaryFileospathdirnamedumpnameexistsstatst_modechmodrenames3paramget_contextloads3_Neterrfwriter   r   r   r
   )!selfr   roler   r   r   r   r,   r.   r/   r   r0   experimental_s4_memberr1   r   r   no_dns_updatesr2   r3   r4   r+   r*   netr)   r-   join_passwordsidrA   smb_conffmodes3_lps3_nets!                                    :/usr/lib/python3/dist-packages/samba/netcmd/domain/join.pyrunzcmd_domain_join.runP   s    ##%((,%H$6$67>vvn-::<D<48+%47OOL*? + 5D 5-1[ w'66+&+5FF;

&"22"00 1 )3 )33>;@ }o6,.MM2==|~00GGOOH57 0:;GGE166*ww~~h/!wwx088.IIaffh/0  ++-

8$uV<%+%7%7DO>EES &8 &U"k
 IIOOcJKT\n.6&"VLI)= +y +&7"/'9; V^ 0VF%Bvli+?"-"-(9$1);= VY]]^^G0 0s   3BK&&K/)NNNNNNNFNFFNFFFFNN)__name__
__module____qualname____doc__synopsisoptionsSambaOptionsVersionOptionsCredentialsOptionstakes_optiongroupsr   ntvfs_optionsselftest_optionstakes_optionsextendr   r   sambais_ntvfs_fileserver_builtis_selftest_enabled
takes_argsrb        ra   r   r   *   s    C=H ))--.. 	 M	!M 	),J	K 	!,)	+M ,-67&u&&(]+ u  "-.G$J>B@D48GK7<#37B_rv   r   )rE   rC   rq   samba.getoptgetoptrh   r   samba.dcerpcr   
samba.joinr   r   	samba.netr   r   samba.net_s3rR   samba.netcmdr	   r
   r   samba.paramr   samba.samba3r   rO   commonr   r   r   ru   rv   ra   <module>r      sA   2 
       ) 0 & 6 6 $ ) Fh_g h_rv   