diff -Nru curtin-17.1-6-g8b145067/curtin/commands/apt_config.py curtin-17.1-11-ga4c9636b/curtin/commands/apt_config.py --- curtin-17.1-6-g8b145067/curtin/commands/apt_config.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/curtin/commands/apt_config.py 2018-01-18 21:10:51.000000000 +0000 @@ -232,7 +232,12 @@ Checks for existance of the expected mirror and warns if not found """ if mirror not in tmpl: - LOG.warn("Expected mirror '%s' not found in: %s", mirror, tmpl) + if mirror.endswith("/") and mirror[:-1] in tmpl: + LOG.debug("mirror_to_placeholder: '%s' did not exist in tmpl, " + "did without a trailing /. Accomodating.", mirror) + mirror = mirror[:-1] + else: + LOG.warn("Expected mirror '%s' not found in: %s", mirror, tmpl) return tmpl.replace(mirror, placeholder) diff -Nru curtin-17.1-6-g8b145067/debian/changelog curtin-17.1-11-ga4c9636b/debian/changelog --- curtin-17.1-6-g8b145067/debian/changelog 2018-01-16 21:24:44.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/debian/changelog 2018-01-18 21:30:09.000000000 +0000 @@ -1,3 +1,14 @@ +curtin (17.1-11-ga4c9636b-0ubuntu1~16.04.1) xenial; urgency=medium + + * New upstream snapshot. (LP: #1743618) + - tests: cleanup the apt custom sources test. + - apt: Be more lenient when replacing mirrors in /etc/apt/sources.list + - vmtest: Drop Zesty release + - vmtest: initialize logger with class names for easy parsing + - packaging: Do not mention primary contributors in debian/changelog. + + -- Ryan Harper Thu, 18 Jan 2018 15:30:09 -0600 + curtin (17.1-6-g8b145067-0ubuntu1~16.04.1) xenial; urgency=medium * New upstream snapshot. (LP: #1743618) diff -Nru curtin-17.1-6-g8b145067/debian/new-upstream-snapshot curtin-17.1-11-ga4c9636b/debian/new-upstream-snapshot --- curtin-17.1-6-g8b145067/debian/new-upstream-snapshot 2018-01-16 21:24:44.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/debian/new-upstream-snapshot 2018-01-18 21:30:09.000000000 +0000 @@ -17,6 +17,10 @@ local subject="$1" author="$2" bugs="$3" aname="" buf="" abugs="" local indent=" - " indent2=" " ll=79 aname=${author% <*} + local skipname="" + case "$aname" in + Scott*Moser|Ryan*Harper) aname="";; + esac [ "${aname}" = "Scott Moser" ] && aname="" abugs="${aname:+ [${aname}]}${bugs:+ (LP: ${bugs})}" if [ $((${#subject}+${#abugs})) -le $(($ll-${#indent})) ]; then diff -Nru curtin-17.1-6-g8b145067/tests/unittests/test_apt_custom_sources_list.py curtin-17.1-11-ga4c9636b/tests/unittests/test_apt_custom_sources_list.py --- curtin-17.1-6-g8b145067/tests/unittests/test_apt_custom_sources_list.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/unittests/test_apt_custom_sources_list.py 2018-01-18 21:10:51.000000000 +0000 @@ -4,10 +4,10 @@ import logging import os - -import yaml import mock from mock import call +import textwrap +import yaml from curtin import util from curtin.commands import apt_config @@ -137,31 +137,88 @@ self._apt_source_list(cfg, EXPECTED_PRIMSEC_CONTENT) - @staticmethod - def test_apt_srcl_custom(): + def test_apt_srcl_custom(self): """test_apt_srcl_custom - Test rendering a custom source template""" cfg = yaml.safe_load(YAML_TEXT_CUSTOM_SL) + target = self.new_root arch = util.get_architecture() # would fail inside the unittest context - with mock.patch.object(util, 'get_architecture', - return_value=arch) as mockga: - with mock.patch.object(util, 'write_file') as mockwrite: - # keep it side effect free and avoid permission errors - with mock.patch.object(os, 'rename'): - with mock.patch.object(util, 'lsb_release', - return_value={'codename': - 'fakerel'}): - apt_config.handle_apt(cfg, TARGET) - - mockga.assert_called_with("/") - cloudfile = '/etc/cloud/cloud.cfg.d/curtin-preserve-sources.cfg' - cloudconf = yaml.dump({'apt_preserve_sources_list': True}, indent=1) - calls = [call(util.target_path(TARGET, '/etc/apt/sources.list'), - EXPECTED_CONVERTED_CONTENT, mode=0o644), - call(util.target_path(TARGET, cloudfile), cloudconf, - mode=0o644)] - mockwrite.assert_has_calls(calls) + with mock.patch.object(util, 'get_architecture', return_value=arch): + with mock.patch.object(util, 'lsb_release', + return_value={'codename': 'fakerel'}): + apt_config.handle_apt(cfg, target) + + self.assertEqual( + EXPECTED_CONVERTED_CONTENT, + util.load_file(util.target_path(target, "/etc/apt/sources.list"))) + cloudfile = util.target_path( + target, '/etc/cloud/cloud.cfg.d/curtin-preserve-sources.cfg') + self.assertEqual({'apt_preserve_sources_list': True}, + yaml.load(util.load_file(cloudfile))) + + @mock.patch("curtin.util.lsb_release") + @mock.patch("curtin.util.get_architecture", return_value="amd64") + def test_trusty_source_lists(self, m_get_arch, m_lsb_release): + """Support mirror equivalency with and without trailing /. + + Trusty official images do not have a trailing slash on + http://archive.ubuntu.com/ubuntu .""" + + orig_primary = apt_config.PRIMARY_ARCH_MIRRORS['PRIMARY'] + orig_security = apt_config.PRIMARY_ARCH_MIRRORS['SECURITY'] + msg = "Test is invalid. %s mirror does not end in a /." + self.assertEqual(orig_primary[-1], "/", msg % "primary") + self.assertEqual(orig_security[-1], "/", msg % "security") + orig_primary = orig_primary[:-1] + orig_security = orig_security[:-1] + + m_lsb_release.return_value = { + 'codename': 'trusty', 'description': 'Ubuntu 14.04.5 LTS', + 'id': 'Ubuntu', 'release': '14.04'} + + target = self.new_root + my_primary = 'http://fixed-primary.ubuntu.com/ubuntu' + my_security = 'http://fixed-security.ubuntu.com/ubuntu' + cfg = { + 'preserve_sources_list': False, + 'primary': [{'arches': ['amd64'], 'uri': my_primary}], + 'security': [{'arches': ['amd64'], 'uri': my_security}]} + + # this is taken from a trusty image /etc/apt/sources.list + tmpl = textwrap.dedent("""\ + deb {mirror} {release} {comps} + deb {mirror} {release}-updates {comps} + deb {mirror} {release}-backports {comps} + deb {security} {release}-security {comps} + # not modified + deb http://my.example.com/updates testing main + """) + + release = 'trusty' + comps = 'main universe multiverse restricted' + easl = util.target_path(target, 'etc/apt/sources.list') + + orig_content = tmpl.format( + mirror=orig_primary, security=orig_security, + release=release, comps=comps) + orig_content_slash = tmpl.format( + mirror=orig_primary + "/", security=orig_security + "/", + release=release, comps=comps) + expected = tmpl.format( + mirror=my_primary, security=my_security, + release=release, comps=comps) + + # Avoid useless test. Make sure the strings don't start out equal. + self.assertNotEqual(expected, orig_content) + + util.write_file(easl, orig_content) + apt_config.handle_apt(cfg, target) + self.assertEqual(expected, util.load_file(easl)) + + util.write_file(easl, orig_content_slash) + apt_config.handle_apt(cfg, target) + self.assertEqual(expected, util.load_file(easl)) # vi: ts=4 expandtab diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/__init__.py curtin-17.1-11-ga4c9636b/tests/vmtests/__init__.py --- curtin-17.1-6-g8b145067/tests/vmtests/__init__.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/__init__.py 2018-01-18 21:10:51.000000000 +0000 @@ -108,11 +108,13 @@ return _TOPDIR -def _initialize_logging(): +def _initialize_logging(name=None): # Configure logging module to save output to disk and present it on # sys.stderr + if not name: + name = __name__ - logger = logging.getLogger(__name__) + logger = logging.getLogger(name) logger.setLevel(logging.DEBUG) formatter = logging.Formatter( @@ -364,6 +366,7 @@ boot_cloudconf = None install_timeout = INSTALL_TIMEOUT interactive = False + logger = None multipath = False multipath_num_paths = 2 nvme_disks = [] @@ -593,6 +596,12 @@ @classmethod def setUpClass(cls): + # initialize global logger with class name to help make sense of + # parallel vmtest runs which intermingle output. + global logger + logger = _initialize_logging(name=cls.__name__) + cls.logger = logger + # check if we should skip due to host arch if cls.arch in cls.arch_skip: reason = "{} is not supported on arch {}".format(cls.__name__, diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/releases.py curtin-17.1-11-ga4c9636b/tests/vmtests/releases.py --- curtin-17.1-6-g8b145067/tests/vmtests/releases.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/releases.py 2018-01-18 21:10:51.000000000 +0000 @@ -93,10 +93,6 @@ subarch = "hwe-16.04-edge" -class _ZestyBase(_UbuntuBase): - release = "zesty" - - class _ArtfulBase(_UbuntuBase): release = "artful" @@ -116,7 +112,6 @@ xenial_ga = _XenialGA xenial_hwe = _XenialHWE xenial_edge = _XenialEdge - zesty = _ZestyBase artful = _ArtfulBase bionic = _BionicBase diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_apt_config_cmd.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_apt_config_cmd.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_apt_config_cmd.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_apt_config_cmd.py 2018-01-18 21:10:51.000000000 +0000 @@ -55,10 +55,6 @@ __test__ = True -class ZestyTestAptConfigCMDCMD(relbase.zesty, TestAptConfigCMD): - __test__ = True - - class ArtfulTestAptConfigCMDCMD(relbase.artful, TestAptConfigCMD): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_basic.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_basic.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_basic.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_basic.py 2018-01-18 21:10:51.000000000 +0000 @@ -167,10 +167,6 @@ __test__ = True -class ZestyTestBasic(relbase.zesty, TestBasicAbs): - __test__ = True - - class ArtfulTestBasic(relbase.artful, TestBasicAbs): __test__ = True @@ -288,10 +284,6 @@ __test__ = True -class ZestyTestScsiBasic(relbase.zesty, TestBasicScsiAbs): - __test__ = True - - class ArtfulTestScsiBasic(relbase.artful, TestBasicScsiAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_bcache_basic.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_bcache_basic.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_bcache_basic.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_bcache_basic.py 2018-01-18 21:10:51.000000000 +0000 @@ -63,10 +63,6 @@ __test__ = True -class ZestyBcacheBasic(relbase.zesty, TestBcacheBasic): - __test__ = True - - class ArtfulBcacheBasic(relbase.artful, TestBcacheBasic): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_bcache_bug1718699.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_bcache_bug1718699.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_bcache_bug1718699.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_bcache_bug1718699.py 2018-01-18 21:10:51.000000000 +0000 @@ -13,10 +13,6 @@ __test__ = True -class ZestyTestBcacheBug1718699(relbase.zesty, TestBcacheBug1718699): - __test__ = True - - class ArtfulTestBcacheBug1718699(relbase.artful, TestBcacheBug1718699): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_iscsi.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_iscsi.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_iscsi.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_iscsi.py 2018-01-18 21:10:51.000000000 +0000 @@ -63,10 +63,6 @@ __test__ = True -class ZestyTestIscsiBasic(relbase.zesty, TestBasicIscsiAbs): - __test__ = True - - class ArtfulTestIscsiBasic(relbase.artful, TestBasicIscsiAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_lvm_iscsi.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_lvm_iscsi.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_lvm_iscsi.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_lvm_iscsi.py 2018-01-18 21:10:51.000000000 +0000 @@ -67,10 +67,6 @@ __test__ = True -class ZestyTestIscsiLvm(relbase.zesty, TestLvmIscsiAbs): - __test__ = True - - class ArtfulTestIscsiLvm(relbase.artful, TestLvmIscsiAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_lvm.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_lvm.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_lvm.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_lvm.py 2018-01-18 21:10:51.000000000 +0000 @@ -68,10 +68,6 @@ __test__ = True -class ZestyTestLvm(relbase.zesty, TestLvmAbs): - __test__ = True - - class ArtfulTestLvm(relbase.artful, TestLvmAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_mdadm_bcache.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_mdadm_bcache.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_mdadm_bcache.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_mdadm_bcache.py 2018-01-18 21:10:51.000000000 +0000 @@ -144,10 +144,6 @@ __test__ = True -class ZestyTestMdadmBcache(relbase.zesty, TestMdadmBcacheAbs): - __test__ = True - - class ArtfulTestMdadmBcache(relbase.artful, TestMdadmBcacheAbs): __test__ = True @@ -196,10 +192,6 @@ __test__ = True -class ZestyTestMirrorboot(relbase.zesty, TestMirrorbootAbs): - __test__ = True - - class ArtfulTestMirrorboot(relbase.artful, TestMirrorbootAbs): __test__ = True @@ -252,11 +244,6 @@ __test__ = True -class ZestyTestMirrorbootPartitions(relbase.zesty, - TestMirrorbootPartitionsAbs): - __test__ = True - - class ArtfulTestMirrorbootPartitions(relbase.artful, TestMirrorbootPartitionsAbs): __test__ = True @@ -310,11 +297,6 @@ __test__ = True -class ZestyTestMirrorbootPartitionsUEFI(relbase.zesty, - TestMirrorbootPartitionsUEFIAbs): - __test__ = True - - class ArtfulTestMirrorbootPartitionsUEFI(relbase.artful, TestMirrorbootPartitionsUEFIAbs): __test__ = True @@ -366,10 +348,6 @@ __test__ = True -class ZestyTestRaid5boot(relbase.zesty, TestRaid5bootAbs): - __test__ = True - - class ArtfulTestRaid5boot(relbase.artful, TestRaid5bootAbs): __test__ = True @@ -431,10 +409,6 @@ __test__ = True -class ZestyTestRaid6boot(relbase.zesty, TestRaid6bootAbs): - __test__ = True - - class ArtfulTestRaid6boot(relbase.artful, TestRaid6bootAbs): __test__ = True @@ -484,10 +458,6 @@ __test__ = True -class ZestyTestRaid10boot(relbase.zesty, TestRaid10bootAbs): - __test__ = True - - class ArtfulTestRaid10boot(relbase.artful, TestRaid10bootAbs): __test__ = True @@ -597,10 +567,6 @@ __test__ = True -class ZestyTestAllindata(relbase.zesty, TestAllindataAbs): - __test__ = True - - class ArtfulTestAllindata(relbase.artful, TestAllindataAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_mdadm_iscsi.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_mdadm_iscsi.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_mdadm_iscsi.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_mdadm_iscsi.py 2018-01-18 21:10:51.000000000 +0000 @@ -38,10 +38,6 @@ __test__ = True -class ZestyTestIscsiMdadm(relbase.zesty, TestMdadmIscsiAbs): - __test__ = True - - class ArtfulTestIscsiMdadm(relbase.artful, TestMdadmIscsiAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_multipath.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_multipath.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_multipath.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_multipath.py 2018-01-18 21:10:51.000000000 +0000 @@ -64,10 +64,6 @@ __test__ = True -class ZestyTestMultipathBasic(relbase.zesty, TestMultipathBasicAbs): - __test__ = True - - class ArtfulTestMultipathBasic(relbase.artful, TestMultipathBasicAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_network_alias.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_alias.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_network_alias.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_alias.py 2018-01-18 21:10:51.000000000 +0000 @@ -68,10 +68,6 @@ __test__ = True -class ZestyTestNetworkAlias(relbase.zesty, TestNetworkAliasAbs): - __test__ = True - - class ArtfulTestNetworkAlias(relbase.artful, TestNetworkAliasAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_network_bonding.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_bonding.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_network_bonding.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_bonding.py 2018-01-18 21:10:51.000000000 +0000 @@ -1,4 +1,3 @@ -from . import logger from .releases import base_vm_classes as relbase from .test_network import TestNetworkBaseTestsAbs from .releases import centos_base_vm_classes as centos_relbase @@ -28,7 +27,7 @@ def test_ifenslave_installed(self): status = self.load_collect_file("ifenslave_installed") - logger.debug('ifenslave installed: {}'.format(status)) + self.logger.debug('ifenslave installed: {}'.format(status)) self.assertTrue('iputils' in status) def test_etc_network_interfaces(self): @@ -62,10 +61,6 @@ __test__ = True -class ZestyTestBonding(relbase.zesty, TestNetworkBondingAbs): - __test__ = True - - class ArtfulTestBonding(relbase.artful, TestNetworkBondingAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_network_bridging.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_bridging.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_network_bridging.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_bridging.py 2018-01-18 21:10:51.000000000 +0000 @@ -1,4 +1,3 @@ -from . import logger from .releases import base_vm_classes as relbase from .releases import centos_base_vm_classes as centos_relbase from .test_network import TestNetworkBaseTestsAbs @@ -154,7 +153,7 @@ if self._network_renderer() == "systemd-networkd": reason = ("%s: skip until lp#1668347" " is fixed" % self.__class__) - logger.warn('Skipping: %s', reason) + self.logger.warn('Skipping: %s', reason) print(reason) return @@ -203,7 +202,7 @@ def test_bridge_utils_installed(self): self.output_files_exist(["bridge-utils_installed"]) status = self.load_collect_file("bridge-utils_installed").strip() - logger.debug('bridge-utils installed: {}'.format(status)) + self.logger.debug('bridge-utils installed: {}'.format(status)) self.assertTrue('bridge' in status) @@ -219,10 +218,6 @@ # only testing Yakkety or newer as older releases do not yet # have updated ifupdown/bridge-utils packages; -class ZestyTestBridging(relbase.zesty, TestBridgeNetworkAbs): - __test__ = True - - class ArtfulTestBridging(relbase.artful, TestBridgeNetworkAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_network_enisource.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_enisource.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_network_enisource.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_enisource.py 2018-01-18 21:10:51.000000000 +0000 @@ -1,4 +1,4 @@ -from . import logger, helpers +from . import helpers from .releases import base_vm_classes as relbase from .test_network import TestNetworkBaseTestsAbs @@ -51,16 +51,16 @@ subprocess.check_call(cmd, stderr=subprocess.STDOUT) curtin_ifaces = self.parse_deb_config(interfaces) - logger.debug('parsed eni dict:\n{}'.format( + self.logger.debug('parsed eni dict:\n{}'.format( yaml.dump(curtin_ifaces, default_flow_style=False, indent=4))) print('parsed eni dict:\n{}'.format( yaml.dump(curtin_ifaces, default_flow_style=False, indent=4))) ip_a = self.load_collect_file("ip_a") - logger.debug('ip a:\n{}'.format(ip_a)) + self.logger.debug('ip a:\n{}'.format(ip_a)) ip_a_dict = helpers.ip_a_to_dict(ip_a) - logger.debug('parsed ip_a dict:\n{}'.format( + self.logger.debug('parsed ip_a dict:\n{}'.format( yaml.dump(ip_a_dict, default_flow_style=False, indent=4))) print('parsed ip_a dict:\n{}'.format( yaml.dump(ip_a_dict, default_flow_style=False, indent=4))) @@ -93,8 +93,4 @@ __test__ = True -class ZestyTestNetworkENISource(relbase.zesty, TestNetworkENISource): - __test__ = True - - # Artful and later are deliberately not present. They do not have ifupdown. diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_network_ipv6_enisource.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_ipv6_enisource.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_network_ipv6_enisource.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_ipv6_enisource.py 2018-01-18 21:10:51.000000000 +0000 @@ -25,8 +25,4 @@ __test__ = True -class ZestyTestNetworkIPV6ENISource(relbase.zesty, TestNetworkIPV6ENISource): - __test__ = True - - # Artful and later are deliberately not present. They do not have ifupdown. diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_network_ipv6.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_ipv6.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_network_ipv6.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_ipv6.py 2018-01-18 21:10:51.000000000 +0000 @@ -63,10 +63,6 @@ __test__ = True -class ZestyTestNetworkIPV6(relbase.zesty, TestNetworkIPV6Abs): - __test__ = True - - class ArtfulTestNetworkIPV6(relbase.artful, TestNetworkIPV6Abs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_network_ipv6_static.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_ipv6_static.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_network_ipv6_static.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_ipv6_static.py 2018-01-18 21:10:51.000000000 +0000 @@ -44,10 +44,6 @@ __test__ = True -class ZestyTestNetworkIPV6Static(relbase.zesty, TestNetworkIPV6StaticAbs): - __test__ = True - - class ArtfulTestNetworkIPV6Static(relbase.artful, TestNetworkIPV6StaticAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_network_ipv6_vlan.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_ipv6_vlan.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_network_ipv6_vlan.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_ipv6_vlan.py 2018-01-18 21:10:51.000000000 +0000 @@ -25,10 +25,6 @@ __test__ = True -class ZestyTestNetworkIPV6Vlan(relbase.zesty, TestNetworkIPV6VlanAbs): - __test__ = True - - class ArtfulTestNetworkIPV6Vlan(relbase.artful, TestNetworkIPV6VlanAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_network_mtu.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_mtu.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_network_mtu.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_mtu.py 2018-01-18 21:10:51.000000000 +0000 @@ -188,10 +188,6 @@ __test__ = True -class ZestyTestNetworkMtu(relbase.zesty, TestNetworkMtuAbs): - __test__ = True - - class ArtfulTestNetworkMtu(relbase.artful, TestNetworkMtuAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_network.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_network.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_network.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_network.py 2018-01-18 21:10:51.000000000 +0000 @@ -1,4 +1,4 @@ -from . import VMBaseClass, logger, helpers +from . import VMBaseClass, helpers from .releases import base_vm_classes as relbase from .releases import centos_base_vm_classes as centos_relbase @@ -69,7 +69,7 @@ eni_cfg = "" eni = self.load_collect_file("interfaces") - logger.debug('etc/network/interfaces:\n{}'.format(eni)) + self.logger.debug('etc/network/interfaces:\n{}'.format(eni)) # we don't use collect_path as we're building a glob eni_dir = os.path.join(self.td.collect, "interfaces.d", "*.cfg") @@ -106,7 +106,7 @@ 'network passthrough not available on %s' % self.__class__) eni, eni_cfg = self.read_eni() - logger.debug('etc/network/interfaces:\n{}'.format(eni)) + self.logger.debug('etc/network/interfaces:\n{}'.format(eni)) expected_eni = self.get_expected_etc_network_interfaces() eni_lines = eni.split('\n') + eni_cfg.split('\n') @@ -172,13 +172,13 @@ } resolvconfpath = render2resolvconf.get(self._network_renderer(), None) self.assertTrue(resolvconfpath is not None) - logger.debug('Selected path to resolvconf: %s', resolvconfpath) + self.logger.debug('Selected path to resolvconf: %s', resolvconfpath) resolvconf = self.load_collect_file(resolvconfpath) - logger.debug('etc/resolv.conf:\n{}'.format(resolvconf)) + self.logger.debug('etc/resolv.conf:\n{}'.format(resolvconf)) resolv_lines = resolvconf.split('\n') - logger.debug('resolv.conf lines:\n{}'.format(resolv_lines)) + self.logger.debug('resolv.conf lines:\n{}'.format(resolv_lines)) # resolv.conf ''' nameserver X.Y.Z.A @@ -202,7 +202,7 @@ search: foo.bar ''' expected_ifaces = self.get_expected_etc_resolvconf() - logger.debug('parsed eni ifaces:\n{}'.format(expected_ifaces)) + self.logger.debug('parsed eni ifaces:\n{}'.format(expected_ifaces)) def _mk_dns_lines(dns_type, config): """ nameservers get a line per ns @@ -225,7 +225,7 @@ for k, v in iface.get('dns', {}).items(): print('k=%s v=%s' % (k, v)) for dns_line in _mk_dns_lines(k, v): - logger.debug('dns_line:%s', dns_line) + self.logger.debug('dns_line:%s', dns_line) self.assertTrue(dns_line in resolv_lines) def test_static_routes(self): @@ -263,24 +263,24 @@ def test_ip_output(self): '''check iproute2 'ip a' output with test input''' network_state = self.get_network_state() - logger.debug('expected_network_state:\n{}'.format( + self.logger.debug('expected_network_state:\n{}'.format( yaml.dump(network_state, default_flow_style=False, indent=4))) ip_a = self.load_collect_file("ip_a") - logger.debug('ip a:\n{}'.format(ip_a)) + self.logger.debug('ip a:\n{}'.format(ip_a)) ip_dict = helpers.ip_a_to_dict(ip_a) print('parsed ip_a dict:\n{}'.format( yaml.dump(ip_dict, default_flow_style=False, indent=4))) route_n = self.load_collect_file("route_n") - logger.debug("route -n:\n{}".format(route_n)) + self.logger.debug("route -n:\n{}".format(route_n)) route_6_n = self.load_collect_file("route_6_n") - logger.debug("route -6 -n:\n{}".format(route_6_n)) + self.logger.debug("route -6 -n:\n{}".format(route_6_n)) ip_route_show = self.load_collect_file("ip_route_show") - logger.debug("ip route show:\n{}".format(ip_route_show)) + self.logger.debug("ip route show:\n{}".format(ip_route_show)) for line in [line for line in ip_route_show.split('\n') if 'src' in line and not line.startswith('default')]: print('ip_route_show: line: %s' % line) @@ -292,7 +292,7 @@ line) if m: route_info = m.groupdict('') - logger.debug(route_info) + self.logger.debug(route_info) else: raise ValueError('Failed match ip_route_show line: %s' % line) @@ -399,8 +399,8 @@ configured_gws = __find_gw_config(subnet) print('iface:%s configured_gws: %s' % (ifname, configured_gws)) for gw_ip in configured_gws: - logger.debug('found a gateway in subnet config: %s', - gw_ip) + self.logger.debug('found a gateway in subnet config: %s', + gw_ip) if ":" in gw_ip: route_d = routes['6'] else: @@ -408,8 +408,8 @@ found_gws = [line for line in route_d.split('\n') if 'UG' in line and gw_ip in line] - logger.debug('found gateways in guest output:\n%s', - found_gws) + self.logger.debug('found gateways in guest output:\n%s', + found_gws) print('found_gws: %s\nexpected: %s' % (found_gws, configured_gws)) @@ -422,8 +422,8 @@ else: (dest, gw, genmask, flags, metric, ref, use, iface) = \ fgw.split() - logger.debug('configured gw:%s found gw:%s', gw_ip, - gw) + self.logger.debug('configured gw:%s found gw:%s', + gw_ip, gw) self.assertEqual(gw_ip, gw) @@ -479,10 +479,6 @@ __test__ = True -class ZestyTestNetworkBasic(relbase.zesty, TestNetworkBasicAbs): - __test__ = True - - class ArtfulTestNetworkBasic(relbase.artful, TestNetworkBasicAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_network_static.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_static.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_network_static.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_static.py 2018-01-18 21:10:51.000000000 +0000 @@ -59,10 +59,6 @@ __test__ = True -class ZestyTestNetworkStatic(relbase.zesty, TestNetworkStaticAbs): - __test__ = True - - class ArtfulTestNetworkStatic(relbase.artful, TestNetworkStaticAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_network_static_routes.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_static_routes.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_network_static_routes.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_static_routes.py 2018-01-18 21:10:51.000000000 +0000 @@ -47,10 +47,6 @@ __test__ = True -class ZestyTestNetworkStaticRoutes(relbase.zesty, TestNetworkStaticRoutesAbs): - __test__ = True - - class ArtfulTestNetworkStaticRoutes(relbase.artful, TestNetworkStaticRoutesAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_network_vlan.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_vlan.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_network_vlan.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_network_vlan.py 2018-01-18 21:10:51.000000000 +0000 @@ -1,4 +1,3 @@ -from . import logger from .releases import base_vm_classes as relbase from .releases import centos_base_vm_classes as centos_relbase from .test_network import TestNetworkBaseTestsAbs @@ -20,9 +19,9 @@ def get_vlans(self): network_state = self.get_network_state() - logger.debug('get_vlans ns:\n%s', - yaml.dump(network_state, default_flow_style=False, - indent=4)) + self.logger.debug('get_vlans ns:\n%s', + yaml.dump(network_state, default_flow_style=False, + indent=4)) interfaces = network_state.get('interfaces') return [iface for iface in interfaces.values() if iface['type'] == 'vlan'] @@ -80,10 +79,6 @@ __test__ = True -class ZestyTestNetworkVlan(relbase.zesty, TestNetworkVlanAbs): - __test__ = True - - class ArtfulTestNetworkVlan(relbase.artful, TestNetworkVlanAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_nvme.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_nvme.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_nvme.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_nvme.py 2018-01-18 21:10:51.000000000 +0000 @@ -91,10 +91,6 @@ __test__ = True -class ZestyTestNvme(relbase.zesty, TestNvmeAbs): - __test__ = True - - class ArtfulTestNvme(relbase.artful, TestNvmeAbs): __test__ = True @@ -184,10 +180,6 @@ __test__ = True -class ZestyTestNvmeBcache(relbase.zesty, TestNvmeBcacheAbs): - __test__ = True - - class ArtfulTestNvmeBcache(relbase.artful, TestNvmeBcacheAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_raid5_bcache.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_raid5_bcache.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_raid5_bcache.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_raid5_bcache.py 2018-01-18 21:10:51.000000000 +0000 @@ -101,10 +101,6 @@ __test__ = True -class ZestyTestRaid5Bcache(relbase.zesty, TestMdadmBcacheAbs): - __test__ = True - - class ArtfulTestRaid5Bcache(relbase.artful, TestMdadmBcacheAbs): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_simple.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_simple.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_simple.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_simple.py 2018-01-18 21:10:51.000000000 +0000 @@ -41,10 +41,6 @@ __test__ = True -class ZestyTestSimple(relbase.zesty, TestSimple): - __test__ = True - - class ArtfulTestSimple(relbase.artful, TestSimple): __test__ = True diff -Nru curtin-17.1-6-g8b145067/tests/vmtests/test_uefi_basic.py curtin-17.1-11-ga4c9636b/tests/vmtests/test_uefi_basic.py --- curtin-17.1-6-g8b145067/tests/vmtests/test_uefi_basic.py 2018-01-16 18:35:32.000000000 +0000 +++ curtin-17.1-11-ga4c9636b/tests/vmtests/test_uefi_basic.py 2018-01-18 21:10:51.000000000 +0000 @@ -105,10 +105,6 @@ __test__ = True -class ZestyUefiTestBasic(relbase.zesty, TestBasicAbs): - __test__ = True - - class ArtfulUefiTestBasic(relbase.artful, TestBasicAbs): __test__ = True @@ -129,10 +125,6 @@ disk_block_size = 4096 -class ZestyUefiTestBasic4k(ZestyUefiTestBasic): - disk_block_size = 4096 - - class ArtfulUefiTestBasic4k(ArtfulUefiTestBasic): disk_block_size = 4096