
    gv                         S SK r S SKJr  S SKJr  S SKJrJr  S SK	J
r
JrJr  S SKJr  S SKJr  S SKJr   " S S	\
5      rg)
    N)system_session)DS_DOMAIN_FUNCTION_2008DS_DOMAIN_FUNCTION_2008_R2)CommandCommandErrorOption)get_fsmo_roleowner)SamDB)functional_levelc                       \ rS rSrSrSr\R                  \R                  \R                  S.r
\" SSS\SS	S
9\" SSSSS9\" SSSSS9\" SSS/ SQSSS9\" SSSS9\" SSSS9/rS rS rg!)"cmd_domain_functional_prep$   z#Domain functional level preparationz%prog [options])	sambaoptsversionoptscredoptsz-Hz--URLz%LDB URL for database or target serverURLH)helptypemetavardestz-qz--quietzBe quiet
store_true)r   actionz-vz	--verbosez
Be verbosez--function-levelchoiceFUNCTION_LEVEL)2008_R220122012_R22016z?The functional level to prepare for. Default is (Windows) 2016.r   )r   r   choicesr   defaultz--forest-prepzJRun the forest prep (by default, both the domain and forest prep are run).)r   r   z--domain-prepzJRun the domain prep (by default, both the domain and forest prep are run).c                    SnUR                  S5      nUR                  S5      nUR                  5       nUR                  U5      nUR                  S5      nUR                  S5      n [        R                  " U5      n	UR                  S5      n
UR                  S	5      n[        U[        5       XeS
9nUR                  S5      c  UR                  SS5        [        S5        SnU
c  Uc  Sn
Sn[        R                  " XR                  5       5      nU
(       a4  [        U[        UR!                  5       5      S5      nX:w  a  [        S5      eU(       a2  UR#                  5       nSU-   n[        UUS5      nX:w  a  [        S5      eS nU
(       aY  UcV  UR%                  5          SSKJn  U" USS9nUR+                  / SQ5        UR-                  U	[.        SS9  UR1                  5         U(       aF  UcC  UR%                  5          SSKJn  U" USS9nUR-                  U	[:        SS9  UR1                  5         U(       a  UR                  SS5        Ub  [        SU-  5      eg ! [
         a    [        SU S35      ef = f! [2         a*  n[        SU-  5        UR5                  5         Un S nANS nAff = f! [2         a*  n[        SU-  5        UR5                  5         Un S nANS nAff = f)NFr   r   r   function_level'z1' is not known to Samba as an AD functional levelforest_prepdomain_prep)urlsession_infocredentialslpzdsdb:schema update allowedyesz;Temporarily overriding 'dsdb:schema update allowed' settingTschemaz%This server is not the schema master.zCN=Infrastructure,infrastructurez-This server is not the infrastructure master.r   )ForestUpdate)fix)   6   O   P   Q   R   S   )update_revisionzException: %s)DomainUpdatenoz%Failed to perform functional prep: %r)getget_loadparmget_credentialsr   string_to_levelKeyErrorr   r
   r   setprintldbDnget_dsServiceNamer	   strget_schema_basedn	domain_dntransaction_startsamba.forest_updater.   check_updates_iteratorcheck_updates_functional_levelr   transaction_commit	Exceptiontransaction_cancelsamba.domain_updater8   r   )selfkwargsupdates_allowed_overriddenr   r   r*   credsr   r#   target_levelr%   r&   samdbown_dnmasterrF   infrastructure_dnexception_encounteredr.   forester8   domains                          E/usr/lib/python3/dist-packages/samba/netcmd/domain/functional_prep.pyruncmd_domain_functional_prep.run>   s   %*"JJ{+	::j)##%((,JJsO$45	f+;;NKL jj/jj/!.*:U 66./7FF/7OP)-&;#6KK6689's53J3J3L/M(02F"#JKK)I 4y @'/@(8:F"#RSS $08##%*<%e6--.JK55l6PFJ 6 L ((* 08##%*<%e655l6MFJ 6 L ((* &FF/6 ,F4 5 6 6 -O  	f>"22cdee	f^  *o)*((*()%*   *o)*((*()%*s=   )I! $AI> 2J5 !I;>
J2 J--J25
K)? K$$K) N)__name__
__module____qualname____firstlineno____doc__synopsisoptionsSambaOptionsVersionOptionsCredentialsOptionstakes_optiongroupsr   rD   takes_optionsr]   __static_attributes__r_       r\   r   r   $   s    - H ))--.. 	tW#JQT3	(tYZEt[|LI!:J=U	 	|`	b|`	bMS6rm   r   )rA   samba.getoptgetoptrf   
samba.authr   
samba.dsdbr   r   samba.netcmdr   r   r   samba.netcmd.fsmor	   samba.samdbr
   sambar   r   r_   rm   r\   <module>rv      s0   2   % J 6 6 0  "m6 m6rm   