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


Reply via email to