o
    f                  
   @   s   U d 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
 ddlmZ dd	ged
gdZe
ed< eeZdddZdd Zdededededdf
ddZdS )z$Fan: Configure ubuntu fan networking    N)subputil)Cloud)Config)
MetaSchema)PER_INSTANCEcc_fanubuntufan)iddistros	frequencyactivate_by_schema_keysmetaz/etc/network/fan)configconfig_pathc              
   C   s   z
|  d| d}W n tjy& } zd}td|| W Y d }~nd }~ww |ds0|d7 }tj||dd z|  d| |rGtd	| W n tjyb } ztd
|| W Y d }~nd }~ww |  d| d S )NstopFTzfailed to stop %s: %s
womodestartzsuccess: %s startedzfailed to start %s: %senable)manage_servicer   ProcessExecutionErrorLOGwarningendswithr   
write_file)distroserviceconfig_filecontentstop_failede r%   9/usr/lib/python3/dist-packages/cloudinit/config/cc_fan.pystop_update_start   s*   
r'   namecfgcloudargsreturnc                 C   s   | d}|s	i }t|tg}| dstd|  d S tj| d| ddd |j}t	ds9|
dg t|d| d| dd	 d S )
Nr
   r   z$%s: no 'fan' config entry. disablingr   r   r   fanctlz
ubuntu-fan)r    r!   r"   )getr   mergemanydictBUILTIN_CFGr   debugr   r   r   whichinstall_packagesr'   )r(   r)   r*   r+   cfginmycfgr   r%   r%   r&   handle5   s"   



r6   )__doc__logging	cloudinitr   r   cloudinit.cloudr   cloudinit.configr   cloudinit.config.schemar   cloudinit.settingsr   r   __annotations__	getLogger__name__r   r0   r'   strlistr6   r%   r%   r%   r&   <module>   s$   
"