From 80ba8c45cda5308010ded08b3d070343a92d58b5 Mon Sep 17 00:00:00 2001
From: Florin Dumitrascu <florin.dumitrascu@enea.com>
Date: Tue, 8 Mar 2016 14:17:01 +0100
Subject: Add fixes and improvements for arm64 deployment

[ Florin Dumitrascu <florin.dumitrascu@enea.com> ]

* arm64 support for OpenDaylight Fuel Plugin

[ Stanislaw Kardach <kda@semihalf.com> ]

* Limit ESP to first drive
* Remove default+timeout+tr from cobbler profile
* Fix puppet syntax errors
* Disable usb tablet on aarch64
* Support direct kernel boot for CirrOS TestVM on aarch64
* Remove git version signature not to confuse patches-export
* Fix VGA support for CirrOS TestVM
* Makefile: Add clean-{docker,build}.

[ Alexandru Avadanii <Alexandru.Avadanii@enea.com> ]

* Performance: Use gzip instead of xz compression.
* Switch mirror proto from https to http.
* Update TODO with remaining tasks.
* Disable amd64 Liberty fixture (no multi-arch support yet).
* m1.micro: Increase RAM size to 128MB for aarch64 images.

Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Signed-off-by: Florin Dumitrascu <florin.dumitrascu@enea.com>
Signed-off-by: Stanislaw Kardach <kda@semihalf.com>
---
 ...1-Use-qemu-debootstrap-for-image-creation.patch |  3 --
 .../0002-Add-FLASH_KERNEL_SKIP-true.patch          |  3 --
 .../0003-Fix-qemu-user-static-replacement.patch    |  3 --
 ...common-cross-debootstrap-newaliases-issue.patch |  3 --
 .../0005-FIXME-s-grub-pc-grub-efi-arm64.patch      |  3 --
 .../fuel-agent/0006-Add-esp-partition-flag.patch   |  3 --
 .../fuel-agent/0007-Add-fs-for-efi-partition.patch | 42 ++++++++++++++--------
 ...tstrap-Use-gzip-instead-of-xz-compression.patch | 35 ++++++++++++++++++
 8 files changed, 63 insertions(+), 32 deletions(-)
 create mode 100644 patches/fuel-agent/0008-bootstrap-Use-gzip-instead-of-xz-compression.patch

(limited to 'patches/fuel-agent')

diff --git a/patches/fuel-agent/0001-Use-qemu-debootstrap-for-image-creation.patch b/patches/fuel-agent/0001-Use-qemu-debootstrap-for-image-creation.patch
index 28ef2cff..e5e76c79 100644
--- a/patches/fuel-agent/0001-Use-qemu-debootstrap-for-image-creation.patch
+++ b/patches/fuel-agent/0001-Use-qemu-debootstrap-for-image-creation.patch
@@ -155,6 +155,3 @@ index 5c37600..a43f693 100644
  Requires:    xz
  Requires:    coreutils
  Requires:    psmisc
--- 
-1.9.1
-
diff --git a/patches/fuel-agent/0002-Add-FLASH_KERNEL_SKIP-true.patch b/patches/fuel-agent/0002-Add-FLASH_KERNEL_SKIP-true.patch
index 260651c5..0c2f2ac9 100644
--- a/patches/fuel-agent/0002-Add-FLASH_KERNEL_SKIP-true.patch
+++ b/patches/fuel-agent/0002-Add-FLASH_KERNEL_SKIP-true.patch
@@ -19,6 +19,3 @@ index af41b2b..6f31732 100644
      os.environ['LC_ALL'] = os.environ['LANG'] = os.environ['LANGUAGE'] = 'C'
  
  
--- 
-1.9.1
-
diff --git a/patches/fuel-agent/0003-Fix-qemu-user-static-replacement.patch b/patches/fuel-agent/0003-Fix-qemu-user-static-replacement.patch
index 1ea93ba3..a4f65d68 100644
--- a/patches/fuel-agent/0003-Fix-qemu-user-static-replacement.patch
+++ b/patches/fuel-agent/0003-Fix-qemu-user-static-replacement.patch
@@ -53,6 +53,3 @@ index 6f31732..abd762e 100644
  
  def create_sparse_tmp_file(dir, suffix, size=8192):
      """Creates sparse file.
--- 
-1.9.1
-
diff --git a/patches/fuel-agent/0004-Prevent-common-cross-debootstrap-newaliases-issue.patch b/patches/fuel-agent/0004-Prevent-common-cross-debootstrap-newaliases-issue.patch
index 1d044585..7f6d2c3d 100644
--- a/patches/fuel-agent/0004-Prevent-common-cross-debootstrap-newaliases-issue.patch
+++ b/patches/fuel-agent/0004-Prevent-common-cross-debootstrap-newaliases-issue.patch
@@ -100,6 +100,3 @@ index abd762e..e11ceba 100644
  def create_sparse_tmp_file(dir, suffix, size=8192):
      """Creates sparse file.
  
--- 
-1.9.1
-
diff --git a/patches/fuel-agent/0005-FIXME-s-grub-pc-grub-efi-arm64.patch b/patches/fuel-agent/0005-FIXME-s-grub-pc-grub-efi-arm64.patch
index 59fe0180..a9d3d5bf 100644
--- a/patches/fuel-agent/0005-FIXME-s-grub-pc-grub-efi-arm64.patch
+++ b/patches/fuel-agent/0005-FIXME-s-grub-pc-grub-efi-arm64.patch
@@ -26,6 +26,3 @@ index c2fef69..3807ca7 100644
          "hpsa-dkms",
          "i40e-dkms",
          "linux-firmware",
--- 
-1.9.1
-
diff --git a/patches/fuel-agent/0006-Add-esp-partition-flag.patch b/patches/fuel-agent/0006-Add-esp-partition-flag.patch
index e180468f..a1990565 100644
--- a/patches/fuel-agent/0006-Add-esp-partition-flag.patch
+++ b/patches/fuel-agent/0006-Add-esp-partition-flag.patch
@@ -46,6 +46,3 @@ index acdd0b3..86349d2 100644
          raise errors.WrongPartitionSchemeError(
              'Unsupported partition flag: %s' % flag)
      if state not in ('on', 'off'):
--- 
-1.9.1
-
diff --git a/patches/fuel-agent/0007-Add-fs-for-efi-partition.patch b/patches/fuel-agent/0007-Add-fs-for-efi-partition.patch
index 573ec133..dbbde129 100644
--- a/patches/fuel-agent/0007-Add-fs-for-efi-partition.patch
+++ b/patches/fuel-agent/0007-Add-fs-for-efi-partition.patch
@@ -3,10 +3,10 @@ Date: Tue, 8 Mar 2016 21:08:55 +0100
 Subject: [PATCH] Add fs for efi partition
 
 ---
- debian/control                | 1 +
- fuel_agent/drivers/nailgun.py | 4 +++-
- specs/fuel-agent.spec         | 1 +
- 3 files changed, 5 insertions(+), 1 deletion(-)
+ debian/control                |  1 +
+ fuel_agent/drivers/nailgun.py | 13 ++++++++++---
+ specs/fuel-agent.spec         |  1 +
+ 3 files changed, 12 insertions(+), 3 deletions(-)
 
 diff --git a/debian/control b/debian/control
 index 189dc00..acfda35 100644
@@ -21,17 +21,34 @@ index 189dc00..acfda35 100644
  	 gdisk,
  	 genisoimage,
 diff --git a/fuel_agent/drivers/nailgun.py b/fuel_agent/drivers/nailgun.py
-index bc532b4..24d0d64 100644
+index bc532b4..f092865 100644
 --- a/fuel_agent/drivers/nailgun.py
 +++ b/fuel_agent/drivers/nailgun.py
-@@ -324,7 +324,9 @@ class Nailgun(BaseDataDriver):
-                 # uefi partition (for future use)
-                 LOG.debug('Adding UEFI partition on disk %s: size=200' %
+@@ -81,6 +81,9 @@ class Nailgun(BaseDataDriver):
+         # was already allocated on first matching volume
+         # or not
+         self._boot_partition_done = False
++        # this var states whether ESP partition was already
++        # allocated on the first matching volume or not
++        self._esp_partition_done = False
+         # this var is used as a flag that /boot fs
+         # has already been added. we need this to
+         # get rid of md over all disks for /boot partition.
+@@ -321,10 +324,14 @@ class Nailgun(BaseDataDriver):
+                 LOG.debug('Adding bios_grub partition on disk %s: size=24' %
+                           disk['name'])
+                 parted.add_partition(size=24, flags=['bios_grub'])
+-                # uefi partition (for future use)
+-                LOG.debug('Adding UEFI partition on disk %s: size=200' %
++                # uefi partition - added only once.
++                if self._is_boot_disk(disk) and not self._esp_partition_done:
++                    LOG.debug('Adding UEFI partition on disk %s: size=200' %
                            disk['name'])
 -                parted.add_partition(size=200, flags=['esp'])
-+                prt = parted.add_partition(size=200, flags=['esp'])
-+                partition_scheme.add_fs(device=prt.name, mount='/boot/efi',
-+                    fs_type='vfat')
++                    prt = parted.add_partition(size=200, flags=['esp'])
++                    partition_scheme.add_fs(device=prt.name, mount='/boot/efi',
++                                            fs_type='vfat')
++                    self._esp_partition_done = True
  
              LOG.debug('Looping over all volumes on disk %s' % disk['name'])
              for volume in disk['volumes']:
@@ -47,6 +64,3 @@ index a43f693..c2b9b51 100644
  Requires:    dpkg
  Requires:    qemu-user-static
  Requires:    xz
--- 
-1.9.1
-
diff --git a/patches/fuel-agent/0008-bootstrap-Use-gzip-instead-of-xz-compression.patch b/patches/fuel-agent/0008-bootstrap-Use-gzip-instead-of-xz-compression.patch
new file mode 100644
index 00000000..19176c90
--- /dev/null
+++ b/patches/fuel-agent/0008-bootstrap-Use-gzip-instead-of-xz-compression.patch
@@ -0,0 +1,35 @@
+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+Date: Wed, 9 Mar 2016 23:02:17 +0100
+Subject: [PATCH] bootstrap: Use gzip instead of xz compression.
+
+bootstrap mksquashfs using qemu-user-static is extremely slow,
+taking up to one hour. gzip, on the other hand, is reasonably fast.
+According to [1], xz is slower, with not much size gain.
+
+[1] https://jonathancarter.org/2015/04/06/squashfs-performance-testing/
+---
+ contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/consts.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/consts.py b/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/consts.py
+index d507156..688197d 100644
+--- a/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/consts.py
++++ b/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/consts.py
+@@ -24,7 +24,7 @@ COMPRESSED_CONTAINER_FORMAT = "tar.gz"
+ UNCOMPRESSED_CONTAINER_FORMAT = "directory"
+ ROOTFS = {'name': 'rootfs',
+           'mask': 'rootfs',
+-          'compress_format': 'xz',
++          'compress_format': 'gzip',
+           'uri': 'http://127.0.0.1:8080/bootstraps/{uuid}/root.squashfs',
+           'format': 'ext4',
+           'container': 'raw'}
+@@ -34,7 +34,7 @@ BOOTSTRAP_MODULES = [
+      'uri': 'http://127.0.0.1:8080/bootstraps/{uuid}/vmlinuz'},
+     {'name': 'initrd',
+      'mask': 'initrd',
+-     'compress_format': 'xz',
++     'compress_format': 'gzip',
+      'uri': 'http://127.0.0.1:8080/bootstraps/{uuid}/initrd.img'},
+     ROOTFS
+ ]
-- 
cgit