summaryrefslogtreecommitdiff
path: root/keystone/resource
diff options
context:
space:
mode:
authorMorgan Fainberg <morgan.fainberg@gmail.com>2017-08-14 10:40:39 -0700
committerMorgan Fainberg <morgan.fainberg@gmail.com>2017-08-14 19:01:02 +0000
commit3d46c8a5d93529b4050bab635486cfa6b05c9a85 (patch)
tree5f365ef1c7ae360ff3082ce31a1a5b9eb178be9c /keystone/resource
parent99b3641fa0eb99d903488b2f04f9b69b79b3ff16 (diff)
downloadkeystone-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.py2
-rw-r--r--keystone/resource/core.py9
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