summaryrefslogtreecommitdiff
path: root/tests/vmtests/test_network_bonding.py
blob: 913c7ff319d0583d19afbee1847bf3e341108c70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# This file is part of curtin. See LICENSE file for copyright and license info.

from .releases import base_vm_classes as relbase
from .test_network import TestNetworkBaseTestsAbs
from .releases import centos_base_vm_classes as centos_relbase

import textwrap


class TestNetworkBondingAbs(TestNetworkBaseTestsAbs):
    conf_file = "examples/tests/bonding_network.yaml"

    def test_ifenslave_package_status(self):
        """ifenslave is expected installed in Ubuntu < artful."""
        rel = self.target_release
        pkg = "ifenslave"
        if rel in ("precise", "trusty", "xenial"):
            self.assertIn(
                pkg, self.debian_packages,
                "%s package expected in %s but not found" % (pkg, rel))
        else:
            self.assertNotIn(
                pkg, self.debian_packages,
                "%s package found but not expected in %s" % (pkg, rel))


class CentosTestNetworkBondingAbs(TestNetworkBondingAbs):
    extra_collect_scripts = TestNetworkBondingAbs.extra_collect_scripts + [
        textwrap.dedent("""
            cd OUTPUT_COLLECT_D
            cp -a /etc/sysconfig/network-scripts .
            cp -a /var/log/cloud-init* .
            cp -a /var/lib/cloud ./var_lib_cloud
            cp -a /run/cloud-init ./run_cloud-init
            rpm -qf `which ifenslave` |tee ifenslave_installed

            exit 0
        """)]

    def test_ifenslave_package_status(self):
        status = self.load_collect_file("ifenslave_installed")
        self.logger.debug('ifenslave installed: {}'.format(status))
        self.assertTrue('iputils' in status)

    def test_etc_network_interfaces(self):
        pass

    def test_etc_resolvconf(self):
        pass


class XenialTestBonding(relbase.xenial, TestNetworkBondingAbs):
    __test__ = True


class BionicTestBonding(relbase.bionic, TestNetworkBondingAbs):
    __test__ = True


class EoanTestBonding(relbase.eoan, TestNetworkBondingAbs):
    __test__ = True


class FocalTestBonding(relbase.focal, TestNetworkBondingAbs):
    __test__ = True


class Centos66TestNetworkBonding(centos_relbase.centos66_xenial,
                                 CentosTestNetworkBondingAbs):
    __test__ = True


class Centos70TestNetworkBonding(centos_relbase.centos70_xenial,
                                 CentosTestNetworkBondingAbs):
    __test__ = True

# vi: ts=4 expandtab syntax=python