U
    Ad                     @   sV   d dl Z d dlZd dlZd dlZd dlZdZeeZeddfddZ	efddZ
dS )	    Ni  wbFc              
   C   s   |r4zt | }t|j}W n tk
r2   Y nX d }zdtjt j| d|d}t	
d| |j||t| || |  t |j| t |j|  W n: tk
r } z|d k	rt |j |W 5 d }~X Y nX d S )NF)dirdeletemodezOAtomically writing to file %s (via temporary file %s) - %s: [%o] %d bytes/chars)osstatS_IMODEst_modeOSErrortempfileZNamedTemporaryFilepathdirnameLOGdebugnamelenwriteclosechmodrename	Exceptionunlink)filenameZcontentr   omodeZpreserve_modeZ	file_statZtfe r   9/usr/lib/python3/dist-packages/cloudinit/atomic_helper.py
write_file   s:    

  	
r   c                 C   s    t | tj|dddd d|dS )N   T)indentZ	sort_keys
w)r   r   )r   jsondumps)r   datar   r   r   r   
write_json1   s    r%   )r"   Zloggingr   r   r   Z
_DEF_PERMSZ	getLogger__name__r   r   r%   r   r   r   r   <module>   s   
  
$