Revised credential database table definition
This patch adds a project column to the credential table. With this new column, we will be using (user, project) as the primary key for query. The reason for this is that a trust may be only valid within a specified project, while a user may be working on a different project for service requesting. Change-Id: Ie5f62c1d8225bbfd37fb6fed8baedd52a004e203
This commit is contained in:
@@ -879,12 +879,12 @@ def cred_create(context, values):
|
||||
return cred
|
||||
|
||||
|
||||
def cred_get(context, cred_id):
|
||||
return model_query(context, models.Credential).get(cred_id)
|
||||
def cred_get(context, user, project):
|
||||
return model_query(context, models.Credential).get((user, project))
|
||||
|
||||
|
||||
def cred_delete(context, cred_id):
|
||||
cred = model_query(context, models.Credential).get(cred_id)
|
||||
def cred_delete(context, user, project):
|
||||
cred = model_query(context, models.Credential).get((user, project))
|
||||
if cred is None:
|
||||
return None
|
||||
cred.delete()
|
||||
|
||||
@@ -169,6 +169,8 @@ def upgrade(migrate_engine):
|
||||
'credential', meta,
|
||||
sqlalchemy.Column('user', sqlalchemy.String(36), primary_key=True,
|
||||
nullable=False),
|
||||
sqlalchemy.Column('project', sqlalchemy.String(36), primary_key=True,
|
||||
nullable=False),
|
||||
sqlalchemy.Column('cred', types.Dict, nullable=False),
|
||||
sqlalchemy.Column('data', types.Dict),
|
||||
mysql_engine='InnoDB',
|
||||
|
||||
@@ -257,6 +257,8 @@ class Credential(BASE, SenlinBase):
|
||||
|
||||
user = sqlalchemy.Column(sqlalchemy.String(36), primary_key=True,
|
||||
nullable=False)
|
||||
project = sqlalchemy.Column(sqlalchemy.String(32), primary_key=True,
|
||||
nullable=False)
|
||||
cred = sqlalchemy.Column(types.Dict, nullable=False)
|
||||
data = sqlalchemy.Column(types.Dict)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user