aboutsummaryrefslogtreecommitdiffstats
path: root/patches/fuel-library
diff options
context:
space:
mode:
Diffstat (limited to 'patches/fuel-library')
-rw-r--r--patches/fuel-library/0001-puppet-database-Fix-Percona-XtraBackup-sync.patch62
-rw-r--r--patches/fuel-library/arm64-bug-fixes/0001-nova-config-Disable-usb-tablet-for-aarch64.patch38
-rw-r--r--patches/fuel-library/arm64-bug-fixes/0002-Install-vgabios-and-link-for-aarch64.patch41
-rw-r--r--patches/fuel-library/arm64-bug-fixes/0003-nova-Update-vga-console-defaults-for-armv7-aarch64.patch110
-rw-r--r--patches/fuel-library/arm64-bug-fixes/0004-AArch64-nova-libvirt-Use-host-model-cpu.patch43
-rw-r--r--patches/fuel-library/arm64-bug-fixes/0005-nova-libvirt-fix-delete-instance-with-nvram.patch125
-rw-r--r--patches/fuel-library/arm64-bug-fixes/0006-FIXME-compute.pp-Temporarily-disable-apparmor.patch40
-rw-r--r--patches/fuel-library/direct-kernel-boot/0002-nova-Fix-inject-for-direct-boot-with-part-table.patch98
-rw-r--r--patches/fuel-library/multiarch-efi/0001-Add-arm64-templates-to-cobbler-and-nailgun.patch208
-rw-r--r--patches/fuel-library/multiarch-efi/0002-Add-cobbler-grub-aarch64-to-cobbler-dependencies.patch38
-rw-r--r--patches/fuel-library/multiarch-fuel/0001-Make-qemu-kvm-architecture-aware.patch37
-rw-r--r--patches/fuel-library/multiarch-fuel/0002-Make-TestVM-creation-architecture-aware.patch139
-rw-r--r--patches/fuel-library/multiarch-fuel/0003-build_image.pp-Extract-cluster_arch-from-URI.patch61
-rw-r--r--patches/fuel-library/multiarch-mirrors/0001-Add-arm64-for-auxiliary-repos.patch44
-rw-r--r--patches/fuel-library/mysql-sst-provider/0001-Allow-configuring-MySQL-WSREP-SST-provider.patch67
-rw-r--r--patches/fuel-library/upstream-backports/0001-nova-AArch64-enable-hugepage-support.patch98
16 files changed, 0 insertions, 1249 deletions
diff --git a/patches/fuel-library/0001-puppet-database-Fix-Percona-XtraBackup-sync.patch b/patches/fuel-library/0001-puppet-database-Fix-Percona-XtraBackup-sync.patch
deleted file mode 100644
index ba307520..00000000
--- a/patches/fuel-library/0001-puppet-database-Fix-Percona-XtraBackup-sync.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Dan Andresan <dan.andresan@enea.com>
-Date: Fri, 20 Jan 2017 17:24:40 +0200
-Subject: [PATCH] puppet: database: Fix Percona XtraBackup sync
-
-Recently, Percona released XtraBackup 2.4.5 which considers that SSL
-is enabled if it finds ssl-ca, ssl-cert, ssl-key set up in my.cnf,
-even if ssl is set to false in the same config file. Furthermore,
-it complains that ssl is deprecated on the stdout instead of stderr,
-corrupting xbstream in the process.
-
-Because ssl was set to false, this patch delete all other ssl-* keys
-from the config file, avoiding xtrabackup getting confused.
-
-See percona xtrabackup bugs here:
-https://bugs.launchpad.net/percona-xtrabackup/+bug/1646480
-https://bugs.launchpad.net/percona-xtrabackup/+bug/1647340
-
-Closes-bug: https://jira.opnfv.org/browse/ARMBAND-197
-
-Signed-off-by: Dan Andresan <dan.andresan@enea.com>
----
- .../puppet/osnailyfacter/manifests/database/database.pp | 14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/deployment/puppet/osnailyfacter/manifests/database/database.pp b/deployment/puppet/osnailyfacter/manifests/database/database.pp
-index 4fca959..ce406d7 100644
---- a/deployment/puppet/osnailyfacter/manifests/database/database.pp
-+++ b/deployment/puppet/osnailyfacter/manifests/database/database.pp
-@@ -253,12 +253,24 @@ class osnailyfacter::database::database {
- package_name => $mysql_package_name,
- }
-
-+ # remove ssl - not used and confuse Percona XtraBackup 2.4.5
-+ # see ARMBAND-197: https://jira.opnfv.org/browse/ARMBAND-197
-+ $percona_hotfix = {
-+ 'mysqld' => {
-+ 'ssl' => undef,
-+ 'ssl-ca' => undef,
-+ 'ssl-cert' => undef,
-+ 'ssl-key' => undef
-+ }
-+ }
-+
- # build our mysql options to be configured in my.cnf
- $mysql_override_options = mysql_deepmerge(
- $fuel_override_options,
- $ignore_db_dir_options,
- $binary_logs_options,
-- $syslog_options
-+ $syslog_options,
-+ $percona_hotfix
- )
- $galera_options = mysql_deepmerge($wsrep_options, $vendor_override_options)
- $override_options = mysql_deepmerge($mysql_override_options, $galera_options)
diff --git a/patches/fuel-library/arm64-bug-fixes/0001-nova-config-Disable-usb-tablet-for-aarch64.patch b/patches/fuel-library/arm64-bug-fixes/0001-nova-config-Disable-usb-tablet-for-aarch64.patch
deleted file mode 100644
index ae90eb4b..00000000
--- a/patches/fuel-library/arm64-bug-fixes/0001-nova-config-Disable-usb-tablet-for-aarch64.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB, Cavium and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
-Date: Tue, 15 Mar 2016 11:33:52 +0100
-Subject: [PATCH] nova config: Disable usb tablet for aarch64
-
-[ Alexandru Avadanii ]
-Rebased for Newton: reworked use_usb_tablet using pointer_model.
-
-JIRA: ARMBAND-194
-
-Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- deployment/puppet/openstack_tasks/manifests/roles/compute.pp | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index 5b247b0..0a1a1c7 100644
---- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-+++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -391,6 +391,10 @@ class openstack_tasks::roles::compute {
- 'libvirt/live_migration_flag': value => 'VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST';
- 'libvirt/block_migration_flag': value => 'VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_NON_SHARED_INC';
- 'DEFAULT/connection_type': value => 'libvirt';
-+ 'DEFAULT/pointer_model': value => $::architecture ? {
-+ /(arm64|aarch64)/ => ps2mouse,
-+ default => usbtablet,
-+ };
- }
-
- # TODO (iberezovskiy): rework this option management once it's available in puppet-nova module
diff --git a/patches/fuel-library/arm64-bug-fixes/0002-Install-vgabios-and-link-for-aarch64.patch b/patches/fuel-library/arm64-bug-fixes/0002-Install-vgabios-and-link-for-aarch64.patch
deleted file mode 100644
index defbcf9b..00000000
--- a/patches/fuel-library/arm64-bug-fixes/0002-Install-vgabios-and-link-for-aarch64.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB, Cavium and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Tue, 15 Mar 2016 11:33:52 +0100
-Subject: [PATCH] Install vgabios (and link) for aarch64
-
-vgabios is needed for standard VGA mode in AArch64 VMs, so
-install it by default on AArch64 and create missing link
-in </usr/share/qemu> to </usr/share/vgabios/vgabios.bin>.
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
----
- deployment/puppet/openstack_tasks/manifests/roles/compute.pp | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index 4240126..b18fa7b 100644
---- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-+++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -409,6 +409,14 @@ class openstack_tasks::roles::compute {
- libvirt_service_name => 'libvirt-bin',
- virtlock_service_name => 'virtlockd',
- virtlog_service_name => 'virtlogd',
-+ } ->
-+ package { 'vgabios':
-+ ensure => present;
-+ } ->
-+ file { '/usr/share/qemu/vgabios-stdvga.bin':
-+ ensure => link,
-+ target => '/usr/share/vgabios/vgabios.bin',
-+ replace => false,
- }
-
- class { '::nova::migration::libvirt':
diff --git a/patches/fuel-library/arm64-bug-fixes/0003-nova-Update-vga-console-defaults-for-armv7-aarch64.patch b/patches/fuel-library/arm64-bug-fixes/0003-nova-Update-vga-console-defaults-for-armv7-aarch64.patch
deleted file mode 100644
index f3860196..00000000
--- a/patches/fuel-library/arm64-bug-fixes/0003-nova-Update-vga-console-defaults-for-armv7-aarch64.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB, Cavium and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
-Date: Tue, 22 Mar 2016 12:05:09 +0100
-Subject: [PATCH] nova: Update vga, console defaults for armv7, aarch64
-
-Nova hardcodes default options for both video=cirrus and console.
-armv7 and aarch64 VMs require video=vga, and since most applications
-use PL011 serial driver for guests, adding console=ttyAMA0 is also
-a nice UX addition.
----
- .../openstack/files/nova-libvirt-vga-console.patch | 40 ++++++++++++++++++++++
- .../openstack_tasks/manifests/roles/compute.pp | 19 ++++++++++
- 2 files changed, 59 insertions(+)
- create mode 100644 deployment/puppet/openstack/files/nova-libvirt-vga-console.patch
-
-diff --git a/deployment/puppet/openstack/files/nova-libvirt-vga-console.patch b/deployment/puppet/openstack/files/nova-libvirt-vga-console.patch
-new file mode 100644
-index 0000000..3594276
---- /dev/null
-+++ b/deployment/puppet/openstack/files/nova-libvirt-vga-console.patch
-@@ -0,0 +1,40 @@
-+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
-+Date: Tue, 22 Mar 2016 12:05:09 +0100
-+Subject: [PATCH] Update vga, console defaults for armv7 and aarch64
-+
-+Nova hardcodes default options for both video=cirrus and console.
-+armv7 and aarch64 VMs require video=vga, and since most applications
-+use PL011 serial driver for guests, adding console=ttyAMA0 is also
-+a nice UX addition.
-+
-+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
-+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-+---
-+
-+diff --git a/virt/libvirt/driver.py b/virt/libvirt/driver.py
-+index 920a283..751b140 100644
-+--- a/virt/libvirt/driver.py
-++++ b/virt/libvirt/driver.py
-+@@ -3834,7 +3834,11 @@
-+ if virt_type == "xen":
-+ guest.os_cmdline = "ro root=%s" % root_device_name
-+ else:
-++ guestarch = libvirt_utils.get_arch(image_meta)
-+ guest.os_cmdline = ("root=%s %s" % (root_device_name, CONSOLE))
-++ if guestarch in (arch.ARMV7, arch.AARCH64):
-++ # NOTE(armband): ARM v7/v8 use PL011 drv, add ttyAMA0 console
-++ guest.os_cmdline += " console=ttyAMA0"
-+ if virt_type == "qemu":
-+ guest.os_cmdline += " no_timer_check"
-+ if instance.ramdisk_id:
-+@@ -3972,7 +3972,9 @@ class LibvirtDriver(driver.ComputeDriver):
-+ video.type = 'xen'
-+ elif CONF.libvirt.virt_type == 'parallels':
-+ video.type = 'vga'
-+- elif guestarch in (arch.PPC, arch.PPC64, arch.PPC64LE):
-++ elif guestarch in (arch.ARMV7, arch.AARCH64,
-++ arch.PPC, arch.PPC64, arch.PPC64LE):
-++ # NOTE(armband): Added ARM v7/v8, same as on PPC.
-+ # NOTE(ldbragst): PowerKVM doesn't support 'cirrus' be default
-+ # so use 'vga' instead when running on Power hardware.
-+ video.type = 'vga'
-diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index b18fa7b..2f0f2a8 100644
---- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-+++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -158,6 +158,12 @@ class openstack_tasks::roles::compute {
-
- include ::nova::params
-
-+ if ! defined(Package['patch']) {
-+ package { 'patch':
-+ ensure => 'present',
-+ }
-+ }
-+
- case $::osfamily {
- 'RedHat': {
- # From legacy libvirt.pp
-@@ -290,5 +296,6 @@ class openstack_tasks::roles::compute {
- }
-
- $notify_on_state_change = 'vm_and_task_state'
-+ $nova_path = '/usr/lib/python2.7/dist-packages/nova'
-
- class { '::nova':
-@@ -311,5 +318,17 @@ class openstack_tasks::roles::compute {
- rabbit_heartbeat_timeout_threshold => $rabbit_heartbeat_timeout_threshold,
- rabbit_heartbeat_rate => $rabbit_heartbeat_rate,
- os_region_name => $region_name,
-+ } ->
-+ # FIXME(armband): Workaround for missing arm defaults in nova libvirt driver
-+ file { "${nova_path}/libvirt-vga-console.patch":
-+ ensure => "file",
-+ source => "puppet:///modules/openstack/nova-libvirt-vga-console.patch",
-+ } ->
-+ exec { 'nova libvirt driver patch arm defaults':
-+ path => ['/usr/bin'],
-+ command => "patch -p1 < ${nova_path}/libvirt-vga-console.patch",
-+ unless => "patch -p1 -R -N --dry-run < ${nova_path}/libvirt-vga-console.patch",
-+ cwd => $nova_path,
-+ require => [Package['patch']],
- }
-
diff --git a/patches/fuel-library/arm64-bug-fixes/0004-AArch64-nova-libvirt-Use-host-model-cpu.patch b/patches/fuel-library/arm64-bug-fixes/0004-AArch64-nova-libvirt-Use-host-model-cpu.patch
deleted file mode 100644
index 6f5533fe..00000000
--- a/patches/fuel-library/arm64-bug-fixes/0004-AArch64-nova-libvirt-Use-host-model-cpu.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Thu, 19 Jan 2017 19:19:28 +0100
-Subject: [PATCH] AArch64: nova: libvirt: Use host-model cpu
-
-Closes-bug: https://jira.opnfv.org/browse/ARMBAND-193
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- deployment/puppet/openstack_tasks/manifests/roles/compute.pp | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index a6f4729..f6e6698 100644
---- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-+++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -319,9 +319,18 @@ class openstack_tasks::roles::compute {
- # guest OS by using a combination of CPU features and other parameters (such
- # as CPUID level) that don't work. Until these issues are fixed, it's a good
- # idea to avoid using host-model
-+ # NOTE(armband): AArch64: Use host-model cpu
- # http://libvirt.org/formatdomain.html#elementsCPU
- # https://bugs.launchpad.net/mos/+bug/1618473
-- $libvirt_cpu_mode = 'none'
-+ # https://jira.opnfv.org/browse/ARMBAND-193
-+ if str2bool($::is_virtual) {
-+ $libvirt_cpu_mode = 'none'
-+ } else {
-+ $libvirt_cpu_mode = $::architecture ? {
-+ /(arm64|aarch64)/ => 'host-model',
-+ default => 'none',
-+ }
-+ }
-
- # Install / configure nova-compute
-
diff --git a/patches/fuel-library/arm64-bug-fixes/0005-nova-libvirt-fix-delete-instance-with-nvram.patch b/patches/fuel-library/arm64-bug-fixes/0005-nova-libvirt-fix-delete-instance-with-nvram.patch
deleted file mode 100644
index e2d5f73b..00000000
--- a/patches/fuel-library/arm64-bug-fixes/0005-nova-libvirt-fix-delete-instance-with-nvram.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Thu, 19 Jan 2017 23:03:54 +0100
-Subject: [PATCH] nova: libvirt: fix delete instance with nvram
-
-Backported from [1].
-
-Closes-bug: 1567807
-
-[1] https://review.openstack.org/#/q/
- 539d381434ccadcdc3f5d58c2705c35558a3a065
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- .../files/nova-libvirt-delete-with-nvram.patch | 70 ++++++++++++++++++++++
- .../openstack_tasks/manifests/roles/compute.pp | 12 ++++
- 2 files changed, 82 insertions(+)
- create mode 100644 deployment/puppet/openstack/files/nova-libvirt-delete-with-nvram.patch
-
-diff --git a/deployment/puppet/openstack/files/nova-libvirt-delete-with-nvram.patch b/deployment/puppet/openstack/files/nova-libvirt-delete-with-nvram.patch
-new file mode 100644
-index 0000000..5d4f67c
---- /dev/null
-+++ b/deployment/puppet/openstack/files/nova-libvirt-delete-with-nvram.patch
-@@ -0,0 +1,70 @@
-+From: Kevin Zhao <kevin.zhao@linaro.org>
-+Date: Thu, 5 Jan 2017 21:32:41 +0000
-+Subject: [PATCH] libvirt: fix nova can't delete the instance with nvram
-+
-+Currently libvirt needs a flag when deleting an VM with a nvram file,
-+without which nova can't delete an instance booted with UEFI. Add
-+deletion flag for NVRAM. Also add a test case.
-+
-+[ Alexandru Avadanii ]
-+Removed chunks affecting tests and adapted for OPNFV Armband.
-+
-+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-+Co-authored-by: Derek Higgins <derekh@redhat.com>
-+Change-Id: I46baa952b6c3a1a4c5cf2660931f317cafb5757d
-+Closes-Bug: #1567807
-+---
-+
-+diff --git a/virt/libvirt/driver.py b/virt/libvirt/driver.py
-+--- a/virt/libvirt/driver.py
-++++ b/virt/libvirt/driver.py
-+@@ -903,7 +903,8 @@ class LibvirtDriver(driver.ComputeDriver):
-+ try:
-+ guest = self._host.get_guest(instance)
-+ try:
-+- guest.delete_configuration()
-++ support_uefi = self._has_uefi_support()
-++ guest.delete_configuration(support_uefi)
-+ except libvirt.libvirtError as e:
-+ with excutils.save_and_reraise_exception():
-+ errcode = e.get_error_code()
-+@@ -1241,7 +1242,8 @@ class LibvirtDriver(driver.ComputeDriver):
-+ # If any part of this block fails, the domain is
-+ # re-defined regardless.
-+ if guest.has_persistent_configuration():
-+- guest.delete_configuration()
-++ support_uefi = self._has_uefi_support()
-++ guest.delete_configuration(support_uefi)
-+
-+ # Start copy with VIR_DOMAIN_REBASE_REUSE_EXT flag to
-+ # allow writing to existing external volume file
-+@@ -1760,7 +1762,8 @@ class LibvirtDriver(driver.ComputeDriver):
-+ # If any part of this block fails, the domain is
-+ # re-defined regardless.
-+ if guest.has_persistent_configuration():
-+- guest.delete_configuration()
-++ support_uefi = self._has_uefi_support()
-++ guest.delete_configuration(support_uefi)
-+
-+ # NOTE (rmk): Establish a temporary mirror of our root disk and
-+ # issue an abort once we have a complete copy.
-+diff --git a/virt/libvirt/guest.py b/virt/libvirt/guest.py
-+--- a/virt/libvirt/guest.py
-++++ b/virt/libvirt/guest.py
-+@@ -262,11 +262,13 @@ class Guest(object):
-+ yield VCPUInfo(
-+ id=vcpu[0], cpu=vcpu[3], state=vcpu[1], time=vcpu[2])
-+
-+- def delete_configuration(self):
-++ def delete_configuration(self, support_uefi=False):
-+ """Undefines a domain from hypervisor."""
-+ try:
-+- self._domain.undefineFlags(
-+- libvirt.VIR_DOMAIN_UNDEFINE_MANAGED_SAVE)
-++ flags = libvirt.VIR_DOMAIN_UNDEFINE_MANAGED_SAVE
-++ if support_uefi:
-++ flags |= libvirt.VIR_DOMAIN_UNDEFINE_NVRAM
-++ self._domain.undefineFlags(flags)
-+ except libvirt.libvirtError:
-+ LOG.debug("Error from libvirt during undefineFlags. %d"
-+ "Retrying with undefine", self.id)
-diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index f6e6698..dd0c034 100644
---- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-+++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -301,6 +301,18 @@ class openstack_tasks::roles::compute {
- unless => "patch -p1 -R -N --dry-run < ${nova_path}/libvirt-vga-console.patch",
- cwd => $nova_path,
- require => [Package['patch']],
-+ } ->
-+ # FIXME(armband): Backport fix: nova delete instance with nvram
-+ file { "${nova_path}/nova-libvirt-delete-with-nvram.patch":
-+ ensure => "file",
-+ source => "puppet:///modules/openstack/nova-libvirt-delete-with-nvram.patch",
-+ } ->
-+ exec { 'nova libvirt delete instance with nvram':
-+ path => ['/usr/bin'],
-+ command => "patch -p1 < ${nova_path}/nova-libvirt-delete-with-nvram.patch",
-+ unless => "patch -p1 -R -N --dry-run < ${nova_path}/nova-libvirt-delete-with-nvram.patch",
-+ cwd => $nova_path,
-+ require => [Package['patch']],
- }
-
- class { '::nova::cache':
diff --git a/patches/fuel-library/arm64-bug-fixes/0006-FIXME-compute.pp-Temporarily-disable-apparmor.patch b/patches/fuel-library/arm64-bug-fixes/0006-FIXME-compute.pp-Temporarily-disable-apparmor.patch
deleted file mode 100644
index 05c143dd..00000000
--- a/patches/fuel-library/arm64-bug-fixes/0006-FIXME-compute.pp-Temporarily-disable-apparmor.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Sun, 26 Mar 2017 20:14:55 +0200
-Subject: [PATCH] FIXME: compute.pp: Temporarily disable apparmor
-
-Apparmor profiles need to be refreshed for Armband specific
-version of libvirt/qemu/etc.; until updated profiles land,
-disable libvirt qemu security driver.
-
-JIRA: https://jira.opnfv.org/browse/ARMBAND-235
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- deployment/puppet/openstack_tasks/manifests/roles/compute.pp | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index d81be2a..2844c72 100644
---- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-+++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -538,9 +538,11 @@ class openstack_tasks::roles::compute {
- require => Package['apparmor'],
- }
-
-+ # FIXME(armband): HACK: Disable apparmor until profiles are updated
-+ # https://jira.opnfv.org/browse/ARMBAND-235
- file_line { 'qemu_apparmor':
- path => '/etc/libvirt/qemu.conf',
-- line => 'security_driver = "apparmor"',
-+ line => 'security_driver = "none"',
- require => [Package['libvirt'], Service['apparmor']],
- notify => Service['libvirt']
- }
diff --git a/patches/fuel-library/direct-kernel-boot/0002-nova-Fix-inject-for-direct-boot-with-part-table.patch b/patches/fuel-library/direct-kernel-boot/0002-nova-Fix-inject-for-direct-boot-with-part-table.patch
deleted file mode 100644
index f84ed7d4..00000000
--- a/patches/fuel-library/direct-kernel-boot/0002-nova-Fix-inject-for-direct-boot-with-part-table.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB, Cavium and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Fri, 25 Mar 2016 16:12:08 +0100
-Subject: [PATCH] nova: Fix inject for direct boot with part table.
-
-See [1] for full bug description.
-For now, we detect direct kernel boot with a partition table inside
-disk image by passing target_partition when root kernel arg points
-to a partition (instead of the whole disk).
-
-[1] https://bugs.launchpad.net/nova/+bug/1290455
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
----
- .../openstack/files/nova-libvirt-inject.patch | 44 ++++++++++++++++++++++
- .../openstack_tasks/manifests/roles/compute.pp | 12 ++++++
- 2 files changed, 56 insertions(+)
- create mode 100644 deployment/puppet/openstack/files/nova-libvirt-inject.patch
-
-diff --git a/deployment/puppet/openstack/files/nova-libvirt-inject.patch b/deployment/puppet/openstack/files/nova-libvirt-inject.patch
-new file mode 100644
-index 0000000..b86927e
---- /dev/null
-+++ b/deployment/puppet/openstack/files/nova-libvirt-inject.patch
-@@ -0,0 +1,44 @@
-+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-+Date: Tue, 22 Mar 2016 12:05:09 +0100
-+Subject: [PATCH] Fix inject for direct boot with partition table
-+
-+See [1] for full bug description.
-+For now, we detect direct kernel boot with a partition table inside
-+disk image by passing target_partition when root kernel arg points
-+to a partition (instead of the whole disk).
-+
-+[1] https://bugs.launchpad.net/nova/+bug/1290455
-+
-+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
-+---
-+
-+diff --git a/virt/libvirt/driver.py b/virt/libvirt/driver.py
-+index 920a283..751b140 100644
-+--- a/virt/libvirt/driver.py
-++++ b/virt/libvirt/driver.py
-+@@ -34,6 +34,7 @@
-+ import mmap
-+ import operator
-+ import os
-++import re
-+ import shutil
-+ import tempfile
-+ import time
-+@@ -2820,7 +2821,15 @@
-+ """
-+ # Handles the partition need to be used.
-+ target_partition = None
-+- if not instance.kernel_id:
-++ image_meta = objects.ImageMeta.from_instance(instance)
-++ # FIXME(armband): https://bugs.launchpad.net/nova/+bug/1290455
-++ # Support direct kernel boot with a partition table inside disk image:
-++ # pass target_partition when root kernel arg points to a partition
-++ # (instead of the whole disk).
-++ has_partition_table = re.search("root=/dev/.d.([1-9]+)",
-++ str(image_meta.properties.get("os_command_line")))
-++
-++ if not instance.kernel_id or has_partition_table:
-+ target_partition = CONF.libvirt.inject_partition
-+ if target_partition == 0:
-+ target_partition = None
-diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index dc61033..3fcfb51 100644
---- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-+++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -319,4 +319,16 @@ class openstack_tasks::roles::compute {
- } ->
-+ # FIXME(armband): Fix inject for part image direct boot (bug LP #1469308)
-+ file { "${nova_path}/libvirt-inject.patch":
-+ ensure => "file",
-+ source => "puppet:///modules/openstack/nova-libvirt-inject.patch",
-+ } ->
-+ exec { 'nova libvirt driver patch partitioned injection':
-+ path => ['/usr/bin'],
-+ command => "patch -p1 < ${nova_path}/libvirt-inject.patch",
-+ unless => "patch -p1 -R -N --dry-run < ${nova_path}/libvirt-inject.patch",
-+ cwd => $nova_path,
-+ require => [Package['patch']],
-+ } ->
- # FIXME(armband): Workaround for missing arm defaults in nova libvirt driver
- file { "${nova_path}/libvirt-vga-console.patch":
- ensure => "file",
diff --git a/patches/fuel-library/multiarch-efi/0001-Add-arm64-templates-to-cobbler-and-nailgun.patch b/patches/fuel-library/multiarch-efi/0001-Add-arm64-templates-to-cobbler-and-nailgun.patch
deleted file mode 100644
index a7959627..00000000
--- a/patches/fuel-library/multiarch-efi/0001-Add-arm64-templates-to-cobbler-and-nailgun.patch
+++ /dev/null
@@ -1,208 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB, Cavium and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
-Date: Sun, 21 Feb 2016 16:29:52 +0100
-Subject: [PATCH] Add arm64 templates to cobbler and nailgun
-
-Add grub template import to cobbler server manifest
-
-Add arm64 templates to cobbler and nailgun
-
-[ Matei Valeanu ]
-Add grub template to cobbler for MAC-files
-Limitation: grub2 needs to be installed directly on the
-root (/) of a device or partition, as the MAC-files will
-search for /grub/grub.cfg on the available partitions
-
-[ Alexandru Avadanii ]
-Rebased for Fuel Newton after upstream change:
-"Remove deprecated cobbler parts for classic provisioning" [1].
-
-[1] https://github.com/openstack/fuel-library/commit/
- e207593d7b3234cfbde6689dbccdcafe6ba67e58
-
-Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
-Signed-off-by: Matei Valeanu <Matei.Valeanu@enea.com>
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- deployment/puppet/cobbler/manifests/server.pp | 36 ++++++++++++++++++++++
- .../puppet/cobbler/templates/dnsmasq.template.erb | 2 ++
- .../cobbler/templates/efidefault.template.erb | 5 +++
- .../cobbler/templates/grublocal.template.erb | 2 ++
- .../cobbler/templates/grubprofile.template.erb | 12 ++++++++
- .../cobbler/templates/grubsystem.template.erb | 16 ++++++++++
- deployment/puppet/fuel/manifests/auxiliaryrepos.pp | 12 +++++---
- deployment/puppet/fuel/manifests/cobbler.pp | 36 +++++++++++++++++-----
- 10 files changed, 125 insertions(+), 11 deletions(-)
- create mode 100644 deployment/puppet/cobbler/templates/efidefault.template.erb
- create mode 100644 deployment/puppet/cobbler/templates/grublocal.template.erb
- create mode 100644 deployment/puppet/cobbler/templates/grubprofile.template.erb
- create mode 100644 deployment/puppet/cobbler/templates/grubsystem.template.erb
-
-diff --git a/deployment/puppet/cobbler/manifests/server.pp b/deployment/puppet/cobbler/manifests/server.pp
-index 891dff7..52936d5 100644
---- a/deployment/puppet/cobbler/manifests/server.pp
-+++ b/deployment/puppet/cobbler/manifests/server.pp
-@@ -297,6 +297,42 @@ class cobbler::server (
- notify => [Service[$cobbler_service], Exec['cobbler_sync']],
- }
-
-+ file { '/etc/cobbler/pxe/efidefault.template':
-+ content => template('cobbler/efidefault.template.erb'),
-+ owner => 'root',
-+ group => 'root',
-+ mode => '0644',
-+ require => Package[$cobbler::packages::cobbler_package],
-+ notify => [Service[$cobbler_service], Exec['cobbler_sync']],
-+ }
-+
-+ file { '/etc/cobbler/pxe/grubprofile.template':
-+ content => template('cobbler/grubprofile.template.erb'),
-+ owner => 'root',
-+ group => 'root',
-+ mode => '0644',
-+ require => Package[$cobbler::packages::cobbler_package],
-+ notify => [Service[$cobbler_service], Exec['cobbler_sync']],
-+ }
-+
-+ file { '/etc/cobbler/pxe/grubsystem.template':
-+ content => template('cobbler/grubsystem.template.erb'),
-+ owner => 'root',
-+ group => 'root',
-+ mode => '0644',
-+ require => Package[$cobbler::packages::cobbler_package],
-+ notify => [Service[$cobbler_service], Exec['cobbler_sync']],
-+ }
-+
-+ file { '/etc/cobbler/pxe/grublocal.template':
-+ content => template('cobbler/grublocal.template.erb'),
-+ owner => 'root',
-+ group => 'root',
-+ mode => '0644',
-+ require => Package[$cobbler::packages::cobbler_package],
-+ notify => [Service[$cobbler_service], Exec['cobbler_sync']],
-+ }
-+
- exec { '/var/lib/tftpboot/chain.c32':
- command => 'cp /usr/share/syslinux/chain.c32 /var/lib/tftpboot/chain.c32',
- unless => 'test -e /var/lib/tftpboot/chain.c32',
-diff --git a/deployment/puppet/cobbler/templates/dnsmasq.template.erb b/deployment/puppet/cobbler/templates/dnsmasq.template.erb
-index d70f8de..98278e9 100644
---- a/deployment/puppet/cobbler/templates/dnsmasq.template.erb
-+++ b/deployment/puppet/cobbler/templates/dnsmasq.template.erb
-@@ -41,5 +41,7 @@ dhcp-no-override
- # by assigning IPs one by one instead of using hash algorithm.
- dhcp-sequential-ip
-
-+dhcp-match=set:arm64,93,11
-+dhcp-boot=net:arm64,grub/grub-aarch64.efi,boothost,<%= @next_server %>
- dhcp-option=6,<%= @name_server %>
- $insert_cobbler_system_definitions
-diff --git a/deployment/puppet/cobbler/templates/efidefault.template.erb b/deployment/puppet/cobbler/templates/efidefault.template.erb
-new file mode 100644
-index 0000000..af09eb8
---- /dev/null
-+++ b/deployment/puppet/cobbler/templates/efidefault.template.erb
-@@ -0,0 +1,5 @@
-+set default=1
-+set timeout=5
-+tr -s ipxe_mac ':' '-' $net_default_mac
-+
-+$grub_menu_items
-diff --git a/deployment/puppet/cobbler/templates/grublocal.template.erb b/deployment/puppet/cobbler/templates/grublocal.template.erb
-new file mode 100644
-index 0000000..e16c27d
---- /dev/null
-+++ b/deployment/puppet/cobbler/templates/grublocal.template.erb
-@@ -0,0 +1,2 @@
-+search --file --no-floppy --set grub_install_device /grub/grub.cfg
-+configfile ($grub_install_device)/grub/grub.cfg
-diff --git a/deployment/puppet/cobbler/templates/grubprofile.template.erb b/deployment/puppet/cobbler/templates/grubprofile.template.erb
-new file mode 100644
-index 0000000..eb7557c
---- /dev/null
-+++ b/deployment/puppet/cobbler/templates/grubprofile.template.erb
-@@ -0,0 +1,12 @@
-+menuentry '$profile_name' {
-+ echo 'Network status:'
-+ net_ls_cards
-+ net_ls_addr
-+ net_ls_routes
-+
-+ echo 'Loading Linux ...'
-+ linux (tftp)$kernel_path $kernel_options BOOTIF=01-$ipxe_mac
-+ echo 'Loading initial ramdisk ...'
-+ initrd (tftp)$initrd_path
-+ echo 'Booting bootstrap image ...'
-+}
-diff --git a/deployment/puppet/cobbler/templates/grubsystem.template.erb b/deployment/puppet/cobbler/templates/grubsystem.template.erb
-new file mode 100644
-index 0000000..9a191bc
---- /dev/null
-+++ b/deployment/puppet/cobbler/templates/grubsystem.template.erb
-@@ -0,0 +1,16 @@
-+set default=1
-+set timeout=5
-+tr -s ipxe_mac ':' '-' $net_default_mac
-+
-+menuentry '$profile_name' {
-+ echo 'Network status:'
-+ net_ls_cards
-+ net_ls_addr
-+ net_ls_routes
-+
-+ echo 'Loading Linux ...'
-+ linux (tftp)$kernel_path $kernel_options BOOTIF=01-$ipxe_mac
-+ echo 'Loading initial ramdisk ...'
-+ initrd (tftp)$initrd_path
-+ echo 'Booting bootstrap image ...'
-+}
-diff --git a/deployment/puppet/fuel/manifests/auxiliaryrepos.pp b/deployment/puppet/fuel/manifests/auxiliaryrepos.pp
-index 493ffc6..909fc92 100644
---- a/deployment/puppet/fuel/manifests/auxiliaryrepos.pp
-+++ b/deployment/puppet/fuel/manifests/auxiliaryrepos.pp
-@@ -53,17 +53,21 @@ class fuel::auxiliaryrepos(
-
- exec { 'create_ubuntu_repo_dirs':
- path => '/bin:/sbin:/usr/bin:/usr/sbin',
-- command => "bash -c \"mkdir -p ${ubuntu_dir}/pool/{main,restricted} ${ubuntu_dir}/dists/auxiliary/{main,restricted}/binary-amd64/\"",
-+ command => "bash -c \"mkdir -p ${ubuntu_dir}/pool/{main,restricted} ${ubuntu_dir}/dists/auxiliary/{main,restricted}/binary-{amd64,arm64}/\"",
- unless => "test -d ${ubuntu_dir}/pool && \
- test -d ${ubuntu_dir}/dists/auxiliary/main/binary-amd64 && \
-- test -d ${ubuntu_dir}/dists/auxiliary/restricted/binary-amd64",
-+ test -d ${ubuntu_dir}/dists/auxiliary/restricted/binary-amd64 && \
-+ test -d ${ubuntu_dir}/dists/auxiliary/main/binary-arm64 && \
-+ test -d ${ubuntu_dir}/dists/auxiliary/restricted/binary-arm64",
- }
-
- exec { 'create_ubuntu_repo_Packages':
- path => '/bin:/sbin:/usr/bin:/usr/sbin',
-- command => "bash -c \"touch ${ubuntu_dir}/dists/auxiliary/{main,restricted}/binary-amd64/Packages\"",
-+ command => "bash -c \"touch ${ubuntu_dir}/dists/auxiliary/{main,restricted}/binary-{amd64,arm64}/Packages\"",
- unless => "test -f ${ubuntu_dir}/dists/auxiliary/main/binary-amd64/Packages && \
-- test -f ${ubuntu_dir}/dists/auxiliary/restricted/binary-amd64/Packages",
-+ test -f ${ubuntu_dir}/dists/auxiliary/restricted/binary-amd64/Packages && \
-+ test -f ${ubuntu_dir}/dists/auxiliary/main/binary-arm64/Packages && \
-+ test -f ${ubuntu_dir}/dists/auxiliary/restricted/binary-arm64/Packages",
- }
-
- file { $release_files:
-diff --git a/deployment/puppet/fuel/manifests/cobbler.pp b/deployment/puppet/fuel/manifests/cobbler.pp
-index b403733..c89027d 100644
---- a/deployment/puppet/fuel/manifests/cobbler.pp
-+++ b/deployment/puppet/fuel/manifests/cobbler.pp
-@@ -166,7 +188,7 @@ class fuel::cobbler(
- distro => 'ubuntu_bootstrap',
- menu => true,
- kickstart => '',
-- kopts => extend_kopts($bootstrap_meta['extend_kopts'], "console=ttyS0,9600 console=tty0 panic=60 ethdevice-timeout=${bootstrap_ethdevice_timeout} boot=live toram components fetch=http://${server}:8080/bootstraps/active_bootstrap/root.squashfs biosdevname=0 url=${nailgun_api_url} mco_user=${mco_user} mco_pass=${mco_pass} ip=frommedia"),
-+ kopts => extend_kopts($bootstrap_meta['extend_kopts'], "console=ttyAMA0,115200 console=ttyS0,115200 panic=60 ethdevice-timeout=${bootstrap_ethdevice_timeout} boot=live toram components fetch=http://${server}:8080/bootstraps/active_bootstrap/root.squashfs biosdevname=0 url=${nailgun_api_url} mco_user=${mco_user} mco_pass=${mco_pass} ip=frommedia"),
- ksmeta => '',
- server => $real_server,
- require => Cobbler_distro['ubuntu_bootstrap'],
diff --git a/patches/fuel-library/multiarch-efi/0002-Add-cobbler-grub-aarch64-to-cobbler-dependencies.patch b/patches/fuel-library/multiarch-efi/0002-Add-cobbler-grub-aarch64-to-cobbler-dependencies.patch
deleted file mode 100644
index c85ba0d2..00000000
--- a/patches/fuel-library/multiarch-efi/0002-Add-cobbler-grub-aarch64-to-cobbler-dependencies.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Fri, 13 May 2016 23:06:28 +0200
-Subject: [PATCH] Add cobbler-grub-aarch64 to cobbler dependencies.
-
-The aarch64 grub EFI loader, packaged as an RPM and previously
-installed in the nailgun docker container in /var/lib/cobbler,
-is now added as a cobbler dependency in puppet and installed
-on the Fuel master node.
-
-[Alexandru.Avadanii@enea.com]
-Reworked based on Florin's work for the docker container.
-Rebased for Fuel Newton.
-
-Signed-off-by: Florin Dumitrascu <florin.dumitrascu@enea.com>
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- deployment/puppet/cobbler/manifests/packages.pp | 2 +-
- 1 file changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/deployment/puppet/cobbler/manifests/packages.pp b/deployment/puppet/cobbler/manifests/packages.pp
-index 267c18c..9782c4c 100644
---- a/deployment/puppet/cobbler/manifests/packages.pp
-+++ b/deployment/puppet/cobbler/manifests/packages.pp
-@@ -23,5 +23,5 @@ class cobbler::packages {
- $django_package = 'python-django'
- $openssh_package = 'openssh-clients'
- $pexpect_package = 'pexpect'
-- $cobbler_additional_packages = ['xinetd', 'tftp-server', 'syslinux', 'wget', 'python-ipaddr','fence-agents-all', 'bind-utils']
-+ $cobbler_additional_packages = ['xinetd', 'tftp-server', 'syslinux', 'wget', 'python-ipaddr','fence-agents-all', 'bind-utils', 'cobbler-grub-aarch64']
- }
diff --git a/patches/fuel-library/multiarch-fuel/0001-Make-qemu-kvm-architecture-aware.patch b/patches/fuel-library/multiarch-fuel/0001-Make-qemu-kvm-architecture-aware.patch
deleted file mode 100644
index c5d3479a..00000000
--- a/patches/fuel-library/multiarch-fuel/0001-Make-qemu-kvm-architecture-aware.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB, Cavium and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
-Date: Wed, 24 Feb 2016 20:07:06 +0100
-Subject: [PATCH] Make qemu-kvm architecture aware
-
----
- deployment/puppet/openstack_tasks/manifests/roles/compute.pp | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index 3fcfb51..c53409c 100644
---- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-+++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -167,9 +167,14 @@ class openstack_tasks::roles::compute {
- case $::osfamily {
- 'RedHat': {
- # From legacy libvirt.pp
-+ # Guard against some exotic distros with their `uname -m`
-+ $arch = $::architecture ? {
-+ /(arm64|aarch64)/ => 'aarch64',
-+ default => 'x86_64',
-+ }
- exec { 'symlink-qemu-kvm':
-- command => '/bin/ln -sf /usr/libexec/qemu-kvm /usr/bin/qemu-system-x86_64',
-- creates => '/usr/bin/qemu-system-x86_64',
-+ command => "/bin/ln -sf /usr/libexec/qemu-kvm /usr/bin/qemu-system-${arch}",
-+ creates => "/usr/bin/qemu-system-${arch}",
- }
-
- package { 'avahi':
diff --git a/patches/fuel-library/multiarch-fuel/0002-Make-TestVM-creation-architecture-aware.patch b/patches/fuel-library/multiarch-fuel/0002-Make-TestVM-creation-architecture-aware.patch
deleted file mode 100644
index 1f4c05f2..00000000
--- a/patches/fuel-library/multiarch-fuel/0002-Make-TestVM-creation-architecture-aware.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB, Cavium and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
-Date: Wed, 24 Feb 2016 20:08:24 +0100
-Subject: [PATCH] Make TestVM creation architecture aware
-
-This depends on cirros-testvm package to contain both amd64 and arm64
-images.
----
- deployment/puppet/openstack/manifests/img/cirros.pp | 8 ++++++--
- .../osnailyfacter/manifests/generate_vms/vm_config.pp | 11 +++++++++++
- deployment/puppet/osnailyfacter/templates/vm_libvirt.erb | 15 ++++++++++++++-
- files/fuel-migrate/fuel-migrate | 5 ++++-
- 4 files changed, 35 insertions(+), 4 deletions(-)
-
-diff --git a/deployment/puppet/openstack/manifests/img/cirros.pp b/deployment/puppet/openstack/manifests/img/cirros.pp
-index 84e202e..cff06e0 100644
---- a/deployment/puppet/openstack/manifests/img/cirros.pp
-+++ b/deployment/puppet/openstack/manifests/img/cirros.pp
-@@ -9,6 +9,10 @@ class openstack::img::cirros (
- $img_name = 'cirros',
- $os_name = 'cirros',
- ) {
-+ $arch = $::architecture ? {
-+ /(arm64|aarch64)/ => 'aarch64',
-+ default => 'x86_64',
-+ }
-
- package { 'cirros-testvm':
- ensure => "present"
-@@ -17,14 +21,14 @@ class openstack::img::cirros (
- case $::osfamily {
- 'RedHat': {
- exec { 'upload-img':
-- command => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} add name=${img_name} is_public=${public} container_format=${container_format} disk_format=${disk_format} distro=${os_name} < /opt/vm/cirros-x86_64-disk.img",
-+ command => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} add name=${img_name} is_public=${public} container_format=${container_format} disk_format=${disk_format} distro=${os_name} < /opt/vm/cirros-${arch}-disk.img",
- unless => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} index && (/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} index | grep ${img_name})",
-
- }
- }
- 'Debian': {
- exec { 'upload-img':
-- command => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} add name=${img_name} is_public=${public} container_format=${container_format} disk_format=${disk_format} distro=${os_name} < /usr/share/cirros-testvm/cirros-x86_64-disk.img",
-+ command => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} add name=${img_name} is_public=${public} container_format=${container_format} disk_format=${disk_format} distro=${os_name} < /usr/share/cirros-testvm/cirros-${arch}-disk.img",
- unless => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} index && (/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} index | grep ${img_name})",
-
- }
-diff --git a/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp b/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp
-index 70fef32..dfefcbe 100644
---- a/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp
-+++ b/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp
-@@ -4,6 +4,17 @@ define osnailyfacter::generate_vms::vm_config(
- $details,
- $template_dir = '/var/lib/nova',
- ) {
-+ case $::architecture {
-+ 'arm64', 'aarch64': {
-+ $machine_arch = 'aarch64'
-+ $machine_type = 'virt-2.6'
-+ }
-+ default: {
-+ $machine_arch = 'x86_64'
-+ $machine_type = 'pc'
-+ }
-+ }
-+
- file { "${template_dir}/template_${name}_vm.xml":
- owner => 'root',
- group => 'root',
-diff --git a/deployment/puppet/osnailyfacter/templates/vm_libvirt.erb b/deployment/puppet/osnailyfacter/templates/vm_libvirt.erb
-index ae2ba5b..64e716d 100644
---- a/deployment/puppet/osnailyfacter/templates/vm_libvirt.erb
-+++ b/deployment/puppet/osnailyfacter/templates/vm_libvirt.erb
-@@ -3,14 +3,17 @@
- <memory unit='GiB'><%= @details['mem'] %></memory>
- <vcpu placement='static'><%= @details['cpu'] %></vcpu>
- <os>
-- <type arch='x86_64' machine='pc'>hvm</type>
-+ <type arch='<%= @machine_arch %>' machine='<%= @machine_type %>'>hvm</type>
- <boot dev='network'/>
- <boot dev='hd'/>
- </os>
- <features>
- <acpi/>
- <apic/>
- <pae/>
-+ <% if $machine_arch == 'aarch64' %>
-+ <gic version='host' />
-+ <% end %>
- </features>
- <clock offset='utc'/>
- <on_poweroff>destroy</on_poweroff>
-@@ -57,7 +66,11 @@
- <input type='keyboard' bus='ps2'/>
- <graphics type='vnc' port='-1' autoport='yes'/>
- <video>
-+<% if $machine_arch == 'aarch64' %>
-+ <model type='vga' vram='9216' heads='1'/>
-+<% else %>
- <model type='cirrus' vram='9216' heads='1'/>
-+<% end %>
- </video>
- <memballoon model='virtio'>
- </memballoon>
-diff --git a/files/fuel-migrate/fuel-migrate b/files/fuel-migrate/fuel-migrate
-index a215e0a..7d5b6cd 100755
---- a/files/fuel-migrate/fuel-migrate
-+++ b/files/fuel-migrate/fuel-migrate
-@@ -176,6 +176,8 @@ create_vm(){
- exit 1
- fi
- fi
-+ # figure out atchitecture of the destination
-+ arch="$(virsh -c "${dkvm_uri}" nodeinfo | awk '/CPU model:/ { print $3}')"
- # create disk
- ssh "${dkvm_ip}" qemu-img create -f raw "${dkvm_folder}/${fvm_name}.img" "${fvm_disk_size}"
- # make template for virsh
-@@ -185,13 +187,14 @@ create_vm(){
- <memory unit='MiB'>${fvm_ram}</memory>
- <vcpu >${fvm_cpu}</vcpu>
- <os>
-- <type arch='x86_64' >hvm</type>
-+ <type arch='${arch}' >hvm</type>
- <boot dev='hd'/>
- <boot dev='network'/>
- </os>
- <features>
- <acpi/>
- <apic/>
-+ ${arch/aarch64/<gic version='3'\/>}
- </features>
- <clock offset='utc'/>
- <on_poweroff>destroy</on_poweroff>
diff --git a/patches/fuel-library/multiarch-fuel/0003-build_image.pp-Extract-cluster_arch-from-URI.patch b/patches/fuel-library/multiarch-fuel/0003-build_image.pp-Extract-cluster_arch-from-URI.patch
deleted file mode 100644
index 2311442b..00000000
--- a/patches/fuel-library/multiarch-fuel/0003-build_image.pp-Extract-cluster_arch-from-URI.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Wed, 15 Mar 2017 23:44:32 +0100
-Subject: [PATCH] build_image.pp: Extract cluster_arch from "/" URI
-
-Since target image building was moved from nailgun to puppet, we
-need to determine the "target_arch" value differently.
-
-One way to go is to extract it from the root disk image URI, which
-is constructed based on static fixture data in nailgun.
-
-This change relies on the following:
-- image_data contains "/", with a properly arch-qualified URI;
-- image_data "/" URI arch uses the same format as "target_arch"
- (in this case "arm64" instead of "aarch64" or other variations);
-
-While at it, increase task timeout from 1800s to 3600s.
-
-NOTE: Unlike the previous approach, this method does not rely on any
-other nailgun changes (i.e. adding the "arch" field to the database
-model), but only on `fa_build_image --target_arch=...` support.
-
-JIRA: https://jira.opnfv.org/browse/ARMBAND-240
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- deployment/puppet/osnailyfacter/manifests/provision/build_image.pp | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp b/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp
-index dbfc785..8525e33 100644
---- a/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp
-+++ b/deployment/puppet/osnailyfacter/manifests/provision/build_image.pp
-@@ -8,6 +8,9 @@ class osnailyfacter::provision::build_image(
- $data = loadyaml($data_file)
- }
- $cluster_id = $data['cluster']['id']
-+ $root_img_uri_split = split($data['image_data']['/']['uri'], '_')
-+ $root_img_suffix_split = split($root_img_uri_split[-1], '[.]')
-+ $cluster_arch = $root_img_suffix_split[0]
-
- if $data['ironic']['enabled'] == true {
- # TODO(vsaienko): Use the same system packages for fuel image and ironic bootstrap, but exclude
-@@ -52,8 +55,8 @@ class osnailyfacter::provision::build_image(
- $extra_params = '--data_driver nailgun_build_image'
-
- exec { 'generate_image_with_fuel':
-- command => "fa_build_image ${build_dir} ${log_params} ${extra_params} --input_data_file ${data_file}",
-+ command => "fa_build_image ${build_dir} ${log_params} ${extra_params} --target_arch=${cluster_arch} --input_data_file ${data_file}",
- path => ['/bin', '/usr/bin'],
-- timeout => 1800,
-+ timeout => 3600,
- }
- }
diff --git a/patches/fuel-library/multiarch-mirrors/0001-Add-arm64-for-auxiliary-repos.patch b/patches/fuel-library/multiarch-mirrors/0001-Add-arm64-for-auxiliary-repos.patch
deleted file mode 100644
index f6fd0a60..00000000
--- a/patches/fuel-library/multiarch-mirrors/0001-Add-arm64-for-auxiliary-repos.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB, Cavium and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
-Date: Wed, 24 Feb 2016 20:05:25 +0100
-Subject: [PATCH] Add arm64 for auxiliary repos
-
----
- deployment/puppet/fuel/files/Release-auxiliary | 2 +-
- deployment/puppet/fuel/manifests/auxiliaryrepos.pp | 4 +++-
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/deployment/puppet/fuel/files/Release-auxiliary b/deployment/puppet/fuel/files/Release-auxiliary
-index 2d5ce58..03f84b8 100644
---- a/deployment/puppet/fuel/files/Release-auxiliary
-+++ b/deployment/puppet/fuel/files/Release-auxiliary
-@@ -3,6 +3,6 @@ Label: auxiliary
- Suite: auxiliary
- Codename: auxiliary
- Date: Mon, 15 Apr 2015 00:00:01 UTC
--Architectures: amd64
-+Architectures: amd64 arm64
- Components: main restricted
- Description: Auxiliary
-diff --git a/deployment/puppet/fuel/manifests/auxiliaryrepos.pp b/deployment/puppet/fuel/manifests/auxiliaryrepos.pp
-index 909fc92..4ec5d05 100644
---- a/deployment/puppet/fuel/manifests/auxiliaryrepos.pp
-+++ b/deployment/puppet/fuel/manifests/auxiliaryrepos.pp
-@@ -45,7 +45,9 @@ class fuel::auxiliaryrepos(
- $release_files = [
- "${ubuntu_dir}/dists/auxiliary/Release",
- "${ubuntu_dir}/dists/auxiliary/main/binary-amd64/Release",
-- "${ubuntu_dir}/dists/auxiliary/restricted/binary-amd64/Release"]
-+ "${ubuntu_dir}/dists/auxiliary/restricted/binary-amd64/Release",
-+ "${ubuntu_dir}/dists/auxiliary/main/binary-arm64/Release",
-+ "${ubuntu_dir}/dists/auxiliary/restricted/binary-arm64/Release"]
-
- Exec['create_ubuntu_repo_dirs'] ->
- Exec['create_ubuntu_repo_Packages'] ->
diff --git a/patches/fuel-library/mysql-sst-provider/0001-Allow-configuring-MySQL-WSREP-SST-provider.patch b/patches/fuel-library/mysql-sst-provider/0001-Allow-configuring-MySQL-WSREP-SST-provider.patch
deleted file mode 100644
index 3bf2d842..00000000
--- a/patches/fuel-library/mysql-sst-provider/0001-Allow-configuring-MySQL-WSREP-SST-provider.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB, Cavium and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
-Date: Wed, 20 Apr 2016 14:54:42 -0700
-Subject: [PATCH] Allow configuring MySQL WSREP SST provider
-
-On some arm64 platforms xtrabackup is broken due to an outdated
-MySQL/InnoDB code that it uses which is missing. To work around that
-this patch allows choosing which WSREP SST provider to use. Aside of
-already supported `xtrabackup-v2` and `mysqldump`, the `rsync` method
-has been added as it is comparable to xtrabackup in terms of speed (or
-is faster), has been validated to work on arm64 platforms where
-xtrabackup is broken and it doesn't rely on db mechanisms to perform the
-state transfer.
-
-This patch is tied to a patch in fuel-web that introduces configuration
-options for WSREP SST provider and in case nothing is specified, it
-will choose `xtrabackup-v2`.
-
-Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
----
- deployment/puppet/osnailyfacter/manifests/database/database.pp | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/deployment/puppet/osnailyfacter/manifests/database/database.pp b/deployment/puppet/osnailyfacter/manifests/database/database.pp
-index e741ff8..be19eb5 100644
---- a/deployment/puppet/osnailyfacter/manifests/database/database.pp
-+++ b/deployment/puppet/osnailyfacter/manifests/database/database.pp
-@@ -8,5 +8,6 @@ class osnailyfacter::database::database {
- $use_syslog = hiera('use_syslog', true)
- $mysql_hash = hiera_hash('mysql', {})
-+ $wsrep_hash = hiera_hash('mysql_wsrep', {})
- $debug = pick($mysql_hash['debug'], hiera('debug', false))
-
- $mgmt_iface = get_network_role_property('mgmt/database', 'interface')
-@@ -17,6 +18,7 @@ class osnailyfacter::database::database {
- $mysql_root_password = $mysql_hash['root_password']
- $deb_sysmaint_password = $mysql_hash['wsrep_password']
- $enabled = pick($mysql_hash['enabled'], true)
-+ $wsrep_sst_method = pick($wsrep_hash['wsrep_method'], 'xtrabackup-v2')
-
- $galera_node_address = get_network_role_property('mgmt/database', 'ipaddr')
- $galera_nodes = values(get_node_to_ipaddr_map_by_network_role(hiera_hash('database_nodes'), 'mgmt/database'))
-@@ -211,7 +213,7 @@ class osnailyfacter::database::database {
- 'wsrep_cluster_name' => $galera_cluster_name,
- 'wsrep_provider_options' => $wsrep_provider_options,
- 'wsrep_slave_threads' => $wsrep_slave_threads,
-- 'wsrep_sst_method' => 'xtrabackup-v2',
-+ 'wsrep_sst_method' => $wsrep_sst_method,
- #TODO (sgolovatiuk): fix this, should be a specific user not root
- 'wsrep_sst_auth' => "\"root:${mysql_root_password}\"",
- 'wsrep_node_address' => $galera_node_address,
-@@ -264,7 +266,7 @@ class osnailyfacter::database::database {
- wsrep_group_comm_port => $wsrep_group_comm_port,
- bind_address => $galera_node_address,
- local_ip => $galera_node_address,
-- wsrep_sst_method => 'xtrabackup-v2',
-+ wsrep_sst_method => $wsrep_sst_method,
- override_options => $override_options,
- }
-
diff --git a/patches/fuel-library/upstream-backports/0001-nova-AArch64-enable-hugepage-support.patch b/patches/fuel-library/upstream-backports/0001-nova-AArch64-enable-hugepage-support.patch
deleted file mode 100644
index 03e727be..00000000
--- a/patches/fuel-library/upstream-backports/0001-nova-AArch64-enable-hugepage-support.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Enea AB and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Fri, 16 Sep 2016 21:31:56 +0200
-Subject: [PATCH] nova: AArch64: enable hugepage support
-
-This patch adds AArch64 to the hardcoded lists of valid
-architectures for hugepage support.
-
-Backported upstream patch from [1].
-
-[1] https://review.openstack.org/#/c/372304/
-
-Closes-bug: ARMBAND-90
-
-Signed-off-by: Veena Lingadahalli <vlingadahalli@mvista.com>
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- ...gepage-and-NUMA-support-check-for-aarch64.patch | 41 ++++++++++++++++++++++
- .../openstack_tasks/manifests/roles/compute.pp | 12 +++++++
- 2 files changed, 53 insertions(+)
- create mode 100644 deployment/puppet/openstack/files/nova-Adding-hugepage-and-NUMA-support-check-for-aarch64.patch
-
-diff --git a/deployment/puppet/openstack/files/nova-Adding-hugepage-and-NUMA-support-check-for-aarch64.patch b/deployment/puppet/openstack/files/nova-Adding-hugepage-and-NUMA-support-check-for-aarch64.patch
-new file mode 100644
-index 0000000..ba91357
---- /dev/null
-+++ b/deployment/puppet/openstack/files/nova-Adding-hugepage-and-NUMA-support-check-for-aarch64.patch
-@@ -0,0 +1,41 @@
-+From: VeenaSL <mveenasl@gmail.com>
-+Date: Mon, 19 Sep 2016 13:36:53 +0530
-+Subject: [PATCH] Adding hugepage and NUMA support check for aarch64
-+
-+Nova ignores aarch64 while verifying for hugepage and NUMA support.
-+AARCH64 also supports hugepage and NUMA on the same libvirt versions as of x86.
-+Hence adding this chek for aarch64 also.
-+
-+Change-Id: I7b5ae1dbdca4fdd0aee2eefd4099c4c4953b609a
-+Closes-bug: #1623871
-+
-+Signed-off-by: Veena Lingadahalli <vlingadahalli@mvista.com>
-+Acked-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-+
-+---
-+ virt/libvirt/driver.py | 6 ++++--
-+
-+diff --git a/virt/libvirt/driver.py b/virt/libvirt/driver.py
-+index 5668f57..b0857f3 100644
-+--- a/virt/libvirt/driver.py
-++++ b/virt/libvirt/driver.py
-+@@ -5108,7 +5108,8 @@ class LibvirtDriver(driver.ComputeDriver):
-+ self._bad_libvirt_numa_version_warn = True
-+ return False
-+
-+- support_matrix = {(arch.I686, arch.X86_64): MIN_LIBVIRT_NUMA_VERSION,
-++ support_matrix = {(arch.I686, arch.X86_64,
-++ arch.AARCH64): MIN_LIBVIRT_NUMA_VERSION,
-+ (arch.PPC64,
-+ arch.PPC64LE): MIN_LIBVIRT_NUMA_VERSION_PPC}
-+ caps = self._host.get_capabilities()
-+@@ -5124,7 +5125,8 @@ class LibvirtDriver(driver.ComputeDriver):
-+ def _has_hugepage_support(self):
-+ # This means that the host can support multiple values for the size
-+ # field in LibvirtConfigGuestMemoryBackingPage
-+- supported_archs = [arch.I686, arch.X86_64, arch.PPC64LE, arch.PPC64]
-++ supported_archs = [arch.I686, arch.X86_64, arch.PPC64LE, arch.PPC64,
-++ arch.AARCH64]
-+ caps = self._host.get_capabilities()
-+ return ((caps.host.cpu.arch in supported_archs) and
-+ self._host.has_min_version(MIN_LIBVIRT_HUGEPAGE_VERSION,
-diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index 8207261..b5cefdf 100644
---- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-+++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -313,5 +313,17 @@ class openstack_tasks::roles::compute {
- cwd => $nova_path,
- require => [Package['patch']],
-+ } ->
-+ # FIXME(armband): Add AArch64 to arch list for nova hugepage support
-+ file { "${nova_path}/nova-Adding-hugepage-and-NUMA-support-check-for-aarch64.patch":
-+ ensure => "file",
-+ source => "puppet:///modules/openstack/nova-Adding-hugepage-and-NUMA-support-check-for-aarch64.patch",
-+ } ->
-+ exec { 'nova AArch64 enable hugepage support':
-+ path => ['/usr/bin'],
-+ command => "patch -p1 < ${nova_path}/nova-Adding-hugepage-and-NUMA-support-check-for-aarch64.patch",
-+ unless => "patch -p1 -R -N --dry-run < ${nova_path}/nova-Adding-hugepage-and-NUMA-support-check-for-aarch64.patch",
-+ cwd => $nova_path,
-+ require => [Package['patch']],
- }
-
- class { '::nova::cache':