diff options
Diffstat (limited to 'patches/fuel-plugin-opendaylight/0001-ODL-leveldb-leveldbjni-Enable-arm64-support.patch')
-rw-r--r-- | patches/fuel-plugin-opendaylight/0001-ODL-leveldb-leveldbjni-Enable-arm64-support.patch | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/patches/fuel-plugin-opendaylight/0001-ODL-leveldb-leveldbjni-Enable-arm64-support.patch b/patches/fuel-plugin-opendaylight/0001-ODL-leveldb-leveldbjni-Enable-arm64-support.patch deleted file mode 100644 index b307af2b..00000000 --- a/patches/fuel-plugin-opendaylight/0001-ODL-leveldb-leveldbjni-Enable-arm64-support.patch +++ /dev/null @@ -1,121 +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: Florin Dumitrascu <florin.dumitrascu@enea.com> -Date: Thu, 17 Mar 2016 18:15:42 +0100 -Subject: [PATCH] ODL leveldb, leveldbjni: Enable arm64 support. - -ODL depends on a native library (leveldb). - -ODL Beryllium and Boron versions are still using a native x86 version -of this library (wrapped in leveldbjni). - -There is no upstream version of leveldbjni supporting arm64 leveldb, -so we need to compile it when deploying ODL. -This is done when running odl-install puppet manifest. - -For more info about this ODL limitation, see [1]. - -[ Alexandru.Avadanii@enea.com ] -Remove JAVA8 changes after upstream rework. -Convert puppet patching to prebuilt DEB package, as part of [2]. -Rebase for Fuel Newton. - -[ Dan.Andresan@enea.com ] -Modify Puppet recipe to restart Opendaylight service after leveldbjni -This avoids a cache corruption described in [3] -Fix leveldbjni on x86_64, since it should be silently skipped. - -[1] https://bugs.opendaylight.org/show_bug.cgi?id=3973 -[2] https://jira.opnfv.org/browse/ARMBAND-114 -[3] https://jira.opnfv.org/browse/ARMBAND-211 - -Change-Id: Ia7abf375ffd122ff0ac7b12422f64526ff2c78fd -Signed-off-by: Florin Dumitrascu <florin.dumitrascu@enea.com> -Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com> -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -Signed-off-by: Dan Andresan <dan.andresan@enea.com> ---- - .../puppet/modules/opendaylight/manifests/init.pp | 8 ++++++ - .../modules/opendaylight/manifests/install.pp | 3 ++ - .../modules/opendaylight/manifests/leveldbjni.pp | 32 ++++++++++++++++++++++ - 3 files changed, 43 insertions(+) - create mode 100644 deployment_scripts/puppet/modules/opendaylight/manifests/leveldbjni.pp - -diff --git a/deployment_scripts/puppet/modules/opendaylight/manifests/init.pp b/deployment_scripts/puppet/modules/opendaylight/manifests/init.pp -index 69cc23a..791ceba 100644 ---- a/deployment_scripts/puppet/modules/opendaylight/manifests/init.pp -+++ b/deployment_scripts/puppet/modules/opendaylight/manifests/init.pp -@@ -9,4 +9,12 @@ class opendaylight { - $odl_mgmt_ips = values($odl_mgmt_ips_hash) - $odl_nodes_names = keys($odl_mgmt_ips_hash) - $node_internal_address = $odl_mgmt_ips_hash["node-${node_uid}"] -+ -+ $arch = $::architecture ? { -+ 'aarch64' => $::osfamily ? { -+ 'Debian' => 'arm64', -+ default => 'aarch64', -+ }, -+ default => $::architecture, -+ } - } -diff --git a/deployment_scripts/puppet/modules/opendaylight/manifests/install.pp b/deployment_scripts/puppet/modules/opendaylight/manifests/install.pp -index 2c3d776..22ab204 100644 ---- a/deployment_scripts/puppet/modules/opendaylight/manifests/install.pp -+++ b/deployment_scripts/puppet/modules/opendaylight/manifests/install.pp -@@ -85,9 +85,12 @@ class opendaylight::install ( - value => $enabled_features, - } - -+ include opendaylight::leveldbjni -+ - Package['opendaylight'] -> - Ini_setting <||> -> - Firewall <||> -> -+ Class['opendaylight::leveldbjni'] -> - File <||> ~> - Service['opendaylight'] - } -diff --git a/deployment_scripts/puppet/modules/opendaylight/manifests/leveldbjni.pp b/deployment_scripts/puppet/modules/opendaylight/manifests/leveldbjni.pp -new file mode 100644 -index 0000000..71c3635 ---- /dev/null -+++ b/deployment_scripts/puppet/modules/opendaylight/manifests/leveldbjni.pp -@@ -0,0 +1,32 @@ -+# == Class opendaylight::leveldbjni -+# -+# Manages patching of JNI for leveldb on arm64. -+# -+# It fetches a prebuilt DEB package containing leveldbjni, -+# patched so that it's properly detected by maven on arm64 systems. -+# -+# DEB: http://linux.enea.com/mos-repos/ubuntu/9.0/ \ -+# pool/main/a/armband-odl-leveldb-fix/ -+# JIRA: https://jira.opnfv.org/browse/ARMBAND-114 -+# -+class opendaylight::leveldbjni { -+ case $::osfamily { -+ 'Debian', 'Ubuntu': {} -+ default: { -+ fail('Not supported on OS other than Debian based.') -+ } -+ } -+ -+ if $::osfamily == 'Debian' and $::opendaylight::arch == 'arm64' and ! defined(Package['armband-odl-leveldb-fix']) { -+ exec {'hotfix-odl': -+ command => 'systemctl stop opendaylight; rm -rf /opt/opendaylight/data/cache', -+ onlyif => 'test 0 -eq $(dpkg -l | grep -c armband-odl-leveldb-fix)', -+ path => ['/bin', '/usr/bin'] -+ } -+ -+ package { 'armband-odl-leveldb-fix': -+ ensure => 'present', -+ require => Exec['hotfix-odl'] -+ } -+ } -+} |