introspection data backend: plugin layer

Configurable introspection data storage backend [1] is proposed
to provide flexible extension of introspection data storage
instead of the single support of Swift storage backend.

This patch adds plugin mechanism for loading introspection
storage, creates database backend and moves Swift storage
into a plugin.

[1] http://specs.openstack.org/openstack/ironic-inspector-specs/specs/configurable-introspection-data-backends.html

Story: 1726713
Task: 11373

Co-Authored-By: Kaifeng Wang <kaifeng.w@gmail.com>
Change-Id: Ie4d09dc0afc441b20a1e5e3bd8e742b1df918954
This commit is contained in:
space
2017-10-24 03:36:49 -04:00
committed by Kaifeng Wang
parent a8c1d06bd0
commit d278bb6f77
13 changed files with 443 additions and 121 deletions

View File

@@ -18,7 +18,6 @@ from ironic_inspector.common.i18n import _
VALID_ADD_PORTS_VALUES = ('all', 'active', 'pxe', 'disabled')
VALID_KEEP_PORTS_VALUES = ('all', 'present', 'added')
VALID_STORE_DATA_VALUES = ('none', 'swift')
_OPTS = [
@@ -75,9 +74,10 @@ _OPTS = [
'aware of. This hook is ignored by default.')),
cfg.StrOpt('store_data',
default='none',
choices=VALID_STORE_DATA_VALUES,
help=_('Method for storing introspection data. If set to \'none'
'\', introspection data will not be stored.')),
help=_('The storage backend for storing introspection data. '
'Possible values are: \'none\', \'database\' and '
'\'swift\'. If set to \'none\', introspection data will '
'not be stored.')),
cfg.StrOpt('store_data_location',
help=_('Name of the key to store the location of stored data '
'in the extra column of the Ironic database.')),