Fuel patch to enable virtual deployment 21/2021/2
authorStefan K. Berg <stefan.k.berg@ericsson.com>
Thu, 24 Sep 2015 20:07:46 +0000 (22:07 +0200)
committerJonas Bjurel <jonas.bjurel@ericsson.com>
Fri, 25 Sep 2015 18:32:44 +0000 (18:32 +0000)
Disable ext4 journalling during Fuel master image creation,
otherwise the provisioning process times out on many virtual
setups after 3600 sec.

All credit to Michal Skalski of Mirantis for providing the
information to patch this up:

https://docs.mirantis.com/openstack/fuel/fuel-6.1/release-notes.html#issues-with-image-based-provisioning
https://review.openstack.org/#/c/197943/

Change-Id: I90f68a351b3afe1273440846bc5d56da8f6d3507
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
fuel/build/Makefile
fuel/build/fuel-agent_1.patch [new file with mode: 0644]

index 4714aed..ba4beaf 100644 (file)
@@ -85,6 +85,15 @@ $(ISOCACHE):
        sudo rm -f /etc/apt/apt.conf.d/docker*
        #
        cd /tmp/fuel-main && ./prepare-build-env.sh
+       cd /tmp/fuel-main && make repos
+       # Patch for speeding up image creation in virtual environments,
+       # https://review.openstack.org/#/c/197943/
+       cd /tmp/fuel-main && patch -p0 < $(TOPDIR)/fuel-agent_1.patch
+       cd /tmp/fuel-main/build/repos/nailgun && git config --global user.email "build$opnfv.org"
+       cd /tmp/fuel-main/build/repos/nailgun && git config --global user.name "OPNFV build"
+       cd /tmp/fuel-main/build/repos/nailgun && git add -u .
+       cd /tmp/fuel-main/build/repos/nailgun && git commit -m "Added patch"
+       #
        cd /tmp/fuel-main && make iso
        mv /tmp/fuel-main/build/artifacts/fuel*.iso .
 
diff --git a/fuel/build/fuel-agent_1.patch b/fuel/build/fuel-agent_1.patch
new file mode 100644 (file)
index 0000000..b080896
--- /dev/null
@@ -0,0 +1,36 @@
+*** build/repos/nailgun/fuel_agent/fuel_agent/manager.py.orig  Thu Sep 24 11:08:38 2015
+--- build/repos/nailgun/fuel_agent/fuel_agent/manager.py       Thu Sep 24 11:10:25 2015
+***************
+*** 541,546 ****
+--- 541,552 ----
+                      fs_options=fs.options,
+                      fs_label=fs.label,
+                      dev=str(fs.device))
++                 if fs.type == 'ext4':
++                     LOG.debug('Trying to disable journaling for ext4 '
++                               'in order to speed up the build')
++                     utils.execute('tune2fs', '-O', '^has_journal',
++                                   str(fs.device))
++ 
+  
+              # mounting all images into chroot tree
+              self.mount_target(chroot, treat_mtab=False, pseudo=False)
+***************
+*** 631,636 ****
+--- 637,652 ----
+              self.umount_target(chroot, pseudo=False, try_lazy_umount=False)
+  
+              for image in self.driver.image_scheme.images:
++                 # find fs with the same loop device object
++                 # as image.target_device
++                 fs = self.driver.partition_scheme.fs_by_device(
++                     image.target_device)
++ 
++                 if fs.type == 'ext4':
++                     LOG.debug('Trying to re-enable journaling for ext4')
++                     utils.execute('tune2fs', '-O', 'has_journal',
++                                   str(fs.device))
++ 
+                  LOG.debug('Deattaching loop device from file: %s',
+                            image.img_tmp_file)
+                  bu.deattach_loop(str(image.target_device))