
    gm                     f    d Z ddlZddlZddlZddlZddlZddlmZ  G d dej                        Z	y)znetplan generate command line    N   )utilsc                   *     e Zd Z fdZd Zd Z xZS )NetplanGeneratec                 *    t         |   ddd       y )NgeneratezFGenerate backend specific configuration files from /etc/netplan/*.yamlT)
command_iddescriptionleaf)super__init__)self	__class__s    7/usr/share/netplan/netplan_cli/cli/commands/generate.pyr   zNetplanGenerate.__init__   s     J&A" 	 	$    c                     | j                   j                  dd       | j                   j                  dd       | j                  | _        | j	                          | j                          y )N
--root-dirzOSearch for and generate configuration files in this root directory instead of /)help	--mappingzFDisplay the netplan device ID/backend/interface name mapping and exit.)parseradd_argumentcommand_generatefunc
parse_argsrun_command)r   s    r   runzNetplanGenerate.run%   sa      &w 	! 	y  &n 	! 	p ))	r   c           
      j   dt         j                  v rct        j                  d      }|t	        d      t        j                  |ddddddd	g      }|d
k7  r|dk(  rt        d      t	        d|z        y t        j                         g}| j                  r|d| j                  gz  }| j                  r|d| j                  gz  }t        j                  d|       t        j                  |      }	 t        j                  g d       | j                  	 t        j"                          t'        j(                  |       y # t
        j                  $ r+}t        j                  dt!        |              Y d }~pd }~ww xY w# t
        j                  $ r}t        j$                  |       Y d }~d }~ww xY w)NSNAPbusctlzmissing busctl utilitycallz--quietz--systemzio.netplan.Netplanz/io/netplan/NetplanGenerater      z8PermissionError: failed to communicate with dbus servicez?RuntimeError: failed to communicate with dbus service: error %sr   r   zcommand generate: running %s)udevadmcontrolz--reloadz+Could not call "udevadm control --reload": )osenvironshutilwhichRuntimeError
subprocessr    PermissionErrorr   get_generator_pathroot_dirmappingloggingdebug
check_callCalledProcessErrorstrsystemctl_daemon_reloadwarningsysexit)r   r   resargves        r   r   z NetplanGenerate.command_generate0   s   RZZ \\(+F~"#;<< //669j#7#8#7#-	#% &C ax#:)RT T 'Y\__a a ((*+==\4==11D<<[$,,//D4d;ood#	R!!"DE <<#--/ 	 ,, 	RMMGAxPQQ	R 00 #""#s0   1D? F  ?E=!E88E= F2F--F2)__name__
__module____qualname__r   r   r   __classcell__)r   s   @r   r   r      s    $	2r   r   )
__doc__r/   r%   r6   r*   r'    r   NetplanCommandr    r   r   <module>rC      s0   $ $  	 
   Ee** Er   