|
Packit Service |
751c4a |
"""Tests for tools/render-cloudcfg"""
|
|
Packit Service |
751c4a |
|
|
Packit Service |
751c4a |
import os
|
|
Packit Service |
751c4a |
import sys
|
|
Packit Service |
751c4a |
|
|
Packit Service |
751c4a |
import pytest
|
|
Packit Service |
751c4a |
|
|
Packit Service |
751c4a |
from cloudinit import subp
|
|
Packit Service |
751c4a |
from cloudinit import util
|
|
Packit Service |
751c4a |
|
|
Packit Service |
751c4a |
# TODO(Look to align with tools.render-cloudcfg or cloudinit.distos.OSFAMILIES)
|
|
Packit Service |
751c4a |
DISTRO_VARIANTS = ["amazon", "arch", "centos", "debian", "fedora", "freebsd",
|
|
Packit Service |
751c4a |
"netbsd", "openbsd", "rhel", "suse", "ubuntu", "unknown"]
|
|
Packit Service |
751c4a |
|
|
Packit Service |
751c4a |
|
|
Packit Service |
751c4a |
@pytest.mark.allow_subp_for(sys.executable)
|
|
Packit Service |
751c4a |
class TestRenderCloudCfg:
|
|
Packit Service |
751c4a |
|
|
Packit Service |
751c4a |
cmd = [sys.executable, os.path.realpath('tools/render-cloudcfg')]
|
|
Packit Service |
751c4a |
tmpl_path = os.path.realpath('config/cloud.cfg.tmpl')
|
|
Packit Service |
751c4a |
|
|
Packit Service |
751c4a |
@pytest.mark.parametrize('variant', (DISTRO_VARIANTS))
|
|
Packit Service |
751c4a |
def test_variant_sets_distro_in_cloud_cfg(self, variant, tmpdir):
|
|
Packit Service |
751c4a |
outfile = tmpdir.join('outcfg').strpath
|
|
Packit Service |
751c4a |
subp.subp(
|
|
Packit Service |
751c4a |
self.cmd + ['--variant', variant, self.tmpl_path, outfile])
|
|
Packit Service |
751c4a |
with open(outfile) as stream:
|
|
Packit Service |
751c4a |
system_cfg = util.load_yaml(stream.read())
|
|
Packit Service |
751c4a |
if variant == 'unknown':
|
|
Packit Service |
751c4a |
variant = 'ubuntu' # Unknown is defaulted to ubuntu
|
|
Packit Service |
751c4a |
assert system_cfg['system_info']['distro'] == variant
|
|
Packit Service |
751c4a |
|
|
Packit Service |
751c4a |
@pytest.mark.parametrize('variant', (DISTRO_VARIANTS))
|
|
Packit Service |
751c4a |
def test_variant_sets_default_user_in_cloud_cfg(self, variant, tmpdir):
|
|
Packit Service |
751c4a |
outfile = tmpdir.join('outcfg').strpath
|
|
Packit Service |
751c4a |
subp.subp(
|
|
Packit Service |
751c4a |
self.cmd + ['--variant', variant, self.tmpl_path, outfile])
|
|
Packit Service |
751c4a |
with open(outfile) as stream:
|
|
Packit Service |
751c4a |
system_cfg = util.load_yaml(stream.read())
|
|
Packit Service |
751c4a |
|
|
Packit Service |
751c4a |
default_user_exceptions = {
|
|
Packit Service |
751c4a |
'amazon': 'ec2-user', 'debian': 'ubuntu', 'unknown': 'ubuntu'}
|
|
Packit Service |
751c4a |
default_user = system_cfg['system_info']['default_user']['name']
|
|
Packit Service |
751c4a |
assert default_user == default_user_exceptions.get(variant, variant)
|
|
Packit Service |
751c4a |
|
|
Packit Service |
751c4a |
@pytest.mark.parametrize('variant,renderers', (
|
|
Packit Service |
751c4a |
('freebsd', ['freebsd']), ('netbsd', ['netbsd']),
|
|
Packit Service |
751c4a |
('openbsd', ['openbsd']), ('ubuntu', ['netplan', 'eni', 'sysconfig']))
|
|
Packit Service |
751c4a |
)
|
|
Packit Service |
751c4a |
def test_variant_sets_network_renderer_priority_in_cloud_cfg(
|
|
Packit Service |
751c4a |
self, variant, renderers, tmpdir
|
|
Packit Service |
751c4a |
):
|
|
Packit Service |
751c4a |
outfile = tmpdir.join('outcfg').strpath
|
|
Packit Service |
751c4a |
subp.subp(
|
|
Packit Service |
751c4a |
self.cmd + ['--variant', variant, self.tmpl_path, outfile])
|
|
Packit Service |
751c4a |
with open(outfile) as stream:
|
|
Packit Service |
751c4a |
system_cfg = util.load_yaml(stream.read())
|
|
Packit Service |
751c4a |
|
|
Packit Service |
751c4a |
assert renderers == system_cfg['system_info']['network']['renderers']
|