123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- # -*- coding: utf-8 -*-
- """
- Test the lxc module
- """
- from __future__ import absolute_import, print_function, unicode_literals
- import pytest
- from salt.ext import six
- from tests.support.case import ModuleCase
- from tests.support.helpers import skip_if_binaries_missing, skip_if_not_root
- from tests.support.unit import skipIf
- @skipIf(
- True,
- "Needs rewrite to be more distro agnostic. Also, the tearDown "
- "function destroys ALL containers on the box, which is BAD.",
- )
- @skip_if_not_root
- @skip_if_binaries_missing(
- "lxc-start", message="LXC is not installed or minimal version not met"
- )
- @pytest.mark.windows_whitelisted
- class LXCModuleTest(ModuleCase):
- """
- Test the lxc module
- """
- prefix = "_salttesting"
- def setUp(self):
- os = self.run_function("grains.item", ["os", "oscodename", "osarch"])
- p = {
- "download": {
- "dist": os["os"].lower(),
- "arch": os["osarch"].lower(),
- "template": "download",
- "release": os["oscodename"].lower(),
- },
- "sshd": {"template": "sshd"},
- }
- self.run_function("grains.setval", ["lxc.profile", p])
- def tearDown(self):
- """
- Clean up any LXCs created.
- """
- r = self.run_function("lxc.list")
- for k, v in six.iteritems(r):
- for x in v:
- if x.startswith(self.prefix):
- self.run_function("lxc.destroy", [x])
- def test_create_destroy(self):
- """
- Test basic create/destroy of an LXC.
- """
- r = self.run_function("lxc.create", [self.prefix], template="sshd")
- self.assertEqual(r, {"state": {"new": "stopped", "old": None}, "result": True})
- self.assertTrue(self.run_function("lxc.exists", [self.prefix]))
- r = self.run_function("lxc.destroy", [self.prefix])
- self.assertEqual(r, {"state": None, "change": True})
- self.assertFalse(self.run_function("lxc.exists", [self.prefix]))
- def test_init(self):
- """
- Test basic init functionality.
- """
- r = self.run_function("lxc.init", [self.prefix], profile="sshd", seed=False)
- self.assertTrue(r.get("created", False))
- self.assertTrue(self.run_function("lxc.exists", [self.prefix]))
- def test_macvlan(self):
- """
- Regression test for macvlan nic profile.
- """
- p = {
- "macvlan": {
- "eth0": {"macvlan.mode": "bridge", "link": "eth0", "type": "macvlan"}
- }
- }
- self.run_function("grains.setval", ["lxc.nic", p])
- self.run_function(
- "lxc.init",
- [self.prefix],
- profile="sshd",
- nic="macvlan",
- seed=False,
- start=False,
- )
- f = "/var/lib/lxc/{0}/config".format(self.prefix)
- conf = self.run_function("lxc.read_conf", [f])
- # Due to a segfault in lxc-destroy caused by invalid configs,
- # truncate the config.
- self.run_function("cmd.run", ["truncate -s 0 {0}".format(f)])
- self.assertEqual(conf.get("lxc.network.type"), "macvlan")
|