Hello community, here is the log from the commit of package diskimage-builder for openSUSE:Factory checked in at 2018-09-18 11:43:21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/diskimage-builder (Old) and /work/SRC/openSUSE:Factory/.diskimage-builder.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "diskimage-builder" Tue Sep 18 11:43:21 2018 rev:18 rq:635709 version:2.17.0 Changes: -------- --- /work/SRC/openSUSE:Factory/diskimage-builder/diskimage-builder.changes 2018-07-21 10:24:54.902961917 +0200 +++ /work/SRC/openSUSE:Factory/.diskimage-builder.new/diskimage-builder.changes 2018-09-18 11:43:27.675908989 +0200 @@ -1,0 +2,22 @@ +Fri Sep 14 09:16:45 UTC 2018 - Markos Chandras <mchand...@suse.de> + +- Version bump to 2.17.0 + * Only append DIB_BOOTLOADER_DEFAULT_CMDLINE to default grub entry + * Fix CentOS image build failure when dib runs on system where audit disabled + * Fix bootloader packages for aarch64 + * Install ca-certificate with redhat-common + * Add netcat to redhat-common map-packages + * Only detach device if all partitions have been cleaned + * Move LVM cleanup phase into cleanup + * Add DIB element to blacklist nouveau + * modprobe DIB_MODPROBE_BLACKLIST should be optional + * cache-url requires curl + * Fix for proper LVM support + * Call kpartx remove in umount, not cleanup + * block-device lvm: fix umount phase + * Don't quote names with sgdisk + * better handle existing keywords files/directories + * IPA requires iptables + * Install sudo on Gentoo images by deault + +------------------------------------------------------------------- Old: ---- diskimage-builder-2.16.0.tar.gz New: ---- diskimage-builder-2.17.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ diskimage-builder.spec ++++++ --- /var/tmp/diff_new_pack.kUypjW/_old 2018-09-18 11:43:29.311907282 +0200 +++ /var/tmp/diff_new_pack.kUypjW/_new 2018-09-18 11:43:29.315907277 +0200 @@ -20,7 +20,7 @@ # are only ever run inside the disk image build chroot). %global __requires_exclude_from ^%{python3_sitelib}/diskimage_builder/elements/.*$ Name: diskimage-builder -Version: 2.16.0 +Version: 2.17.0 Release: 0 Summary: Image Building Tools for OpenStack License: Apache-2.0 ++++++ diskimage-builder-2.16.0.tar.gz -> diskimage-builder-2.17.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/.zuul.d/jobs.yaml new/diskimage-builder-2.17.0/.zuul.d/jobs.yaml --- old/diskimage-builder-2.16.0/.zuul.d/jobs.yaml 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/.zuul.d/jobs.yaml 2018-09-13 06:28:23.000000000 +0200 @@ -99,16 +99,6 @@ - openstack/diskimage-builder - job: - name: dib-dsvm-functests-python2-opensuse-423 - parent: legacy-dsvm-base - run: playbooks/legacy/dib-dsvm-functests-python2-opensuse-423/run.yaml - post-run: playbooks/legacy/dib-dsvm-functests-python2-opensuse-423/post.yaml - timeout: 3600 - nodeset: legacy-opensuse-423 - required-projects: - - openstack/diskimage-builder - -- job: name: dib-dsvm-functests-python2-ubuntu-trusty parent: legacy-dsvm-base run: playbooks/legacy/dib-dsvm-functests-python2-ubuntu-trusty/run.yaml @@ -164,14 +154,3 @@ timeout: 3600 required-projects: - openstack/diskimage-builder - -- job: - name: dib-dsvm-functests-python3-opensuse-423 - parent: legacy-dsvm-base - run: playbooks/legacy/dib-dsvm-functests-python3-opensuse-423/run.yaml - post-run: playbooks/legacy/dib-dsvm-functests-python3-opensuse-423/post.yaml - timeout: 3600 - nodeset: legacy-opensuse-423 - required-projects: - - openstack/diskimage-builder - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/AUTHORS new/diskimage-builder-2.17.0/AUTHORS --- old/diskimage-builder-2.16.0/AUTHORS 2018-07-18 07:12:21.000000000 +0200 +++ new/diskimage-builder-2.17.0/AUTHORS 2018-09-13 06:30:23.000000000 +0200 @@ -29,12 +29,15 @@ Bruno Cornec <bruno.cor...@hpe.com> Cady_Chen <chenying...@inspur.com> Cao Xuan Hoang <hoan...@vn.fujitsu.com> +Carlos Goncalves <cgoncal...@redhat.com> +Charalampos Kominos <charalampos.komi...@enea.com> Chhavi Agarwal <chhag...@in.ibm.com> Chris Alfonso <calfo...@redhat.com> Chris Jones <chris.jo...@canonical.com> Chris Jones <c...@tenshu.net> Chris Krelle <nobody...@gmail.com> Christian Berendt <bere...@b1-systems.de> +Chuck Short <chu...@redhat.com> Cian O'Driscoll <c...@hp.com> Clark Boylan <clark.boy...@gmail.com> Clint Adams <cl...@gcfm.net> @@ -248,6 +251,7 @@ janonymous <janonymous.codevult...@gmail.com> jodewey <jode...@cisco.com> justin-hopper <justin.hop...@hp.com> +kaiokassiano <kaio...@lsd.ufcg.edu.br> lifeless <robe...@robertcollins.net> liyuanzhen <li.yuanz...@zte.com.cn> loki <lokes...@hp.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/ChangeLog new/diskimage-builder-2.17.0/ChangeLog --- old/diskimage-builder-2.16.0/ChangeLog 2018-07-18 07:12:21.000000000 +0200 +++ new/diskimage-builder-2.17.0/ChangeLog 2018-09-13 06:30:22.000000000 +0200 @@ -1,14 +1,38 @@ CHANGES ======= +2.17.0 +------ + +* Only append DIB\_BOOTLOADER\_DEFAULT\_CMDLINE to default grub entry +* Fix CentOS image build failure when dib runs on system where audit disabled +* Fix bootloader packages for aarch64 +* Replace assertRaisesRegexp with assertRaisesRegex +* Remove unsued opensuse jobs +* Remove legacy-opensuse-423 nodeset +* Install ca-certificate with redhat-common +* Add netcat to redhat-common map-packages +* Fix typo in installation.rst +* Only detach device if all partitions have been cleaned +* Move LVM cleanup phase into cleanup +* Add DIB element to blacklist nouveau +* modprobe DIB\_MODPROBE\_BLACKLIST should be optional +* cache-url requires curl + 2.16.0 ------ * Update pylint to 1.7.6, uncap networkx +* Fix for proper LVM support * Update developing\_elements * Add expected semicolons for dhclient.conf * Add keyring if supplied +* Call kpartx remove in umount, not cleanup +* Move localloop to exec\_sudo * Add new modprobe element +* block-device lvm: fix umount phase +* Don't quote names with sgdisk +* better handle existing keywords files/directories * Add iscsi-boot element for CentOS images * Remove redundant word * Fix /etc/network/interfaces file contents @@ -38,11 +62,13 @@ * Remove non-maintained ubuntu-core element * elements: zypper-minimal: Add support for openSUSE Leap 15.X * Add Ubuntu 18.04 support +* IPA requires iptables * Remove duplicate GRUB command line entry * rpm-distro: set the contentdir yum var * Trivial: update url to new url * Fixes add-apt-keys in dpkg element * Add pip cache cleanup to pip-and-virtualenv +* Install sudo on Gentoo images by deault * pip-and-virtualenv: fix install-pip when centos-release-openstack is enabled * Stop using slave\_scripts/install-distro-packages.sh diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/PKG-INFO new/diskimage-builder-2.17.0/PKG-INFO --- old/diskimage-builder-2.16.0/PKG-INFO 2018-07-18 07:12:25.000000000 +0200 +++ new/diskimage-builder-2.17.0/PKG-INFO 2018-09-13 06:30:28.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: diskimage-builder -Version: 2.16.0 +Version: 2.17.0 Summary: Golden Disk Image builder. Home-page: https://docs.openstack.org/diskimage-builder/latest/ Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/RELEASENOTES.rst new/diskimage-builder-2.17.0/RELEASENOTES.rst --- old/diskimage-builder-2.16.0/RELEASENOTES.rst 2018-07-18 07:12:25.000000000 +0200 +++ new/diskimage-builder-2.17.0/RELEASENOTES.rst 2018-09-13 06:30:28.000000000 +0200 @@ -2,6 +2,21 @@ diskimage-builder ================= +.. _diskimage-builder_2.17.0: + +2.17.0 +====== + +.. _diskimage-builder_2.17.0_Other Notes: + +Other Notes +----------- + +.. releasenotes/notes/bootloader-commandline-d2db7524f1f9ad28.yaml @ f6a2452d4c72d52af1abd6f9d4165ff19a0506ba + +- It has been clarified that the ``DIB_BOOTLOADER_DEFAULT_CMDLINE`` variable appends its values to grubs ``GRUB_CMDLINE_LINUX_DEFAULT``, which is used during all normal boots but not rescue boots; as opposed to applying to ``GRUB_CMDLINE_LINUX`` + + .. _diskimage-builder_2.16.0: 2.16.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/block_device/level0/localloop.py new/diskimage-builder-2.17.0/diskimage_builder/block_device/level0/localloop.py --- old/diskimage-builder-2.16.0/diskimage_builder/block_device/level0/localloop.py 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/block_device/level0/localloop.py 2018-09-13 06:28:23.000000000 +0200 @@ -14,12 +14,12 @@ import logging import os -import subprocess from diskimage_builder.block_device.exception import \ BlockDeviceSetupException from diskimage_builder.block_device.plugin import NodeBase from diskimage_builder.block_device.plugin import PluginBase +from diskimage_builder.block_device.utils import exec_sudo from diskimage_builder.block_device.utils import parse_abs_size_spec @@ -41,17 +41,11 @@ def loopdev_attach(filename): logger.info("loopdev attach") logger.debug("Calling [sudo losetup --show -f %s]", filename) - subp = subprocess.Popen(["sudo", "losetup", "--show", "-f", - filename], stdout=subprocess.PIPE) - rval = subp.wait() - if rval == 0: - # [:-1]: Cut of the newline - block_device = subp.stdout.read()[:-1].decode("utf-8") - logger.info("New block device [%s]", block_device) - return block_device - else: - logger.error("losetup failed") - raise BlockDeviceSetupException("losetup failed") + block_device = exec_sudo(["losetup", "--show", "-f", filename]) + # [:-1]: Cut of the newline + block_device = block_device[:-1] + logger.info("New block device [%s]", block_device) + return block_device def loopdev_detach(loopdev): @@ -59,19 +53,16 @@ # loopback dev may be tied up a bit by udev events triggered # by partition events for try_cnt in range(10, 1, -1): - logger.debug("Calling [sudo losetup -d %s]", loopdev) - subp = subprocess.Popen(["sudo", "losetup", "-d", - loopdev]) - rval = subp.wait() - if rval == 0: - logger.info("Successfully detached [%s]", loopdev) - return 0 - else: - logger.error("loopdev detach failed") + try: + exec_sudo(["losetup", "-d", loopdev]) + return + except BlockDeviceSetupException as e: # Do not raise an error - maybe other cleanup methods # can at least do some more work. + logger.error("loopdev detach failed (%s)", e.returncode) + logger.debug("Gave up trying to detach [%s]", loopdev) - return rval + return 1 class LocalLoopNode(NodeBase): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/block_device/level1/lvm.py new/diskimage-builder-2.17.0/diskimage_builder/block_device/level1/lvm.py --- old/diskimage-builder-2.16.0/diskimage_builder/block_device/level1/lvm.py 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/block_device/level1/lvm.py 2018-09-13 06:28:23.000000000 +0200 @@ -13,7 +13,6 @@ # limitations under the License. import logging -import subprocess from diskimage_builder.block_device.exception \ import BlockDeviceSetupException @@ -155,7 +154,7 @@ 'devices': self.base, } - def _cleanup(self): + def _umount(self): exec_sudo(['vgchange', '-an', self.name]) def get_edges(self): @@ -214,7 +213,7 @@ 'device': '/dev/mapper/%s-%s' % (self.base, self.name) } - def _cleanup(self): + def _umount(self): exec_sudo(['lvchange', '-an', '/dev/%s/%s' % (self.base, self.name)]) @@ -280,49 +279,29 @@ for lvs in self.lvs: lvs._create() - def cleanup(self): + def umount(self): for lvs in self.lvs: - lvs._cleanup() + lvs._umount() for vgs in self.vgs: - vgs._cleanup() + vgs._umount() exec_sudo(['udevadm', 'settle']) - -class LVMCleanupNode(NodeBase): - def __init__(self, name, state, pvs): - """Cleanup Node for LVM - - Information about the PV, VG and LV is typically - cached in lvmetad. Even after removing PV device and - partitions this data is not automatically updated - which leads to a couple of problems. - the 'pvscan --cache' scans the available disks - and updates the cache. - This must be called after the cleanup of the - containing block device is done. - """ - super(LVMCleanupNode, self).__init__(name, state) - self.pvs = pvs - - def create(self): - # This class is used for cleanup only - pass - def cleanup(self): + # Information about the PV, VG and LV is typically + # cached in lvmetad. Even after removing PV device and + # partitions this data is not automatically updated + # which leads to a couple of problems. + # the 'pvscan --cache' scans the available disks + # and updates the cache. + # This is in cleanup because it must be called after the + # umount of the containing block device is done, (which should + # all be done in umount phase). try: exec_sudo(['pvscan', '--cache']) - except subprocess.CalledProcessError as cpe: - logger.debug("pvscan call result [%s]", cpe) - - def get_edges(self): - # This node depends on all physical device(s), which is - # recorded in the "base" argument of the PV nodes. - edge_to = set() - for pv in self.pvs: - edge_to.add(pv.base) - return ([], edge_to) + except BlockDeviceSetupException as e: + logger.info("pvscan call failed [%s]", e.returncode) class LVMPlugin(PluginBase): @@ -412,12 +391,10 @@ # create the "driver" node self.lvm_node = LVMNode(config['name'], state, self.pvs, self.lvs, self.vgs) - self.lvm_cleanup_node = LVMCleanupNode( - config['name'] + "-CLEANUP", state, self.pvs) def get_nodes(self): # the nodes for insertion into the graph are all of the pvs, - # vgs and lvs nodes we have created above, the root node and + # vgs and lvs nodes we have created above and the root node and # the cleanup node. return self.pvs + self.vgs + self.lvs \ - + [self.lvm_node, self.lvm_cleanup_node] + + [self.lvm_node] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/block_device/level1/partition.py new/diskimage-builder-2.17.0/diskimage_builder/block_device/level1/partition.py --- old/diskimage-builder-2.16.0/diskimage_builder/block_device/level1/partition.py 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/block_device/level1/partition.py 2018-09-13 06:28:23.000000000 +0200 @@ -84,5 +84,8 @@ def create(self): self.partitioning.create() + def umount(self): + self.partitioning.umount() + def cleanup(self): self.partitioning.cleanup() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/block_device/level1/partitioning.py new/diskimage-builder-2.17.0/diskimage_builder/block_device/level1/partitioning.py --- old/diskimage-builder-2.16.0/diskimage_builder/block_device/level1/partitioning.py 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/block_device/level1/partitioning.py 2018-09-13 06:28:23.000000000 +0200 @@ -42,8 +42,7 @@ # Because using multiple partitions of one base is done # within one object, there is the need to store a flag if the # creation of the partitions was already done. - self.already_created = False - self.already_cleaned = False + self.number_of_partitions = 0 # Parameter check if 'base' not in config: @@ -136,7 +135,7 @@ for p in self.partitions: args = {} args['pnum'] = pnum - args['name'] = '"%s"' % p.get_name() + args['name'] = '%s' % p.get_name() args['type'] = '%s' % p.get_type() # convert from a relative/string size to bytes @@ -149,9 +148,11 @@ assert size <= disk_free args['size'] = size // (1024 * 1024) - new_cmd = ("-n {pnum}:0:+{size}M -t {pnum}:{type} " - "-c {pnum}:{name}".format(**args)) - cmd.extend(new_cmd.strip().split(' ')) + new_cmd = ("-n", "{pnum}:0:+{size}M".format(**args), + "-t", "{pnum}:{type}".format(**args), + # Careful with this one, as {name} could have spaces + "-c", "{pnum}:{name}".format(**args)) + cmd.extend(new_cmd) # Fill the state; we mount all partitions with kpartx # below once we're done. So the device this partition @@ -177,10 +178,10 @@ # in the graph, so for every partition we get a create() call # as the walk happens. But we only need to create the # partition table once... - if self.already_created: + self.number_of_partitions += 1 + if self.number_of_partitions > 1: logger.info("Not creating the partitions a second time.") return - self.already_created = True # the raw file on disk self.image_path = self.state['blockdev'][self.base]['image'] @@ -215,13 +216,16 @@ return - def cleanup(self): - # remove the partition mappings made for the parent - # block-device by create() above. this is called from the - # child PartitionNode umount/delete/cleanup. Thus every - # partition calls it, but we only want to do it once and our - # gate. - if not self.already_cleaned: - self.already_cleaned = True + def umount(self): + # Remove the partition mappings made for the parent + # block-device by create() above. This is called from the + # child PartitionNode umount. Thus every + # partition calls it, but we only want to do it once when + # we know this is the very last partition + self.number_of_partitions -= 1 + if self.number_of_partitions == 0: exec_sudo(["kpartx", "-d", self.state['blockdev'][self.base]['device']]) + + def cleanup(self): + pass diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/block_device/tests/config/gpt_efi.yaml new/diskimage-builder-2.17.0/diskimage_builder/block_device/tests/config/gpt_efi.yaml --- old/diskimage-builder-2.16.0/diskimage_builder/block_device/tests/config/gpt_efi.yaml 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/block_device/tests/config/gpt_efi.yaml 2018-09-13 06:28:23.000000000 +0200 @@ -20,7 +20,9 @@ - name: BSP type: 'EF02' size: 8MiB - - name: root + # spaces are probably a bad idea for max compatability, but + # we're deliberatly testing it here. + - name: Root Part type: '8300' size: 100% mkfs: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/block_device/tests/config/lvm_tree_multiple_partitions.yaml new/diskimage-builder-2.17.0/diskimage_builder/block_device/tests/config/lvm_tree_multiple_partitions.yaml --- old/diskimage-builder-2.16.0/diskimage_builder/block_device/tests/config/lvm_tree_multiple_partitions.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/diskimage-builder-2.17.0/diskimage_builder/block_device/tests/config/lvm_tree_multiple_partitions.yaml 2018-09-13 06:28:23.000000000 +0200 @@ -0,0 +1,104 @@ +- local_loop: + name: image0 + +- partitioning: + base: image0 + label: mbr + partitions: + - name: root + flags: [ boot ] + size: 3G + - name: ESP + type: 'EF00' + size: 8MiB + mkfs: + type: vfat + mount: + mount_point: /boot/efi + fstab: + options: "defaults" + fsck-passno: 1 + - name: BSP + type: 'EF02' + size: 8MiB + +- lvm: + name: lvm + base: [ root ] + pvs: + - name: pv + base: root + options: [ "--force" ] + vgs: + - name: vg + base: [ "pv" ] + options: [ "--force" ] + lvs: + - name: lv_root + base: vg + extents: 28%VG + - name: lv_tmp + base: vg + extents: 4%VG + - name: lv_var + base: vg + extents: 40%VG + - name: lv_log + base: vg + extents: 23%VG + - name: lv_audit + base: vg + extents: 4%VG + - name: lv_home + base: vg + extents: 1%VG +- mkfs: + name: fs_root + base: lv_root + type: xfs + label: "img-rootfs" + mount: + mount_point: / + fstab: + options: "rw,relatime" + fck-passno: 1 +- mkfs: + name: fs_tmp + base: lv_tmp + type: xfs + mount: + mount_point: /tmp + fstab: + options: "rw,nosuid,nodev,noexec,relatime" +- mkfs: + name: fs_var + base: lv_var + type: xfs + mount: + mount_point: /var + fstab: + options: "rw,relatime" +- mkfs: + name: fs_log + base: lv_log + type: xfs + mount: + mount_point: /var/log + fstab: + options: "rw,relatime" +- mkfs: + name: fs_audit + base: lv_audit + type: xfs + mount: + mount_point: /var/log/audit + fstab: + options: "rw,relatime" +- mkfs: + name: fs_home + base: lv_home + type: xfs + mount: + mount_point: /home + fstab: + options: "rw,nodev,relatime" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/block_device/tests/test_gpt.py new/diskimage-builder-2.17.0/diskimage_builder/block_device/tests/test_gpt.py --- old/diskimage-builder-2.16.0/diskimage_builder/block_device/tests/test_gpt.py 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/block_device/tests/test_gpt.py 2018-09-13 06:28:23.000000000 +0200 @@ -63,13 +63,12 @@ node.create() # check the parted call looks right - parted_cmd = ('sgdisk %s ' - '-n 1:0:+8M -t 1:EF00 -c 1:"ESP" ' - '-n 2:0:+8M -t 2:EF02 -c 2:"BSP" ' - '-n 3:0:+1006M -t 3:8300 -c 3:"root"' - % self.image_path) + parted_cmd = ['sgdisk', self.image_path, + '-n', '1:0:+8M', '-t', '1:EF00', '-c', '1:ESP', + '-n', '2:0:+8M', '-t', '2:EF02', '-c', '2:BSP', + '-n', '3:0:+1006M', '-t', '3:8300', '-c', '3:Root Part'] cmd_sequence = [ - mock.call(parted_cmd.split(' ')), + mock.call(parted_cmd), mock.call(['sync']), mock.call(['kpartx', '-avs', '/dev/loopX']) ] @@ -81,5 +80,5 @@ {'device': '/dev/mapper/loopXp1'}) self.assertDictEqual(state['blockdev']['BSP'], {'device': '/dev/mapper/loopXp2'}) - self.assertDictEqual(state['blockdev']['root'], + self.assertDictEqual(state['blockdev']['Root Part'], {'device': '/dev/mapper/loopXp3'}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/block_device/tests/test_lvm.py new/diskimage-builder-2.17.0/diskimage_builder/block_device/tests/test_lvm.py --- old/diskimage-builder-2.16.0/diskimage_builder/block_device/tests/test_lvm.py 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/block_device/tests/test_lvm.py 2018-09-13 06:28:23.000000000 +0200 @@ -21,12 +21,13 @@ from diskimage_builder.block_device.config import create_graph from diskimage_builder.block_device.exception import \ BlockDeviceSetupException -from diskimage_builder.block_device.level1.lvm import LVMCleanupNode +from diskimage_builder.block_device.level0.localloop import LocalLoopNode from diskimage_builder.block_device.level1.lvm import LVMNode from diskimage_builder.block_device.level1.lvm import LVMPlugin from diskimage_builder.block_device.level1.lvm import LvsNode from diskimage_builder.block_device.level1.lvm import PvsNode from diskimage_builder.block_device.level1.lvm import VgsNode +from diskimage_builder.block_device.level1.partitioning import PartitionNode logger = logging.getLogger(__name__) @@ -89,7 +90,7 @@ # XXX: This has not mocked out the "lower" layers of # creating the devices, which we're assuming works OK, nor # the upper layers. - if isinstance(node, (LVMNode, LVMCleanupNode, PvsNode, + if isinstance(node, (LVMNode, PvsNode, VgsNode, LvsNode)): # only the LVMNode actually does anything here... node.create() @@ -198,7 +199,7 @@ # XXX: This has not mocked out the "lower" layers of # creating the devices, which we're assuming works OK, nor # the upper layers. - if isinstance(node, (LVMNode, LVMCleanupNode, PvsNode, + if isinstance(node, (LVMNode, PvsNode, VgsNode, LvsNode)): # only the PvsNode actually does anything here... node.create() @@ -282,7 +283,7 @@ self.assertDictEqual(state['blockdev'], blockdev_state) # - # Cleanup test + # Umount test # with mock.patch(exec_sudo) as mock_exec_sudo, \ mock.patch('tempfile.NamedTemporaryFile') as mock_temp, \ @@ -306,11 +307,16 @@ return r mock_temp.side_effect = new_tempfile - reverse_order = reversed(call_order) - for node in reverse_order: - if isinstance(node, (LVMNode, LVMCleanupNode, PvsNode, - VgsNode, LvsNode)): - node.cleanup() + def run_it(phase): + reverse_order = reversed(call_order) + for node in reverse_order: + if isinstance(node, (LVMNode, PvsNode, VgsNode, LvsNode)): + getattr(node, phase)() + else: + logger.debug("Skipping node for test: %s", node) + + run_it('umount') + run_it('cleanup') cmd_sequence = [ # delete the lv's @@ -365,8 +371,7 @@ # XXX: This has not mocked out the "lower" layers of # creating the devices, which we're assuming works OK, nor # the upper layers. - if isinstance(node, (LVMNode, LVMCleanupNode, - PvsNode, VgsNode, LvsNode)): + if isinstance(node, (LVMNode, PvsNode, VgsNode, LvsNode)): # only the LVMNode actually does anything here... node.create() @@ -407,10 +412,16 @@ return r mock_temp.side_effect = new_tempfile - reverse_order = reversed(call_order) - for node in reverse_order: - if isinstance(node, (LVMNode, PvsNode, VgsNode, LvsNode)): - node.cleanup() + def run_it(phase): + reverse_order = reversed(call_order) + for node in reverse_order: + if isinstance(node, (LVMNode, PvsNode, VgsNode, LvsNode)): + getattr(node, phase)() + else: + logger.debug("Skipping node for test: %s", node) + + run_it('umount') + run_it('cleanup') cmd_sequence = [ # deactivate lv's @@ -422,6 +433,146 @@ mock.call(['vgchange', '-an', 'vg_data']), mock.call(['udevadm', 'settle']), + mock.call(['pvscan', '--cache']), ] self.assertListEqual(mock_exec_sudo.call_args_list, cmd_sequence) + + def test_lvm_multiple_partitions(self): + # Test the command-sequence for several partitions, one containing + # volumes on it + tree = self.load_config_file('lvm_tree_multiple_partitions.yaml') + config = config_tree_to_graph(tree) + + state = BlockDeviceState() + + graph, call_order = create_graph(config, self.fake_default_config, + state) + + # Fake state for the partitions on this config + state['blockdev'] = {} + state['blockdev']['image0'] = {} + state['blockdev']['image0']['device'] = '/dev/fake/image0' + state['blockdev']['image0']['image'] = 'image' + state['blockdev']['root'] = {} + state['blockdev']['root']['device'] = '/dev/fake/root' + state['blockdev']['ESP'] = {} + state['blockdev']['ESP']['device'] = '/dev/fake/ESP' + state['blockdev']['BSP'] = {} + state['blockdev']['BSP']['device'] = '/dev/fake/BSP' + + # + # Creation test + # + + # We mock out the following exec_sudo and other related calls + # calls for the layers we are testing. + exec_sudo_lvm = 'diskimage_builder.block_device.level1.lvm.exec_sudo' + exec_sudo_part = ('diskimage_builder.block_device.' + 'level1.partitioning.exec_sudo') + exec_sudo_loop = ('diskimage_builder.block_device.' + 'level0.localloop.exec_sudo') + image_create = ('diskimage_builder.block_device.level0.' + 'localloop.LocalLoopNode.create') + size_of_block = ('diskimage_builder.block_device.level1.' + 'partitioning.Partitioning._size_of_block_dev') + create_mbr = ('diskimage_builder.block_device.level1.' + 'partitioning.Partitioning._create_mbr') + + manager = mock.MagicMock() + with mock.patch(exec_sudo_lvm) as mock_sudo_lvm, \ + mock.patch(exec_sudo_part) as mock_sudo_part, \ + mock.patch(exec_sudo_loop) as mock_sudo_loop, \ + mock.patch(image_create) as mock_image_create, \ + mock.patch(size_of_block) as mock_size_of_block, \ + mock.patch(create_mbr) as mock_create_mbr: + + manager.attach_mock(mock_sudo_lvm, 'sudo_lvm') + manager.attach_mock(mock_sudo_part, 'sudo_part') + manager.attach_mock(mock_sudo_loop, 'sudo_loop') + manager.attach_mock(mock_image_create, 'image_create') + manager.attach_mock(mock_size_of_block, 'size_of_block') + manager.attach_mock(mock_create_mbr, 'create_mbr') + + for node in call_order: + # We're just keeping this to the partition setup and + # LVM creation; i.e. skipping mounting, mkfs, etc. + if isinstance(node, (LVMNode, PvsNode, + VgsNode, LvsNode, + LocalLoopNode, PartitionNode)): + node.create() + else: + logger.debug("Skipping node for test: %s", node) + + cmd_sequence = [ + # create the underlying block device + mock.call.image_create(), + mock.call.size_of_block('image'), + # write out partition table + mock.call.create_mbr(), + # now mount partitions + mock.call.sudo_part(['sync']), + mock.call.sudo_part(['kpartx', '-avs', '/dev/fake/image0']), + # now create lvm environment + mock.call.sudo_lvm(['pvcreate', '/dev/fake/root', '--force']), + mock.call.sudo_lvm( + ['vgcreate', 'vg', '/dev/fake/root', '--force']), + mock.call.sudo_lvm( + ['lvcreate', '--name', 'lv_root', '-l', '28%VG', 'vg']), + mock.call.sudo_lvm( + ['lvcreate', '--name', 'lv_tmp', '-l', '4%VG', 'vg']), + mock.call.sudo_lvm( + ['lvcreate', '--name', 'lv_var', '-l', '40%VG', 'vg']), + mock.call.sudo_lvm( + ['lvcreate', '--name', 'lv_log', '-l', '23%VG', 'vg']), + mock.call.sudo_lvm( + ['lvcreate', '--name', 'lv_audit', '-l', '4%VG', 'vg']), + mock.call.sudo_lvm( + ['lvcreate', '--name', 'lv_home', '-l', '1%VG', 'vg']), + ] + manager.assert_has_calls(cmd_sequence) + + # + # Umount/cleanup test + # + manager = mock.MagicMock() + with mock.patch(exec_sudo_lvm) as mock_sudo_lvm, \ + mock.patch(exec_sudo_part) as mock_sudo_part, \ + mock.patch(exec_sudo_loop) as mock_sudo_loop: + + manager.attach_mock(mock_sudo_lvm, 'sudo_lvm') + manager.attach_mock(mock_sudo_part, 'sudo_part') + manager.attach_mock(mock_sudo_loop, 'sudo_loop') + + def run_it(phase): + reverse_order = reversed(call_order) + for node in reverse_order: + if isinstance(node, (LVMNode, PvsNode, + VgsNode, LvsNode, + LocalLoopNode, PartitionNode)): + getattr(node, phase)() + else: + logger.debug("Skipping node for test: %s", node) + + run_it('umount') + run_it('cleanup') + + cmd_sequence = [ + # deactivate LVM first + mock.call.sudo_lvm(['lvchange', '-an', '/dev/vg/lv_root']), + mock.call.sudo_lvm(['lvchange', '-an', '/dev/vg/lv_tmp']), + mock.call.sudo_lvm(['lvchange', '-an', '/dev/vg/lv_var']), + mock.call.sudo_lvm(['lvchange', '-an', '/dev/vg/lv_log']), + mock.call.sudo_lvm(['lvchange', '-an', '/dev/vg/lv_audit']), + mock.call.sudo_lvm(['lvchange', '-an', '/dev/vg/lv_home']), + mock.call.sudo_lvm(['vgchange', '-an', 'vg']), + mock.call.sudo_lvm(['udevadm', 'settle']), + # now remove partitions (note has to happen after lvm removal) + mock.call.sudo_part(['kpartx', '-d', '/dev/fake/image0']), + # now remove loopback device + mock.call.sudo_loop(['losetup', '-d', '/dev/fake/image0']), + # now final LVM cleanup call + mock.call.sudo_lvm(['pvscan', '--cache']), + ] + + manager.assert_has_calls(cmd_sequence) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/block_device/utils.py new/diskimage-builder-2.17.0/diskimage_builder/block_device/utils.py --- old/diskimage-builder-2.16.0/diskimage_builder/block_device/utils.py 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/block_device/utils.py 2018-09-13 06:28:23.000000000 +0200 @@ -12,10 +12,14 @@ # License for the specific language governing permissions and limitations # under the License. +import locale import logging import re import subprocess +from diskimage_builder.block_device.exception import \ + BlockDeviceSetupException + logger = logging.getLogger(__name__) @@ -95,10 +99,16 @@ at debug levels. Arguments: + :param cmd: str command list; for Popen() - :return: nothing - :raises: subprocess.CalledProcessError if return code != 0 + :return: the stdout+stderror of the called command + :raises BlockDeviceSetupException: if return code != 0. + + Exception values similar to ``subprocess.CalledProcessError`` + * ``returncode`` : returncode of child + * ``cmd`` : the command run + * ``output`` : stdout+stderr output """ assert isinstance(cmd, list) sudo_cmd = ["sudo"] @@ -116,10 +126,20 @@ stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - for line in iter(proc.stdout.readline, b""): - logger.debug("exec_sudo: %s", line.rstrip()) - + out = "" + with proc.stdout: + for line in iter(proc.stdout.readline, b''): + line = line.decode(encoding=locale.getpreferredencoding(False), + errors='backslashreplace') + out += line + logger.debug("exec_sudo: %s", line.rstrip()) proc.wait() - if proc.returncode != 0: - raise subprocess.CalledProcessError(proc.returncode, - ' '.join(sudo_cmd)) + + if proc.returncode: + e = BlockDeviceSetupException("exec_sudo failed") + e.returncode = proc.returncode + e.cmd = ' '.join(sudo_cmd) + e.output = out + raise e + + return out diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/bootloader/README.rst new/diskimage-builder-2.17.0/diskimage_builder/elements/bootloader/README.rst --- old/diskimage-builder-2.16.0/diskimage_builder/elements/bootloader/README.rst 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/bootloader/README.rst 2018-09-13 06:28:40.000000000 +0200 @@ -13,6 +13,6 @@ * ``DIB_GRUB_TIMEOUT`` sets the ``grub`` menu timeout. It defaults to 5 seconds. Set this to 0 (no timeout) for fast boot times. -* ``DIB_BOOTLOADER_DEFAULT_CMDLINE`` sets the CMDLINE parameters that - are appended to the grub.cfg configuration. It defaults to - 'nofb nomodeset vga=normal' +* ``DIB_BOOTLOADER_DEFAULT_CMDLINE`` sets parameters that are appended + to the ``GRUB_CMDLINE_LINUX_DEFAULT`` values in ``grub.cfg`` + configuration. It defaults to ``nofb nomodeset vga=normal``. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/bootloader/finalise.d/50-bootloader new/diskimage-builder-2.17.0/diskimage_builder/elements/bootloader/finalise.d/50-bootloader --- old/diskimage-builder-2.16.0/diskimage_builder/elements/bootloader/finalise.d/50-bootloader 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/bootloader/finalise.d/50-bootloader 2018-09-13 06:28:40.000000000 +0200 @@ -185,9 +185,8 @@ GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=${SERIAL_CONSOLE} no_timer_check" - echo "GRUB_CMDLINE_LINUX_DEFAULT=\"${GRUB_CMDLINE_LINUX_DEFAULT}\"" >>/etc/default/grub + echo "GRUB_CMDLINE_LINUX_DEFAULT=\"${GRUB_CMDLINE_LINUX_DEFAULT} ${DIB_BOOTLOADER_DEFAULT_CMDLINE}\"" >>/etc/default/grub echo 'GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"' >>/etc/default/grub - sed -i -e "s/\(^GRUB_CMDLINE_LINUX.*\)\"$/\1 ${DIB_BOOTLOADER_DEFAULT_CMDLINE}\"/" /etc/default/grub if type grub2-mkconfig >/dev/null; then GRUB_MKCONFIG="grub2-mkconfig -o $GRUB_CFG" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/bootloader/pkg-map new/diskimage-builder-2.17.0/diskimage_builder/elements/bootloader/pkg-map --- old/diskimage-builder-2.16.0/diskimage_builder/elements/bootloader/pkg-map 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/bootloader/pkg-map 2018-09-13 06:28:23.000000000 +0200 @@ -17,6 +17,7 @@ "grub-pc": "grub2-tools grub2", "grub-efi-amd64": "grub2-tools grub2-efi grub2-efi-modules", "grub-efi-arm64": "grub2-tools grub2-efi grub2-efi-modules", + "grub-efi-aarch64": "grub2-tools grub2-efi grub2-efi-modules", "grub-efi": "grub2-tools grub2-efi", "grub-ppc64": "grub2-tools grub2" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/cache-url/element-deps new/diskimage-builder-2.17.0/diskimage_builder/elements/cache-url/element-deps --- old/diskimage-builder-2.16.0/diskimage_builder/elements/cache-url/element-deps 1970-01-01 01:00:00.000000000 +0100 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/cache-url/element-deps 2018-09-13 06:28:23.000000000 +0200 @@ -0,0 +1 @@ +package-installs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/cache-url/package-installs.yaml new/diskimage-builder-2.17.0/diskimage_builder/elements/cache-url/package-installs.yaml --- old/diskimage-builder-2.16.0/diskimage_builder/elements/cache-url/package-installs.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/cache-url/package-installs.yaml 2018-09-13 06:28:23.000000000 +0200 @@ -0,0 +1 @@ +curl: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/cache-url/pkg-map new/diskimage-builder-2.17.0/diskimage_builder/elements/cache-url/pkg-map --- old/diskimage-builder-2.16.0/diskimage_builder/elements/cache-url/pkg-map 1970-01-01 01:00:00.000000000 +0100 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/cache-url/pkg-map 2018-09-13 06:28:23.000000000 +0200 @@ -0,0 +1,7 @@ +{ + "distro": { + "gentoo": { + "curl": "net-misc/curl" + } + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/disable-nouveau/README.rst new/diskimage-builder-2.17.0/diskimage_builder/elements/disable-nouveau/README.rst --- old/diskimage-builder-2.16.0/diskimage_builder/elements/disable-nouveau/README.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/disable-nouveau/README.rst 2018-09-13 06:28:23.000000000 +0200 @@ -0,0 +1,7 @@ +=============== +disable-nouveau +=============== +Blacklist nouveau module + +This is required when installing NVIDIA GPU drivers and to avoid issues with PCI +passthrough of NVIDIA GPUs. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/disable-nouveau/element-deps new/diskimage-builder-2.17.0/diskimage_builder/elements/disable-nouveau/element-deps --- old/diskimage-builder-2.16.0/diskimage_builder/elements/disable-nouveau/element-deps 1970-01-01 01:00:00.000000000 +0100 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/disable-nouveau/element-deps 2018-09-13 06:28:23.000000000 +0200 @@ -0,0 +1 @@ +modprobe diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/disable-nouveau/modprobe.d/disable-nouveau.conf new/diskimage-builder-2.17.0/diskimage_builder/elements/disable-nouveau/modprobe.d/disable-nouveau.conf --- old/diskimage-builder-2.16.0/diskimage_builder/elements/disable-nouveau/modprobe.d/disable-nouveau.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/disable-nouveau/modprobe.d/disable-nouveau.conf 2018-09-13 06:28:23.000000000 +0200 @@ -0,0 +1,2 @@ +blacklist nouveau +options nouveau modeset=0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/gentoo/package-installs.yaml new/diskimage-builder-2.17.0/diskimage_builder/elements/gentoo/package-installs.yaml --- old/diskimage-builder-2.16.0/diskimage_builder/elements/gentoo/package-installs.yaml 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/gentoo/package-installs.yaml 2018-09-13 06:28:23.000000000 +0200 @@ -1 +1,2 @@ sys-fs/dosfstools: +app-admin/sudo: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/gentoo/pre-install.d/02-gentoo-02-flags new/diskimage-builder-2.17.0/diskimage_builder/elements/gentoo/pre-install.d/02-gentoo-02-flags --- old/diskimage-builder-2.16.0/diskimage_builder/elements/gentoo/pre-install.d/02-gentoo-02-flags 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/gentoo/pre-install.d/02-gentoo-02-flags 2018-09-13 06:28:23.000000000 +0200 @@ -8,7 +8,15 @@ # get the directories in order mkdir -p /etc/portage/profile -mkdir -p /etc/portage/package.keywords +if [ -f /etc/portage/package.keywords ]; then + mv /etc/portage/package.keywords /etc/portage/package.keywords.bak + mkdir -p /etc/portage/package.keywords + mv /etc/portage/package.keywords.bak /etc/portage/package.keywords/prebuilt-1 +else + mkdir -p /etc/portage/package.keywords +fi +[ -d /etc/portage/package.accept_keywords ] && mv /etc/portage/package.accept_keywords/* /etc/portage/package.keywords/ && rmdir /etc/portage/package.accept_keywords +[ -f /etc/portage/package.accept_keywords ] && mv /etc/portage/package.accept_keywords /etc/portage/package.keywords/prebuilt-2 mkdir -p /etc/portage/package.mask mkdir -p /etc/portage/package.unmask mkdir -p /etc/portage/package.use diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/gentoo/pre-install.d/02-gentoo-03-enable-overlays new/diskimage-builder-2.17.0/diskimage_builder/elements/gentoo/pre-install.d/02-gentoo-03-enable-overlays --- old/diskimage-builder-2.16.0/diskimage_builder/elements/gentoo/pre-install.d/02-gentoo-03-enable-overlays 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/gentoo/pre-install.d/02-gentoo-03-enable-overlays 2018-09-13 06:28:23.000000000 +0200 @@ -24,18 +24,19 @@ # redistribution, so we have to use a version of openssl that works around # it (using fedora's patchset) and also use a version of cryptography that # depends on that version of openssl. - echo '=dev-python/cryptography-2.1.3 ~amd64' >> /etc/portage/package.keywords/layman - echo '=dev-libs/openssl-1.1.0g-r1 ~amd64' >> /etc/portage/package.keywords/layman - echo '=dev-libs/openssl-1.1.0g-r1' >> /etc/portage/package.unmask/layman + echo '=dev-python/cryptography-2.1.4-r2 ~amd64' >> /etc/portage/package.keywords/layman + echo '=dev-libs/openssl-1.0.2o-r6 ~amd64' >> /etc/portage/package.keywords/layman emerge -q --oneshot --jobs=2 openssl openssh # install layman - USE="-build" emerge --deep -q --jobs=2 layman + USE="-build" emerge --deep -q --jobs=2 --ignore-built-slot-operator-deps=y layman # sync the initial overlay list layman -S - # enable the various overlays + # enable the various overlays, ignore failures (overlay my already be enabled) + set +e for OVERLAY in ${GENTOO_OVERLAYS}; do layman -a "${OVERLAY}" done + set -e unfix_shm fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/ironic-agent/package-installs.yaml new/diskimage-builder-2.17.0/diskimage_builder/elements/ironic-agent/package-installs.yaml --- old/diskimage-builder-2.16.0/diskimage_builder/elements/ironic-agent/package-installs.yaml 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/ironic-agent/package-installs.yaml 2018-09-13 06:28:40.000000000 +0200 @@ -3,6 +3,7 @@ # dmidecode does not exist for ppc* arches so we use lshw dmidecode: not-arch: ppc64,ppc64el,ppc64le +iptables: lshw: ipmitool: qemu-utils: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/lvm/README.rst new/diskimage-builder-2.17.0/diskimage_builder/elements/lvm/README.rst --- old/diskimage-builder-2.16.0/diskimage_builder/elements/lvm/README.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/lvm/README.rst 2018-09-13 06:28:23.000000000 +0200 @@ -0,0 +1,15 @@ +===== +lvm +===== +This is the LVM support element for Ubuntu Xenial. + +Note that this element requires initramfs-tools and lvm2 +packages to be added to the DIB image using -p option. +If this is not the case, an error will be triggered. + +This element enables that an image build with a customized +DIB_BLOCK_DEVICE_CONFIG containing LVM volumes will boot +properly. + +On CentOS like distributions, you should use dracut-regenerate +element instead of current lvm element. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/lvm/element-deps new/diskimage-builder-2.17.0/diskimage_builder/elements/lvm/element-deps --- old/diskimage-builder-2.16.0/diskimage_builder/elements/lvm/element-deps 1970-01-01 01:00:00.000000000 +0100 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/lvm/element-deps 2018-09-13 06:28:23.000000000 +0200 @@ -0,0 +1,3 @@ +bootloader +pkg-map +ubuntu-minimal diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/lvm/finalise.d/60-bootloader new/diskimage-builder-2.17.0/diskimage_builder/elements/lvm/finalise.d/60-bootloader --- old/diskimage-builder-2.16.0/diskimage_builder/elements/lvm/finalise.d/60-bootloader 1970-01-01 01:00:00.000000000 +0100 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/lvm/finalise.d/60-bootloader 2018-09-13 06:28:23.000000000 +0200 @@ -0,0 +1,65 @@ +#!/bin/bash + +# Configure grub. Note that the various conditionals here are to handle +# different distributions gracefully. + +if [ ${DIB_DEBUG_TRACE:-1} -gt 0 ]; then + set -x +fi +set -eu +set -o pipefail + +BOOT_DEV=$IMAGE_BLOCK_DEVICE + +# All available devices, handy for some bootloaders... +declare -A DEVICES +eval DEVICES=( $IMAGE_BLOCK_DEVICES ) + +# This might be better factored out into a per-distro 'install-bootblock' +# helper. +if [ -d /boot/grub2 ]; then + GRUB_CFG=/boot/grub2/grub.cfg +elif [ -d /boot/grub ]; then + GRUB_CFG=/boot/grub/grub.cfg +fi + +if type grub2-mkconfig >/dev/null; then + GRUB_MKCONFIG="grub2-mkconfig -o $GRUB_CFG" +else + GRUB_MKCONFIG="grub-mkconfig -o $GRUB_CFG" +fi + +# Retrieve root filesystem mount point to check if it is LVM based +ROOTFS=$(awk '$2=="/"{print}' /proc/mounts) +# Standard filesystems are mounted as /dev/mapper/loop* within DIB +# so we need to exclude this case +if echo "$ROOTFS" | grep -qv '/dev/mapper/loop'; then + # LVM based filesystems are mounted as /dev/mapper/<VG_name>-<LV-NAME> within DIB + if echo "$ROOTFS" | grep -q '/dev/mapper/'; then + # Check if initramfs-tools are installed + if [ ! -d /etc/initramfs-tools ]; then + echo "You must have initramfs-tools installed for LVM based root filesystem to work properly" + exit 1 + fi + # Check if system supports LVM + if ! type pvs >/dev/null 2>&1; then + echo "You must have lvm2 package installed for LVM based root filesystem to work properly" + exit 1 + fi + # Check for appropriate filesystem support (for fsck) + FSTYPE=$(echo $ROOTFS | awk '{print $3}') + if ! type fsck.$FSTYPE >/dev/null 2>&1; then + echo "You must have utility package for $FSTYPE filesystem installed for LVM based root filesystem to work properly (fsck.$FSTYPE is missing)" + exit 1 + fi + # Change the current GRUB_DEVICE from LABEL=(cloud)img-rootfs to /dev/mapper/... + sed -i -e "s?^GRUB_DEVICE=.*?GRUB_DEVICE=$(echo $ROOTFS | awk '{print $1}')?" /etc/default/grub + # This is required for LVM2 driver to be included in the + # ramdisk of the image. + echo "lvm2" >> /etc/initramfs-tools/modules + # We need to regenerated the init ramdisk at this point + update-initramfs -u -v + fi +fi + +$GRUB_MKCONFIG diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/lvm/package-installs.yaml new/diskimage-builder-2.17.0/diskimage_builder/elements/lvm/package-installs.yaml --- old/diskimage-builder-2.16.0/diskimage_builder/elements/lvm/package-installs.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/lvm/package-installs.yaml 2018-09-13 06:28:23.000000000 +0200 @@ -0,0 +1,2 @@ +lvm2: +initramfs-tools: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/lvm/root.d/10-lvm-check-distro new/diskimage-builder-2.17.0/diskimage_builder/elements/lvm/root.d/10-lvm-check-distro --- old/diskimage-builder-2.16.0/diskimage_builder/elements/lvm/root.d/10-lvm-check-distro 1970-01-01 01:00:00.000000000 +0100 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/lvm/root.d/10-lvm-check-distro 2018-09-13 06:28:23.000000000 +0200 @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then + set -x +fi +set -eu +set -o pipefail + +if [ 'ubuntu' != $DISTRO_NAME ]; then + echo "Only ubuntu is supported for LVM support. The DISTRO is set to $DISTRO_NAME" + exit 1 +fi + +if [ 'xenial' != $DIB_RELEASE ]; then + echo "Only xenial is supported for LVM support. The DIB_RELEASE is set to $DIB_RELEASE" + exit 1 +fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/modprobe/install.d/80-modprobe-blacklist new/diskimage-builder-2.17.0/diskimage_builder/elements/modprobe/install.d/80-modprobe-blacklist --- old/diskimage-builder-2.16.0/diskimage_builder/elements/modprobe/install.d/80-modprobe-blacklist 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/modprobe/install.d/80-modprobe-blacklist 2018-09-13 06:28:23.000000000 +0200 @@ -6,7 +6,7 @@ set -eu set -o pipefail -MODULES_LIST=${DIB_MODPROBE_BLACKLIST:?"Please set DIB_MODPROBE_BLACKLIST."} +MODULES_LIST=${DIB_MODPROBE_BLACKLIST:-""} for mod_name in $MODULES_LIST; do echo "blacklist $mod_name" >> /etc/modprobe.d/blacklist.conf diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/redhat-common/bin/map-packages new/diskimage-builder-2.17.0/diskimage_builder/elements/redhat-common/bin/map-packages --- old/diskimage-builder-2.16.0/diskimage_builder/elements/redhat-common/bin/map-packages 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/redhat-common/bin/map-packages 2018-09-13 06:28:23.000000000 +0200 @@ -61,6 +61,7 @@ 'mysql-client-5.5': 'mariadb', 'mysql-server-5.5': 'mariadb-server', 'nagios-plugins-basic': 'nagios-plugins-all', + 'netcat-openbsd': 'nmap-ncat', 'nfs-common': 'nfs-utils', 'nfs-kernel-server': 'nfs-utils', 'open-iscsi': 'iscsi-initiator-utils', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/redhat-common/package-installs.yaml new/diskimage-builder-2.17.0/diskimage_builder/elements/redhat-common/package-installs.yaml --- old/diskimage-builder-2.16.0/diskimage_builder/elements/redhat-common/package-installs.yaml 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/redhat-common/package-installs.yaml 2018-09-13 06:28:23.000000000 +0200 @@ -6,6 +6,7 @@ which: gettext: phase: pre-install.d +ca-certificates: # selinux-targeted policy and related tools selinux-policy: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/elements/rpm-distro/cleanup.d/99-selinux-fixfiles-restore new/diskimage-builder-2.17.0/diskimage_builder/elements/rpm-distro/cleanup.d/99-selinux-fixfiles-restore --- old/diskimage-builder-2.16.0/diskimage_builder/elements/rpm-distro/cleanup.d/99-selinux-fixfiles-restore 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/elements/rpm-distro/cleanup.d/99-selinux-fixfiles-restore 2018-09-13 06:28:23.000000000 +0200 @@ -66,6 +66,10 @@ IFS='|' read -ra SPLIT_MOUNTS <<< "$DIB_MOUNTPOINTS" for MOUNTPOINT in "${SPLIT_MOUNTS[@]}"; do if [ "${MOUNTPOINT}" != "/tmp/in_target.d" ] && [ "${MOUNTPOINT}" != "/dev" ] && [ "${MOUNTPOINT}" != "/boot/efi" ]; then + if ! pgrep kauditd >/dev/null; then + echo "*** kauditd not found, suggesting auditing support is disabled in the host kernel. setfiles will fail without this, please enable and rebuild" + exit 1 + fi sudo ${_runcon} chroot ${TARGET_ROOT} \ /usr/sbin/setfiles -F ${_dash_m} \ /etc/selinux/targeted/contexts/files/file_contexts ${MOUNTPOINT} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder/tests/test_elementdeps.py new/diskimage-builder-2.17.0/diskimage_builder/tests/test_elementdeps.py --- old/diskimage-builder-2.16.0/diskimage_builder/tests/test_elementdeps.py 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder/tests/test_elementdeps.py 2018-09-13 06:28:23.000000000 +0200 @@ -174,11 +174,11 @@ def test_elements_provide_same(self): msg = "virtual: already provided by \['provides_virtual'\]" - self.assertRaisesRegexp(element_dependencies.AlreadyProvidedException, - msg, - element_dependencies.get_elements, - ['provides_virtual', 'also_provides_virtual'], - self.element_dirs) + self.assertRaisesRegex(element_dependencies.AlreadyProvidedException, + msg, + element_dependencies.get_elements, + ['provides_virtual', 'also_provides_virtual'], + self.element_dirs) def test_no_os_element(self): self.assertRaises(element_dependencies.MissingOSException, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder.egg-info/PKG-INFO new/diskimage-builder-2.17.0/diskimage_builder.egg-info/PKG-INFO --- old/diskimage-builder-2.16.0/diskimage_builder.egg-info/PKG-INFO 2018-07-18 07:12:21.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder.egg-info/PKG-INFO 2018-09-13 06:30:23.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: diskimage-builder -Version: 2.16.0 +Version: 2.17.0 Summary: Golden Disk Image builder. Home-page: https://docs.openstack.org/diskimage-builder/latest/ Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder.egg-info/SOURCES.txt new/diskimage-builder-2.17.0/diskimage_builder.egg-info/SOURCES.txt --- old/diskimage-builder-2.16.0/diskimage_builder.egg-info/SOURCES.txt 2018-07-18 07:12:22.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder.egg-info/SOURCES.txt 2018-09-13 06:30:24.000000000 +0200 @@ -69,6 +69,7 @@ diskimage_builder/block_device/tests/config/gpt_efi.yaml diskimage_builder/block_device/tests/config/lvm_graph.yaml diskimage_builder/block_device/tests/config/lvm_tree.yaml +diskimage_builder/block_device/tests/config/lvm_tree_multiple_partitions.yaml diskimage_builder/block_device/tests/config/lvm_tree_multiple_pv.yaml diskimage_builder/block_device/tests/config/lvm_tree_multiple_pv_vg.yaml diskimage_builder/block_device/tests/config/lvm_tree_partition_ordering.yaml @@ -123,6 +124,9 @@ diskimage_builder/elements/bootloader/finalise.d/50-bootloader diskimage_builder/elements/cache-url/README.rst diskimage_builder/elements/cache-url/__init__.py +diskimage_builder/elements/cache-url/element-deps +diskimage_builder/elements/cache-url/package-installs.yaml +diskimage_builder/elements/cache-url/pkg-map diskimage_builder/elements/cache-url/bin/cache-url diskimage_builder/elements/cache-url/tests/__init__.py diskimage_builder/elements/cache-url/tests/test_cache_url.py @@ -248,6 +252,9 @@ diskimage_builder/elements/dib-python/pre-install.d/01-dib-python diskimage_builder/elements/dib-run-parts/README.rst diskimage_builder/elements/dib-run-parts/package-installs.yaml +diskimage_builder/elements/disable-nouveau/README.rst +diskimage_builder/elements/disable-nouveau/element-deps +diskimage_builder/elements/disable-nouveau/modprobe.d/disable-nouveau.conf diskimage_builder/elements/disable-selinux/post-install.d/15-disable-selinux diskimage_builder/elements/dkms/README.rst diskimage_builder/elements/dkms/element-deps @@ -428,6 +435,11 @@ diskimage_builder/elements/local-config/extra-data.d/62-ssh-key diskimage_builder/elements/local-config/install.d/62-ssh-key diskimage_builder/elements/local-config/pre-install.d/02-proxy-settings +diskimage_builder/elements/lvm/README.rst +diskimage_builder/elements/lvm/element-deps +diskimage_builder/elements/lvm/package-installs.yaml +diskimage_builder/elements/lvm/finalise.d/60-bootloader +diskimage_builder/elements/lvm/root.d/10-lvm-check-distro diskimage_builder/elements/manifests/README.rst diskimage_builder/elements/manifests/cleanup.d/01-copy-manifests-dir diskimage_builder/elements/manifests/environment.d/14-manifests @@ -760,8 +772,6 @@ playbooks/legacy/dib-dsvm-functests-python2-centos-7-extras/run.yaml playbooks/legacy/dib-dsvm-functests-python2-centos-7-image/post.yaml playbooks/legacy/dib-dsvm-functests-python2-centos-7-image/run.yaml -playbooks/legacy/dib-dsvm-functests-python2-opensuse-423/post.yaml -playbooks/legacy/dib-dsvm-functests-python2-opensuse-423/run.yaml playbooks/legacy/dib-dsvm-functests-python2-ubuntu-trusty/post.yaml playbooks/legacy/dib-dsvm-functests-python2-ubuntu-trusty/run.yaml playbooks/legacy/dib-dsvm-functests-python2-ubuntu-trusty-extras/post.yaml @@ -774,8 +784,6 @@ playbooks/legacy/dib-dsvm-functests-python3-extras/run.yaml playbooks/legacy/dib-dsvm-functests-python3-image/post.yaml playbooks/legacy/dib-dsvm-functests-python3-image/run.yaml -playbooks/legacy/dib-dsvm-functests-python3-opensuse-423/post.yaml -playbooks/legacy/dib-dsvm-functests-python3-opensuse-423/run.yaml releasenotes/notes/1.16.0-updates-bad91fc0b36c1755.yaml releasenotes/notes/1.17.0-ef744f36d277dba4.yaml releasenotes/notes/1.18.0-4433d3076627f10d.yaml @@ -785,6 +793,7 @@ releasenotes/notes/block-device-lvm-c3b8a214952b4db5.yaml releasenotes/notes/block-device-mkfs-mount-fstab-42d7efe28fc2df04.yaml releasenotes/notes/block-device-partitioning-237249e7ed2bad26.yaml +releasenotes/notes/bootloader-commandline-d2db7524f1f9ad28.yaml releasenotes/notes/bootloader-gpt-d1047f81f3a0631b.yaml releasenotes/notes/centos-retired-f17ae9f6f03e57e3.yaml releasenotes/notes/dash-p-after-install-58a87549c1c906c3.yaml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/diskimage_builder.egg-info/pbr.json new/diskimage-builder-2.17.0/diskimage_builder.egg-info/pbr.json --- old/diskimage-builder-2.16.0/diskimage_builder.egg-info/pbr.json 2018-07-18 07:12:21.000000000 +0200 +++ new/diskimage-builder-2.17.0/diskimage_builder.egg-info/pbr.json 2018-09-13 06:30:23.000000000 +0200 @@ -1 +1 @@ -{"git_version": "1107326", "is_release": true} \ No newline at end of file +{"git_version": "b86af3d", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/doc/source/user_guide/installation.rst new/diskimage-builder-2.17.0/doc/source/user_guide/installation.rst --- old/diskimage-builder-2.16.0/doc/source/user_guide/installation.rst 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/doc/source/user_guide/installation.rst 2018-09-13 06:28:23.000000000 +0200 @@ -1,7 +1,7 @@ Installation ============ -If your distribution does not proivde packages, you should install +If your distribution does not provide packages, you should install ``diskimage-builder`` via ``pip``, mostly likely in a ``virtualenv`` to keep it separate. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/playbooks/legacy/dib-dsvm-functests-python2-opensuse-423/post.yaml new/diskimage-builder-2.17.0/playbooks/legacy/dib-dsvm-functests-python2-opensuse-423/post.yaml --- old/diskimage-builder-2.16.0/playbooks/legacy/dib-dsvm-functests-python2-opensuse-423/post.yaml 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/playbooks/legacy/dib-dsvm-functests-python2-opensuse-423/post.yaml 1970-01-01 01:00:00.000000000 +0100 @@ -1,15 +0,0 @@ -- hosts: primary - tasks: - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/logs/** - - --include=*/ - - --exclude=* - - --prune-empty-dirs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/playbooks/legacy/dib-dsvm-functests-python2-opensuse-423/run.yaml new/diskimage-builder-2.17.0/playbooks/legacy/dib-dsvm-functests-python2-opensuse-423/run.yaml --- old/diskimage-builder-2.16.0/playbooks/legacy/dib-dsvm-functests-python2-opensuse-423/run.yaml 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/playbooks/legacy/dib-dsvm-functests-python2-opensuse-423/run.yaml 1970-01-01 01:00:00.000000000 +0100 @@ -1,74 +0,0 @@ -- hosts: all - name: Autoconverted job legacy-dib-dsvm-functests-python2-opensuse-423 from old - job gate-dib-dsvm-functests-python2-opensuse-423-nv - roles: - - bindep - - tasks: - - - name: Ensure legacy workspace directory - file: - path: '{{ ansible_user_dir }}/workspace' - state: directory - - - shell: - cmd: | - set -u - set -e - set -x - cd ~ - - /usr/zuul-env/bin/zuul-cloner --cache-dir /opt/git \ - git://git.openstack.org \ - openstack/diskimage-builder \ - openstack/requirements - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - set -u - set -e - set -x - # - # We do things that might exceed the default 2GiB tmpfs, and - # use the larger mounted space. - cd ~ - sudo mkdir /opt/dib_cache - sudo chown zuul:zuul /opt/dib_cache - export DIB_NO_TMPFS=1 - export TMPDIR=/opt/dib_cache - - virtualenv -p python2 env - - export UPPER_CONSTRAINTS_FILE=$(pwd)/openstack/requirements/upper-constraints.txt - sed -i '/^diskimage-builder/d' $UPPER_CONSTRAINTS_FILE - ./env/bin/pip install $(pwd)/openstack/diskimage-builder -c $UPPER_CONSTRAINTS_FILE - - # TODO(pabelanger): Remove once we migrated to bindep - ./openstack/diskimage-builder/tests/install_test_deps.sh - - # This sets up some repo files pointing to the infra mirrors - # which are used during test runs - ./openstack/diskimage-builder/contrib/setup-gate-mirrors.sh - - # UPPER_CONSTRAINTS_FILE is causing side effects when doing image - # build, unset it - unset UPPER_CONSTRAINTS_FILE - - # activate the virtualenv so that any tools run by dib run - # using the python inside it - set +u - source ./env/bin/activate - set -u - - ./openstack/diskimage-builder/tests/run_functests.sh - - set +u - deactivate - set -u - - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/playbooks/legacy/dib-dsvm-functests-python3-opensuse-423/post.yaml new/diskimage-builder-2.17.0/playbooks/legacy/dib-dsvm-functests-python3-opensuse-423/post.yaml --- old/diskimage-builder-2.16.0/playbooks/legacy/dib-dsvm-functests-python3-opensuse-423/post.yaml 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/playbooks/legacy/dib-dsvm-functests-python3-opensuse-423/post.yaml 1970-01-01 01:00:00.000000000 +0100 @@ -1,15 +0,0 @@ -- hosts: primary - tasks: - - - name: Copy files from {{ ansible_user_dir }}/workspace/ on node - synchronize: - src: '{{ ansible_user_dir }}/workspace/' - dest: '{{ zuul.executor.log_root }}' - mode: pull - copy_links: true - verify_host: true - rsync_opts: - - --include=/logs/** - - --include=*/ - - --exclude=* - - --prune-empty-dirs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/playbooks/legacy/dib-dsvm-functests-python3-opensuse-423/run.yaml new/diskimage-builder-2.17.0/playbooks/legacy/dib-dsvm-functests-python3-opensuse-423/run.yaml --- old/diskimage-builder-2.16.0/playbooks/legacy/dib-dsvm-functests-python3-opensuse-423/run.yaml 2018-07-18 07:10:39.000000000 +0200 +++ new/diskimage-builder-2.17.0/playbooks/legacy/dib-dsvm-functests-python3-opensuse-423/run.yaml 1970-01-01 01:00:00.000000000 +0100 @@ -1,74 +0,0 @@ -- hosts: all - name: Autoconverted job legacy-dib-dsvm-functests-python3-opensuse-423 from old - job gate-dib-dsvm-functests-python3-opensuse-423-nv - roles: - - bindep - - tasks: - - - name: Ensure legacy workspace directory - file: - path: '{{ ansible_user_dir }}/workspace' - state: directory - - - shell: - cmd: | - set -u - set -e - set -x - cd ~ - - /usr/zuul-env/bin/zuul-cloner --cache-dir /opt/git \ - git://git.openstack.org \ - openstack/diskimage-builder \ - openstack/requirements - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' - - - shell: - cmd: | - set -u - set -e - set -x - # - # We do things that might exceed the default 2GiB tmpfs, and - # use the larger mounted space. - cd ~ - sudo mkdir /opt/dib_cache - sudo chown zuul:zuul /opt/dib_cache - export DIB_NO_TMPFS=1 - export TMPDIR=/opt/dib_cache - - virtualenv -p python2 env - - export UPPER_CONSTRAINTS_FILE=$(pwd)/openstack/requirements/upper-constraints.txt - sed -i '/^diskimage-builder/d' $UPPER_CONSTRAINTS_FILE - ./env/bin/pip install $(pwd)/openstack/diskimage-builder -c $UPPER_CONSTRAINTS_FILE - - # TODO(pabelanger): Remove once we migrated to bindep - ./openstack/diskimage-builder/tests/install_test_deps.sh - - # This sets up some repo files pointing to the infra mirrors - # which are used during test runs - ./openstack/diskimage-builder/contrib/setup-gate-mirrors.sh - - # UPPER_CONSTRAINTS_FILE is causing side effects when doing image - # build, unset it - unset UPPER_CONSTRAINTS_FILE - - # activate the virtualenv so that any tools run by dib run - # using the python inside it - set +u - source ./env/bin/activate - set -u - - ./openstack/diskimage-builder/tests/run_functests.sh - - set +u - deactivate - set -u - - executable: /bin/bash - chdir: '{{ ansible_user_dir }}/workspace' - environment: '{{ zuul | zuul_legacy_vars }}' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/releasenotes/notes/bootloader-commandline-d2db7524f1f9ad28.yaml new/diskimage-builder-2.17.0/releasenotes/notes/bootloader-commandline-d2db7524f1f9ad28.yaml --- old/diskimage-builder-2.16.0/releasenotes/notes/bootloader-commandline-d2db7524f1f9ad28.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/diskimage-builder-2.17.0/releasenotes/notes/bootloader-commandline-d2db7524f1f9ad28.yaml 2018-09-13 06:28:40.000000000 +0200 @@ -0,0 +1,7 @@ +--- +other: + - It has been clarified that the ``DIB_BOOTLOADER_DEFAULT_CMDLINE`` + variable appends its values to grubs + ``GRUB_CMDLINE_LINUX_DEFAULT``, which is used during all normal + boots but not rescue boots; as opposed to applying to + ``GRUB_CMDLINE_LINUX`` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diskimage-builder-2.16.0/releasenotes/notes/reno.cache new/diskimage-builder-2.17.0/releasenotes/notes/reno.cache --- old/diskimage-builder-2.16.0/releasenotes/notes/reno.cache 2018-07-18 07:12:25.000000000 +0200 +++ new/diskimage-builder-2.17.0/releasenotes/notes/reno.cache 2018-09-13 06:30:28.000000000 +0200 @@ -33,6 +33,10 @@ removed.] features: [Create partitions with MBR layout optimized for performance and highly configurable.] + releasenotes/notes/bootloader-commandline-d2db7524f1f9ad28.yaml: + other: ['It has been clarified that the ``DIB_BOOTLOADER_DEFAULT_CMDLINE`` variable + appends its values to grubs ``GRUB_CMDLINE_LINUX_DEFAULT``, which is used + during all normal boots but not rescue boots; as opposed to applying to ``GRUB_CMDLINE_LINUX``'] releasenotes/notes/bootloader-gpt-d1047f81f3a0631b.yaml: features: ['GPT support is added to the bootloader; see documentation for @@ -321,6 +325,9 @@ to reuse the cache for the initial chroot install is future work.] notes: - files: + - [releasenotes/notes/bootloader-commandline-d2db7524f1f9ad28.yaml, f6a2452d4c72d52af1abd6f9d4165ff19a0506ba] + version: 2.17.0 +- files: - [releasenotes/notes/add-modprobe-element-8e3b0287ebb11920.yaml, 31383970c72cd96e9b69c7e4a9e5a92bf9f72529] - [releasenotes/notes/ubuntu-arbitrary-images-c796f5c6dbd40679.yaml, fde82c1f192d346ac3992b1ba30935d29f29818b] version: 2.16.0