diff options
| author | Joshua Harlow <harlowja@yahoo-inc.com> | 2012-06-16 12:14:54 -0700 | 
|---|---|---|
| committer | Joshua Harlow <harlowja@yahoo-inc.com> | 2012-06-16 12:14:54 -0700 | 
| commit | 75b46cc80c6a9ab65c3c7f430ffaa4157d0db369 (patch) | |
| tree | 710f157ce2bdd3cd4c593ef2f726dd6eaa177a51 /cloudinit/transforms/update_etc_hosts.py | |
| parent | 68e710207900ff8d933da6f79adc84bce980685d (diff) | |
| download | vyos-cloud-init-75b46cc80c6a9ab65c3c7f430ffaa4157d0db369.tar.gz vyos-cloud-init-75b46cc80c6a9ab65c3c7f430ffaa4157d0db369.zip  | |
Remove the need to have transforms start with "cc_".
1. Just let them have no prefix (ie blank) unless this isn't wanted later.
Diffstat (limited to 'cloudinit/transforms/update_etc_hosts.py')
| -rw-r--r-- | cloudinit/transforms/update_etc_hosts.py | 59 | 
1 files changed, 59 insertions, 0 deletions
diff --git a/cloudinit/transforms/update_etc_hosts.py b/cloudinit/transforms/update_etc_hosts.py new file mode 100644 index 00000000..d0e56183 --- /dev/null +++ b/cloudinit/transforms/update_etc_hosts.py @@ -0,0 +1,59 @@ +# vi: ts=4 expandtab +# +#    Copyright (C) 2011 Canonical Ltd. +#    Copyright (C) 2012 Hewlett-Packard Development Company, L.P. +# +#    Author: Scott Moser <scott.moser@canonical.com> +#    Author: Juerg Haefliger <juerg.haefliger@hp.com> +# +#    This program is free software: you can redistribute it and/or modify +#    it under the terms of the GNU General Public License version 3, as +#    published by the Free Software Foundation. +# +#    This program is distributed in the hope that it will be useful, +#    but WITHOUT ANY WARRANTY; without even the implied warranty of +#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +#    GNU General Public License for more details. +# +#    You should have received a copy of the GNU General Public License +#    along with this program.  If not, see <http://www.gnu.org/licenses/>. + +from cloudinit import util +from cloudinit import templater + +from cloudinit.settings import PER_ALWAYS + +frequency = PER_ALWAYS + + +def handle(name, cfg, cloud, log, _args): +    manage_hosts = util.get_cfg_option_str(cfg, "manage_etc_hosts", False) +    if util.translate_bool(manage_hosts, addons=['template']): +        (hostname, fqdn) = util.get_hostname_fqdn(cfg, cloud) +        if not hostname: +            log.warn(("Option 'manage_etc_hosts' was set," +                     " but no hostname was found")) +            return + +        # Render from a template file +        distro_n = cloud.distro.name +        tpl_fn_name = cloud.get_template_filename("hosts.%s" % (distro_n)) +        if not tpl_fn_name: +            raise Exception(("No hosts template could be" +                             " found for distro %s") % (distro_n)) + +        templater.render_to_file(tpl_fn_name, '/etc/hosts', +                                {'hostname': hostname, 'fqdn': fqdn}) + +    elif manage_hosts == "localhost": +        (hostname, fqdn) = util.get_hostname_fqdn(cfg, cloud) +        if not hostname: +            log.warn(("Option 'manage_etc_hosts' was set," +                     " but no hostname was found")) +            return + +        log.debug("Managing localhost in /etc/hosts") +        cloud.distro.update_etc_hosts(hostname, fqdn) +    else: +        log.debug(("Configuration option 'manage_etc_hosts' is not set," +                    " not managing /etc/hosts in transform %s"), name)  | 
