From e5bba253b3bc83d46d11b91c66f9a8d04d4210dd Mon Sep 17 00:00:00 2001 From: Jeffrey Townsend Date: Mon, 4 Jan 2016 19:43:59 +0000 Subject: [PATCH] - Support new baseplatform() method in platform base class. - Allow multiple patterns for the ONLP platform library. --- .../src/python/onl/platform/base.py | 6 ++++++ .../src/python/onl/platform/baseconfig.py | 17 ++++++++++++----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/packages/base/all/vendor-config-onl/src/python/onl/platform/base.py b/packages/base/all/vendor-config-onl/src/python/onl/platform/base.py index 9ee22bd8..d63d4ebd 100644 --- a/packages/base/all/vendor-config-onl/src/python/onl/platform/base.py +++ b/packages/base/all/vendor-config-onl/src/python/onl/platform/base.py @@ -13,6 +13,7 @@ import pprint import yaml import json import os +import re class OnlInfoObject(object): DEFAULT_INDENT=" " @@ -146,6 +147,11 @@ class OnlPlatformBase(object): def platform(self): raise Exception("Platform is not set.") + def baseplatform(self): + p = self.platform() + p = re.sub(r'-r\d$', '', p) + return p + def description(self): return "%s %s (%s)" % (self.manufacturer(), self.model(), self.platform()) diff --git a/packages/base/all/vendor-config-onl/src/python/onl/platform/baseconfig.py b/packages/base/all/vendor-config-onl/src/python/onl/platform/baseconfig.py index 2aec8f0b..186d1d16 100644 --- a/packages/base/all/vendor-config-onl/src/python/onl/platform/baseconfig.py +++ b/packages/base/all/vendor-config-onl/src/python/onl/platform/baseconfig.py @@ -42,12 +42,19 @@ def baseconfig(): msg("Could not determine the current host type.\n", fatal=True) DEFAULT_ONLP_LIB = "/lib/%s/libonlp-platform.so" % DEB_GNU_HOST_TYPE - PLATFORM_ONLP_LIB = "%s/lib/libonlp-%s.so" % (platform.basedir_onl(), platform.platform()) - if os.path.exists(PLATFORM_ONLP_LIB): - if os.path.exists(DEFAULT_ONLP_LIB): - os.unlink(DEFAULT_ONLP_LIB) - os.symlink(PLATFORM_ONLP_LIB, DEFAULT_ONLP_LIB) + PLATFORM_ONLP_LIBS = [ + # Look for full platform and revision library + "%s/lib/libonlp-%s.so" % (platform.basedir_onl(), platform.platform()), + # Look for common platform library + "%s/lib/libonlp-%s.so" % (platform.basedir_onl(), platform.baseplatform()), + ] + + for l in PLATFORM_ONLP_LIBS: + if os.path.exists(l): + if os.path.exists(DEFAULT_ONLP_LIB): + os.unlink(DEFAULT_ONLP_LIB) + os.symlink(l, DEFAULT_ONLP_LIB) ONLPDUMP = "%s/bin/onlpdump" % (platform.basedir_onl())