diff options
author | Morgan Fainberg <morgan.fainberg@gmail.com> | 2017-08-14 10:40:39 -0700 |
---|---|---|
committer | Morgan Fainberg <morgan.fainberg@gmail.com> | 2017-08-14 19:01:02 +0000 |
commit | 3d46c8a5d93529b4050bab635486cfa6b05c9a85 (patch) | |
tree | 5f365ef1c7ae360ff3082ce31a1a5b9eb178be9c /keystone/resource | |
parent | 99b3641fa0eb99d903488b2f04f9b69b79b3ff16 (diff) | |
download | keystone-3d46c8a5d93529b4050bab635486cfa6b05c9a85.tar.gz |
Resource backend is SQL only now
This change has been implemented to avoid the need to backport
signficantly impactful Foreign Key dropping backports.
Resource is highly relational data and it makes sense to allow the
use of FKs from other subsystems to project/domains.
Change-Id: Ic3831d1c7ae41fe4d406d60a013770cc1258584f
Diffstat (limited to 'keystone/resource')
-rw-r--r-- | keystone/resource/backends/sql.py | 2 | ||||
-rw-r--r-- | keystone/resource/core.py | 9 |
2 files changed, 9 insertions, 2 deletions
diff --git a/keystone/resource/backends/sql.py b/keystone/resource/backends/sql.py index f2da7d196..e0bd08aa1 100644 --- a/keystone/resource/backends/sql.py +++ b/keystone/resource/backends/sql.py @@ -22,6 +22,8 @@ LOG = log.getLogger(__name__) class Resource(base.ResourceDriverBase): + # TODO(morgan): Merge all of this code into the manager, Resource backend + # is only SQL. There is no configurable driver. def default_assignment_driver(self): return 'sql' diff --git a/keystone/resource/core.py b/keystone/resource/core.py index 1f7423eae..0e9c209c1 100644 --- a/keystone/resource/core.py +++ b/keystone/resource/core.py @@ -27,6 +27,7 @@ from keystone import exception from keystone.i18n import _ from keystone import notifications from keystone.resource.backends import base +from keystone.resource.backends import sql as resource_sql from keystone.token import provider as token_provider CONF = keystone.conf.CONF @@ -51,8 +52,12 @@ class Manager(manager.Manager): _PROJECT = 'project' def __init__(self): - resource_driver = CONF.resource.driver - super(Manager, self).__init__(resource_driver) + # NOTE(morgan): The resource driver must be SQL. This is because there + # is a FK between identity and resource. Almost every deployment uses + # SQL Identity in some form. Even if SQL Identity is not used, there + # is almost no reason to have non-SQL Resource. Keystone requires + # SQL in a number of ways, this simply codifies it plainly for resource + self.driver = resource_sql.Resource() def _get_hierarchy_depth(self, parents_list): return len(parents_list) + 1 |