Merge pull request #3907 from ioito/hotfix/qx-dbinstance-virtual-resource

fix: rds创建账号所属项目跟随rds实例
This commit is contained in:
yunion-ci-robot
2019-11-27 09:08:28 +08:00
committed by GitHub
4 changed files with 29 additions and 4 deletions
+9
View File
@@ -111,6 +111,15 @@ func (manager *SVirtualResourceBaseManager) FilterByHiddenSystemAttributes(q *sq
return q
}
func (model *SVirtualResourceBase) SetProjectInfo(ctx context.Context, userCred mcclient.TokenCredential, projectId, domainId string) error {
_, err := Update(model, func() error {
model.ProjectId = projectId
model.DomainId = domainId
return nil
})
return err
}
func (manager *SVirtualResourceBaseManager) FilterBySystemAttributes(q *sqlchemy.SQuery, userCred mcclient.TokenCredential, query jsonutils.JSONObject, scope rbacutils.TRbacScope) *sqlchemy.SQuery {
q = manager.SStatusStandaloneResourceBaseManager.FilterBySystemAttributes(q, userCred, query, scope)
@@ -206,6 +206,10 @@ func (self *SDBInstanceAccount) GetPassword() (string, error) {
func (self *SDBInstanceAccount) PostCreate(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data jsonutils.JSONObject) {
self.SVirtualResourceBase.PostCreate(ctx, userCred, ownerId, query, data)
instance, _ := self.GetDBInstance()
if instance != nil {
self.SetProjectInfo(ctx, userCred, instance.ProjectId, instance.DomainId)
}
input := &api.SDBInstanceAccountCreateInput{}
data.Unmarshal(input)
self.savePassword(input.Password)
+4
View File
@@ -157,6 +157,10 @@ func (manager *SDBInstanceBackupManager) ValidateCreateData(ctx context.Context,
func (self *SDBInstanceBackup) PostCreate(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data jsonutils.JSONObject) {
self.SVirtualResourceBase.PostCreate(ctx, userCred, ownerId, query, data)
instance, _ := self.GetDBInstance()
if instance != nil {
self.SetProjectInfo(ctx, userCred, instance.ProjectId, instance.DomainId)
}
self.StartDBInstanceBackupCreateTask(ctx, userCred, nil, "")
}
+12 -4
View File
@@ -150,14 +150,22 @@ func (manager *SDBInstanceDatabaseManager) ValidateCreateData(ctx context.Contex
}
func (self *SDBInstanceDatabase) PostCreate(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data jsonutils.JSONObject) {
self.SVirtualResourceBase.PostCreate(ctx, userCred, ownerId, query, data)
instance, _ := self.GetDBInstance()
if instance != nil {
self.SetProjectInfo(ctx, userCred, instance.ProjectId, instance.DomainId)
}
self.StartDBInstanceDatabaseCreateTask(ctx, userCred, data.(*jsonutils.JSONDict), "")
}
func (self *SDBInstanceDatabase) StartDBInstanceDatabaseCreateTask(ctx context.Context, userCred mcclient.TokenCredential, params *jsonutils.JSONDict, parentTaskId string) error {
self.SetStatus(userCred, api.DBINSTANCE_DATABASE_CREATING, "")
params := data.(*jsonutils.JSONDict)
task, err := taskman.TaskManager.NewTask(ctx, "DBInstanceDatabaseCreateTask", self, userCred, params, "", "", nil)
task, err := taskman.TaskManager.NewTask(ctx, "DBInstanceDatabaseCreateTask", self, userCred, params, parentTaskId, "", nil)
if err != nil {
log.Errorf("DBInstanceDatabaseCreateTask newTask error %s", err)
return
return errors.Wrap(err, "NewTask")
}
task.ScheduleRun(nil)
return nil
}
func (self *SDBInstanceDatabase) GetDBInstancePrivileges() ([]SDBInstancePrivilege, error) {