summaryrefslogtreecommitdiffstats
path: root/keystone/assignment/backends/sql.py
diff options
context:
space:
mode:
Diffstat (limited to 'keystone/assignment/backends/sql.py')
-rw-r--r--keystone/assignment/backends/sql.py22
1 files changed, 13 insertions, 9 deletions
diff --git a/keystone/assignment/backends/sql.py b/keystone/assignment/backends/sql.py
index 024a291a..cd2a0a5c 100644
--- a/keystone/assignment/backends/sql.py
+++ b/keystone/assignment/backends/sql.py
@@ -656,9 +656,10 @@ class Domain(sql.ModelBase, sql.DictBase):
__tablename__ = 'domain'
attributes = ['id', 'name', 'enabled']
id = sql.Column(sql.String(64), primary_key=True)
- name = sql.Column(sql.String(64), unique=True, nullable=False)
- enabled = sql.Column(sql.Boolean, default=True)
+ name = sql.Column(sql.String(64), nullable=False)
+ enabled = sql.Column(sql.Boolean, default=True, nullable=False)
extra = sql.Column(sql.JsonBlob())
+ __table_args__ = (sql.UniqueConstraint('name'), {})
class Project(sql.ModelBase, sql.DictBase):
@@ -680,8 +681,9 @@ class Role(sql.ModelBase, sql.DictBase):
__tablename__ = 'role'
attributes = ['id', 'name']
id = sql.Column(sql.String(64), primary_key=True)
- name = sql.Column(sql.String(64), unique=True, nullable=False)
+ name = sql.Column(sql.String(255), nullable=False)
extra = sql.Column(sql.JsonBlob())
+ __table_args__ = (sql.UniqueConstraint('name'), {})
class BaseGrant(sql.DictBase):
@@ -719,9 +721,8 @@ class BaseGrant(sql.DictBase):
class UserProjectGrant(sql.ModelBase, BaseGrant):
__tablename__ = 'user_project_metadata'
- user_id = sql.Column(sql.String(64),
- primary_key=True)
- project_id = sql.Column(sql.String(64),
+ user_id = sql.Column(sql.String(64), primary_key=True)
+ project_id = sql.Column(sql.String(64), sql.ForeignKey('project.id'),
primary_key=True)
data = sql.Column(sql.JsonBlob())
@@ -729,19 +730,22 @@ class UserProjectGrant(sql.ModelBase, BaseGrant):
class UserDomainGrant(sql.ModelBase, BaseGrant):
__tablename__ = 'user_domain_metadata'
user_id = sql.Column(sql.String(64), primary_key=True)
- domain_id = sql.Column(sql.String(64), primary_key=True)
+ domain_id = sql.Column(sql.String(64), sql.ForeignKey('domain.id'),
+ primary_key=True)
data = sql.Column(sql.JsonBlob())
class GroupProjectGrant(sql.ModelBase, BaseGrant):
__tablename__ = 'group_project_metadata'
group_id = sql.Column(sql.String(64), primary_key=True)
- project_id = sql.Column(sql.String(64), primary_key=True)
+ project_id = sql.Column(sql.String(64), sql.ForeignKey('project.id'),
+ primary_key=True)
data = sql.Column(sql.JsonBlob())
class GroupDomainGrant(sql.ModelBase, BaseGrant):
__tablename__ = 'group_domain_metadata'
group_id = sql.Column(sql.String(64), primary_key=True)
- domain_id = sql.Column(sql.String(64), primary_key=True)
+ domain_id = sql.Column(sql.String(64), sql.ForeignKey('domain.id'),
+ primary_key=True)
data = sql.Column(sql.JsonBlob())