diff options
Diffstat (limited to 'meta-security-isafw/lib/isafw/isafw.py')
-rw-r--r-- | meta-security-isafw/lib/isafw/isafw.py | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/meta-security-isafw/lib/isafw/isafw.py b/meta-security-isafw/lib/isafw/isafw.py deleted file mode 100644 index a1a76b8..0000000 --- a/meta-security-isafw/lib/isafw/isafw.py +++ /dev/null @@ -1,158 +0,0 @@ -# -# isafw.py - Main classes for ISA FW -# -# Copyright (c) 2015 - 2016, Intel Corporation -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of Intel Corporation nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -from __future__ import absolute_import, print_function - -import sys -import traceback -try: - # absolute import - import isafw.isaplugins as isaplugins -except ImportError: - # relative import when installing as separate modules - import isaplugins -try: - from bb import error -except ImportError: - error = print - -__all__ = [ - 'ISA_package', - 'ISA_pkg_list', - 'ISA_kernel', - 'ISA_filesystem', - 'ISA_config', - 'ISA', -] - -# classes for representing objects for ISA plugins - -# source package - - -class ISA_package: - # pkg name (mandatory argument) - name = "" - # full version (mandatory argument) - version = "" - licenses = [] # list of licences for all subpackages - aliases = [] # list of alias names for packages if exist - source_files = [] # list of strings of source files - patch_files = [] # list of patch files to be applied - path_to_sources = "" # path to the source files - -# package list - - -class ISA_pkg_list: - # image name (mandatory argument) - img_name = "" - # path to the pkg list file (mandatory argument) - path_to_list = "" - -# kernel - - -class ISA_kernel: - # image name (mandatory argument) - img_name = "" - # path to the kernel config file (mandatory argument) - path_to_config = "" - -# filesystem - - -class ISA_filesystem: - # image name (mandatory argument) - img_name = "" - type = "" # filesystem type - # path to the fs location (mandatory argument) - path_to_fs = "" - -# configuration of ISAFW -# if both whitelist and blacklist is empty, all avaliable plugins will be used -# if whitelist has entries, then only whitelisted plugins will be used from a set of avaliable plugins -# if blacklist has entries, then the specified plugins won't be used even -# if avaliable and even if specified in whitelist - - -class ISA_config: - plugin_whitelist = "" # comma separated list of plugins to whitelist - plugin_blacklist = "" # comma separated list of plugins to blacklist - cacert = None # If set, a CA certificate file that replaces the system default one - reportdir = "" # location of produced reports - logdir = "" # location of produced logs - timestamp = "" # timestamp of the build provided by build system - full_reports = False # produce full reports for plugins, False by default - machine = "" # name of machine build is produced for - la_plugin_image_whitelist = ""# whitelist of images for violating license checks - la_plugin_image_blacklist = ""# blacklist of images for violating license checks - arch = "" # target architecture - -class ISA: - def call_plugins(self, methodname, *parameters, **keywords): - for name in isaplugins.__all__: - plugin = getattr(isaplugins, name) - method = getattr(plugin, methodname, None) - if not method: - # Not having init() is an error, everything else is optional. - if methodname == "init": - error("No init() defined for plugin %s.\n" - "Skipping this plugin." % - (methodname, plugin.getPluginName())) - continue - if self.ISA_config.plugin_whitelist and plugin.getPluginName() not in self.ISA_config.plugin_whitelist: - continue - if self.ISA_config.plugin_blacklist and plugin.getPluginName() in self.ISA_config.plugin_blacklist: - continue - try: - method(*parameters, **keywords) - except: - error("Exception in plugin %s %s():\n%s" % - (plugin.getPluginName(), - methodname, - traceback.format_exc())) - - def __init__(self, ISA_config): - self.ISA_config = ISA_config - self.call_plugins("init", ISA_config) - - def process_package(self, ISA_package): - self.call_plugins("process_package", ISA_package) - - def process_pkg_list(self, ISA_pkg_list): - self.call_plugins("process_pkg_list", ISA_pkg_list) - - def process_kernel(self, ISA_kernel): - self.call_plugins("process_kernel", ISA_kernel) - - def process_filesystem(self, ISA_filesystem): - self.call_plugins("process_filesystem", ISA_filesystem) - - def process_report(self): - self.call_plugins("process_report") |