
    gJ                     V    S r SSKrSSKrSSKrSSKJr  SSKrSrSS/r " S S	\5      r	g)
znetplan set command line    N   )NetplanCommandz70-netplan-set.yamlrendererversionc                   4   ^  \ rS rSrU 4S jrS rS rSrU =r$ )
NetplanSet   c                 $   > [         TU ]  SSSS9  g )NsetzTAdd new setting by specifying a dotted key=value pair like ethernets.eth0.dhcp4=trueT)
command_iddescriptionleaf)super__init__)self	__class__s    2/usr/share/netplan/netplan_cli/cli/commands/set.pyr   NetplanSet.__init__!   s    E%{" 	 	$    c                    U R                   R                  S[        SS9  U R                   R                  S[        SS9  U R                   R                  SSSS	9  U R                  U l        U R                  5         U R                  5         g )
N	key_valuezNThe nested key=value pair in dotted format. Value can be NULL to delete a key.)typehelpz--origin-hintzCan be used to help choose a name for the overwrite YAML file.                                        A .yaml suffix will be appended automatically.z
--root-dir/zAOverwrite configuration files in this root directory instead of /)defaultr   )parseradd_argumentstrcommand_setfunc
parse_argsrun_command)r   s    r   runNetplanSet.run&   s      3&v 	! 	x  s'W 	! 	X 	  s&i 	! 	k $$	r   c                 v   U R                   b$  [        U R                   5      S:X  a  [        S5      eU R                   (       a  SR                  U R                   S45      nOS nU R                  R                  SS5      n[        U5      S:w  a  [        S5      eUu  p4UR                  S	5      (       d  SR                  S	U45      n[        R
                  " S
U5       Vs/ s H  oUR                  SS5      PM     nn[        R                  " 5       n[        R                  " 5        n[        R                  " XdU5        UR                  5         UR                  S[         R"                  5        UR%                  U5        UR'                  U R(                  5        UR                  S[         R"                  5        UR+                  U5        [        R,                  " 5       n	U	R/                  U5        U(       Ga  [        R                  " 5       n
UR                  S[         R"                  5        U
R%                  U5        UR                  S[         R"                  5        U
R1                  XS9  U
R'                  U R(                  5        UR                  S[         R"                  5        U
R+                  U5        [        R,                  " 5       nUR/                  U
5        UR3                  XR(                  5        O U	R5                  [6        U R(                  5        S S S 5        g s  snf ! , (       d  f       g = f)Nr   zInvalid/empty origin-hint.yaml=   r   zInvalid value specifiednetworkz	(?<!\\)\.z\.)
constraint)origin_hintlen	Exceptionjoinr   split
startswithrereplacenetplanParsertempfileTemporaryFile_create_yaml_patchflushseekioSEEK_SETload_nullable_fieldsload_yaml_hierarchyroot_dir	load_yamlStateimport_parser_results_load_nullable_overrides_write_yaml_file_update_yaml_hierarchyFALLBACK_FILENAME)r   filenamer0   keyvalues	yaml_pathr   tmpstateparser_output_filestate_output_files               r   r   NetplanSet.command_set4   sb   'C0@0@,AQ,F788xx!1!16 :;HH$$S!,u:?566
~~i((((Is+,C 57HH\34OP4OqYYuc*4O	P!##%&&y=IIK HHQ$'', &&t}}5 HHQ$S! MMOE''/%,^^%5" BKK("77< BKK(";;C;U #66t}}EBKK(",,S1
 %,MMO!!778JK!228]]K,,->Nu &% Q &%s   L%&G6L**
L8)r    )	__name__
__module____qualname____firstlineno__r   r#   r   __static_attributes____classcell__)r   s   @r   r   r      s    $
MO MOr   r   )
__doc__r6   r2   r;   utilsr   r4   rF   GLOBAL_KEYSr    r   r   <module>r[      s9   $   	 	 " ) 9%bO bOr   