Ë
    ”î~f   ã                   ó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           
      ó   — 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                  «        t#        j$                  |«       y # t
        j                  $ r}t        j                   |«       Y d }~ŒCd }~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)ÚosÚenvironÚshutilÚwhichÚRuntimeErrorÚ
subprocessr    ÚPermissionErrorr   Úget_generator_pathÚroot_dirÚmappingÚloggingÚdebugÚsystemctl_daemon_reloadÚCalledProcessErrorÚwarningÚsysÚexit)r   r   ÚresÚargvÚes        r   r   z NetplanGenerate.command_generate0   s@  € à”R—Z‘ZÑô —\‘\ (Ó+ˆFØˆ~Ü"Ð#;Ó<Ð<ô —/‘/ 6¨6°9¸jØ#7Ø#8Ø#7Ø#-ð	#%ó &ˆCð �aŠxØ˜#’:Ü)ØRóTð Tô 'ØYÐ\_Ñ_óað að ä×(Ñ(Ó*Ð+ˆØ�=Š=Ø�\ 4§=¡=Ð1Ñ1ˆDØ�<Š<Ø�[ $§,¡,Ð/Ñ/ˆDÜ�‰Ð4°dÔ;Ü�o‰o˜dÓ#ˆð	Ü×)Ñ)Ô+ô 	�‰��øô ×,Ñ,ò 	Ü�O‰O˜A×Ñûð	ús   Ã1D ÄEÄ.EÅE)Ú__name__Ú
__module__Ú__qualname__r   r   r   Ú__classcell__)r   s   @r   r   r      s   ø„ ô$ò	ö,r   r   )
Ú__doc__r-   r#   r2   r(   r%   Ú r   ÚNetplanCommandr   © r   r   ú<module>r?      s.   ðñ$ $ã Û 	Û 
Û Û å ô?�e×*Ñ*õ ?r   