diff options
author | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2017-06-28 20:48:38 +0200 |
---|---|---|
committer | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2017-06-28 20:51:14 +0200 |
commit | a0805a01542505301918cacb5db6216814c40023 (patch) | |
tree | dcc125fa94cbacdac6f30bea2d6ebc59ad335598 /patches/fuel-library | |
parent | be00c803bcefb56ad9f690ae1509d3dcae7e9d9b (diff) |
MCP: Remove all Fuel patches and plugins
Chances are none of the old patches / plugins can be reused as-is,
so remove all of them and prepare for the switch to MCP.
Change-Id: I999927a43b438d9bda9ff118731e2af4b1fa8caa
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Diffstat (limited to 'patches/fuel-library')
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': |