mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #3907 from ioito/hotfix/qx-dbinstance-virtual-resource
fix: rds创建账号所属项目跟随rds实例
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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, "")
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user