Current File : //lib/python2.7/site-packages/cloudinit/config/cc_update_etc_hosts.pyc
�
oB�]c@sIdZddlmZddlmZddlmZeZd�ZdS(s
Update Etc Hosts
----------------
**Summary:** update ``/etc/hosts``

This module will update the contents of ``/etc/hosts`` based on the
hostname/fqdn specified in config. Management of ``/etc/hosts`` is controlled
using ``manage_etc_hosts``. If this is set to false, cloud-init will not manage
``/etc/hosts`` at all. This is the default behavior.

If set to ``true`` or ``template``, cloud-init will generate ``/etc/hosts``
using the template located in ``/etc/cloud/templates/hosts.tmpl``. In the
``/etc/cloud/templates/hosts.tmpl`` template, the strings ``$hostname`` and
``$fqdn`` will be replaced with the hostname and fqdn respectively.

If ``manage_etc_hosts`` is set to ``localhost``, then cloud-init will not
rewrite ``/etc/hosts`` entirely, but rather will ensure that a entry for the
fqdn with a distribution dependent ip is present in ``/etc/hosts`` (i.e.
``ping <hostname>`` will ping ``127.0.0.1`` or ``127.0.1.1`` or other ip).

.. note::
    if ``manage_etc_hosts`` is set ``true`` or ``template``, the contents
    of ``/etc/hosts`` will be updated every boot. to make any changes to
    ``/etc/hosts`` persistant they must be made in
    ``/etc/cloud/templates/hosts.tmpl``

.. note::
    for instructions on specifying hostname and fqdn, see documentation for
    ``cc_set_hostname``

**Internal name:** ``cc_update_etc_hosts``

**Module frequency:** per always

**Supported distros:** all

**Config keys**::

    manage_etc_hosts: <true/"template"/false/"localhost">
    fqdn: <fqdn>
    hostname: <fqdn/hostname>
i����(t	templater(tutil(t
PER_ALWAYSc	Cs*tj|dt�}tj|ddg�r�tj||�\}}|s\|jd�dS|jd|jj�}|s�t	d|jj��nt
j|di|d6|d	6�nn|d
krtj||�\}}|s�|jd�dS|jd�|jj
||�n|jd|�dS(
Ntmanage_etc_hoststaddonsttemplates<Option 'manage_etc_hosts' was set, but no hostname was foundshosts.%ss.No hosts template could be found for distro %ss
/etc/hoststhostnametfqdnt	localhosts Managing localhost in /etc/hostssXConfiguration option 'manage_etc_hosts' is not set, not managing /etc/hosts in module %s(Rtget_cfg_option_strtFalsettranslate_booltget_hostname_fqdntwarningtget_template_filenametdistrotosfamilytRuntimeErrorRtrender_to_filetdebugtupdate_etc_hosts(	tnametcfgtcloudtlogt_argstmanage_hostsRRttpl_fn_name((sH/usr/lib/python2.7/site-packages/cloudinit/config/cc_update_etc_hosts.pythandle<s,
	

	N(t__doc__t	cloudinitRRtcloudinit.settingsRt	frequencyR(((sH/usr/lib/python2.7/site-packages/cloudinit/config/cc_update_etc_hosts.pyt<module>2s