
    x[hF	                         d dl Z d dlZd dlmZmZ d dlmZ d dlmZ d dl	m
Z
  ej                  e      Z G d dej                        Zy)    N)PREFERRED_NTP_CLIENTSdebian)Snap)
activators)CLOUDINIT_NETPLAN_FILEc                   B     e Zd Z fdZd fd	Zed        ZddZ xZS )Distroc                 P   t         |   |||       dt        d| _        | j                  d   t        j
                  d| j                  d   t        j
                  ddd| _        t        | j                        | _	        | j                  j                  | j                         y )Nz+/etc/network/interfaces.d/50-cloud-init.cfg)eninetplanr   )eni_path
eni_headerr   T)netplan_pathnetplan_headerpostcmds)super__init__r   network_conf_fnr   NETWORK_FILE_HEADERrenderer_configsr   _runnersnappackage_managersappend)selfnamecfgpaths	__class__s       :/usr/lib/python3/dist-packages/cloudinit/distros/ubuntu.pyr   zDistro.__init__   s    sE* A- 
 !007$88
 !% 4 4Y ?"("<"< 
!
 &	$$TYY/    c                     t         |   |||       | j                  j                         r| j                  j	                          y y )N)r   package_commandr   	availableupgrade_packages)r   commandargspkgsr   s       r    r#   zDistro.package_command-   s9    t499 II&&( !r!   c                 n    | j                   st        j                  t              | _         | j                   S )z5The preferred ntp client is dependent on the version.)_preferred_ntp_clientscopydeepcopyr   )r   s    r    preferred_ntp_clientszDistro.preferred_ntp_clients2   s+     ***.--8M*ND'***r!   c                     	 | j                   j                          y# t        j                  $ r t        j                  d       Y yt        $ r }t        j                  d|       Y d}~yd}~ww xY w)zAEnsure that cloud-init's network service has network connectivityz6Failed to wait for network. No network activator foundzFailed to wait for network: %sN)network_activatorwait_for_networkr   NoActivatorExceptionLOGerror	Exception)r   es     r    r0   zDistro.wait_for_network9   sW    	;""335.. 	PIINO 	;II6::	;s    (A/A/A**A/)NN)returnN)	__name__
__module____qualname__r   r#   propertyr-   r0   __classcell__)r   s   @r    r	   r	      s&    0*)
 + +;r!   r	   )r+   loggingcloudinit.distrosr   r   )cloudinit.distros.package_management.snapr   cloudinit.netr   cloudinit.net.netplanr   	getLoggerr7   r2   r	    r!   r    <module>rC      s;      ; : $ 8g!);V]] );r!   