|
Packit Service |
a04d08 |
# This file is part of cloud-init. See LICENSE file for license information.
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
from cloudinit.config import cc_update_etc_hosts
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
from cloudinit import cloud
|
|
Packit Service |
a04d08 |
from cloudinit import distros
|
|
Packit Service |
a04d08 |
from cloudinit import helpers
|
|
Packit Service |
a04d08 |
from cloudinit import util
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
from cloudinit.tests import helpers as t_help
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
import logging
|
|
Packit Service |
a04d08 |
import os
|
|
Packit Service |
a04d08 |
import shutil
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
LOG = logging.getLogger(__name__)
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
class TestHostsFile(t_help.FilesystemMockingTestCase):
|
|
Packit Service |
a04d08 |
def setUp(self):
|
|
Packit Service |
a04d08 |
super(TestHostsFile, self).setUp()
|
|
Packit Service |
a04d08 |
self.tmp = self.tmp_dir()
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
def _fetch_distro(self, kind):
|
|
Packit Service |
a04d08 |
cls = distros.fetch(kind)
|
|
Packit Service |
a04d08 |
paths = helpers.Paths({})
|
|
Packit Service |
a04d08 |
return cls(kind, {}, paths)
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
def test_write_etc_hosts_suse_localhost(self):
|
|
Packit Service |
a04d08 |
cfg = {
|
|
Packit Service |
a04d08 |
'manage_etc_hosts': 'localhost',
|
|
Packit Service |
a04d08 |
'hostname': 'cloud-init.test.us'
|
|
Packit Service |
a04d08 |
}
|
|
Packit Service |
a04d08 |
os.makedirs('%s/etc/' % self.tmp)
|
|
Packit Service |
a04d08 |
hosts_content = '192.168.1.1 blah.blah.us blah\n'
|
|
Packit Service |
a04d08 |
fout = open('%s/etc/hosts' % self.tmp, 'w')
|
|
Packit Service |
a04d08 |
fout.write(hosts_content)
|
|
Packit Service |
a04d08 |
fout.close()
|
|
Packit Service |
a04d08 |
distro = self._fetch_distro('sles')
|
|
Packit Service |
a04d08 |
distro.hosts_fn = '%s/etc/hosts' % self.tmp
|
|
Packit Service |
a04d08 |
paths = helpers.Paths({})
|
|
Packit Service |
a04d08 |
ds = None
|
|
Packit Service |
a04d08 |
cc = cloud.Cloud(ds, paths, {}, distro, None)
|
|
Packit Service |
a04d08 |
self.patchUtils(self.tmp)
|
|
Packit Service |
a04d08 |
cc_update_etc_hosts.handle('test', cfg, cc, LOG, [])
|
|
Packit Service |
a04d08 |
contents = util.load_file('%s/etc/hosts' % self.tmp)
|
|
Packit Service |
751c4a |
if '127.0.1.1\tcloud-init.test.us\tcloud-init' not in contents:
|
|
Packit Service |
751c4a |
self.assertIsNone('No entry for 127.0.1.1 in etc/hosts')
|
|
Packit Service |
a04d08 |
if '192.168.1.1\tblah.blah.us\tblah' not in contents:
|
|
Packit Service |
a04d08 |
self.assertIsNone('Default etc/hosts content modified')
|
|
Packit Service |
a04d08 |
|
|
Packit Service |
a04d08 |
@t_help.skipUnlessJinja()
|
|
Packit Service |
a04d08 |
def test_write_etc_hosts_suse_template(self):
|
|
Packit Service |
a04d08 |
cfg = {
|
|
Packit Service |
a04d08 |
'manage_etc_hosts': 'template',
|
|
Packit Service |
a04d08 |
'hostname': 'cloud-init.test.us'
|
|
Packit Service |
a04d08 |
}
|
|
Packit Service |
a04d08 |
shutil.copytree('templates', '%s/etc/cloud/templates' % self.tmp)
|
|
Packit Service |
a04d08 |
distro = self._fetch_distro('sles')
|
|
Packit Service |
a04d08 |
paths = helpers.Paths({})
|
|
Packit Service |
a04d08 |
paths.template_tpl = '%s' % self.tmp + '/etc/cloud/templates/%s.tmpl'
|
|
Packit Service |
a04d08 |
ds = None
|
|
Packit Service |
a04d08 |
cc = cloud.Cloud(ds, paths, {}, distro, None)
|
|
Packit Service |
a04d08 |
self.patchUtils(self.tmp)
|
|
Packit Service |
a04d08 |
cc_update_etc_hosts.handle('test', cfg, cc, LOG, [])
|
|
Packit Service |
a04d08 |
contents = util.load_file('%s/etc/hosts' % self.tmp)
|
|
Packit Service |
751c4a |
if '127.0.1.1 cloud-init.test.us cloud-init' not in contents:
|
|
Packit Service |
751c4a |
self.assertIsNone('No entry for 127.0.1.1 in etc/hosts')
|
|
Packit Service |
a04d08 |
if '::1 cloud-init.test.us cloud-init' not in contents:
|
|
Packit Service |
a04d08 |
self.assertIsNone('No entry for 127.0.0.1 in etc/hosts')
|