diff options
Diffstat (limited to 'patches/fuel-library/arm64-bug-fixes')
6 files changed, 0 insertions, 397 deletions
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'] - } |