
"T`	                 @   s:   d  d l  m Z d  d l m Z Gd d   d e  Z d S)    )StringIO)chop_commentc               @   s^   e  Z d  Z d d   Z d d   Z d d   Z e d d    Z d	 d
   Z d d   Z	 d S)HostnameConfc             C   s   | |  _  d  |  _ d  S)N)_text	_contents)selftext r	   D/usr/lib/python3/dist-packages/cloudinit/distros/parsers/hostname.py__init__   s    	zHostnameConf.__init__c             C   s(   |  j  d  k r$ |  j |  j  |  _  d  S)N)r   _parser   )r   r	   r	   r
   parse   s    zHostnameConf.parsec             C   s   |  j    t   } x |  j D] \ } } | d k rM | j d | d  q | d k rq | j d | d  q | d k r | \ } } | j d | | f  q W| j   } | j d  s | d 7} | S)Nblankz%s
r   all_commenthostnamez%s%s

)r   r   r   writegetvalueendswith)r   contents	line_type
componentsr   tailr	   r	   r
   __str__   s    
	
zHostnameConf.__str__c             C   s<   |  j    x+ |  j D]  \ } } | d k r | d Sq Wd  S)Nr   r   )r   r   )r   r   r   r	   r	   r
   r   '   s
    
zHostnameConf.hostnamec             C   s   | j    } | s d  S|  j   d } x9 |  j D]. \ } } | d k r0 t |  | d <d } q0 W| s |  j j d t |  d g f  d  S)NFr   r   T )stripr   r   strappend)r   Zyour_hostnameZreplacedr   r   r	   r	   r
   set_hostname/   s    

zHostnameConf.set_hostnamec             C   s   g  } t    } x | j   D] } t | j    sM | j d | g f  q t | j   d  \ } } t |  s | j d | g f  q | j d | | g f  | j |  q Wt |  d k r t d |   | S)Nr   #r   r      zMultiple hostnames (%s) found!)set
splitlineslenr   r   r   addIOError)r   r   entriesZhostnames_foundlineheadr   r	   r	   r
   r   <   s     	
zHostnameConf._parseN)
__name__
__module____qualname__r   r   r   propertyr   r   r   r	   r	   r	   r
   r      s   r   N)ior   Zcloudinit.distros.parsersr   objectr   r	   r	   r	   r
   <module>   s   