mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-19 02:37:24 +08:00
fix: 避免创建rds备份时对rds进行一些操作 (#7354)
Co-authored-by: Qu Xuan <quxuan@yunionyun.com>
This commit is contained in:
@@ -16,19 +16,20 @@ package compute
|
||||
|
||||
const (
|
||||
//实例状态
|
||||
DBINSTANCE_DEPLOYING = "deploying" //部署中
|
||||
DBINSTANCE_RUNNING = "running" //运行中
|
||||
DBINSTANCE_REBOOTING = "rebooting" //重启中
|
||||
DBINSTANCE_MIGRATING = "migrating" //迁移中
|
||||
DBINSTANCE_BACKING_UP = "backing_up" //备份中
|
||||
DBINSTANCE_RESTORING = "restoring" //备份恢复中
|
||||
DBINSTANCE_RESTORE_FAILED = "restore_failed"
|
||||
DBINSTANCE_IMPORTING = "importing" //数据导入中
|
||||
DBINSTANCE_CLONING = "cloning" //克隆中
|
||||
DBINSTANCE_DELETING = "deleting" //删除中
|
||||
DBINSTANCE_DELETE_FAILED = "delete_failed" //删除失败
|
||||
DBINSTANCE_MAINTENANCE = "maintenance" //维护中
|
||||
DBINSTANCE_UNKNOWN = "unknown"
|
||||
DBINSTANCE_DEPLOYING = "deploying" //部署中
|
||||
DBINSTANCE_RUNNING = "running" //运行中
|
||||
DBINSTANCE_REBOOTING = "rebooting" //重启中
|
||||
DBINSTANCE_MIGRATING = "migrating" //迁移中
|
||||
DBINSTANCE_BACKING_UP = "backing_up" //备份中
|
||||
DBINSTANCE_BACKING_UP_FAILED = "backing_up_failed" //备份失败
|
||||
DBINSTANCE_RESTORING = "restoring" //备份恢复中
|
||||
DBINSTANCE_RESTORE_FAILED = "restore_failed"
|
||||
DBINSTANCE_IMPORTING = "importing" //数据导入中
|
||||
DBINSTANCE_CLONING = "cloning" //克隆中
|
||||
DBINSTANCE_DELETING = "deleting" //删除中
|
||||
DBINSTANCE_DELETE_FAILED = "delete_failed" //删除失败
|
||||
DBINSTANCE_MAINTENANCE = "maintenance" //维护中
|
||||
DBINSTANCE_UNKNOWN = "unknown"
|
||||
|
||||
DBINSTANCE_CHANGE_CONFIG = "change_config" //调整配置
|
||||
DBINSTANCE_CHANGE_CONFIG_FAILED = "change_config_failed" //调整配置失败
|
||||
|
||||
@@ -259,11 +259,16 @@ func (self *SDBInstanceBackup) PostCreate(ctx context.Context, userCred mcclient
|
||||
}
|
||||
|
||||
func (self *SDBInstanceBackup) StartDBInstanceBackupCreateTask(ctx context.Context, userCred mcclient.TokenCredential, data *jsonutils.JSONDict, parentTaskId string) error {
|
||||
self.SetStatus(userCred, api.DBINSTANCE_BACKUP_CREATING, "")
|
||||
task, err := taskman.TaskManager.NewTask(ctx, "DBInstanceBackupCreateTask", self, userCred, data, parentTaskId, "", nil)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "NewTask")
|
||||
}
|
||||
instance, err := self.GetDBInstance()
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "GetDBInstance")
|
||||
}
|
||||
instance.SetStatus(userCred, api.DBINSTANCE_BACKING_UP, "")
|
||||
self.SetStatus(userCred, api.DBINSTANCE_BACKUP_CREATING, "")
|
||||
task.ScheduleRun(nil)
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -1109,6 +1109,7 @@ func (self *SAliyunRegionDriver) RequestCreateDBInstanceBackup(ctx context.Conte
|
||||
}
|
||||
result := models.DBInstanceBackupManager.SyncDBInstanceBackups(ctx, userCred, backup.GetCloudprovider(), instance, backup.GetRegion(), backups)
|
||||
log.Infof("SyncDBInstanceBackups for dbinstance %s(%s) result: %s", instance.Name, instance.Id, result.Result())
|
||||
instance.SetStatus(userCred, api.DBINSTANCE_RUNNING, "")
|
||||
return nil, nil
|
||||
})
|
||||
return nil
|
||||
|
||||
@@ -265,6 +265,7 @@ func (self *SGoogleRegionDriver) RequestCreateDBInstanceBackup(ctx context.Conte
|
||||
|
||||
result := models.DBInstanceBackupManager.SyncDBInstanceBackups(ctx, userCred, backup.GetCloudprovider(), instance, backup.GetRegion(), backups)
|
||||
log.Infof("SyncDBInstanceBackups for dbinstance %s(%s) result: %s", instance.Name, instance.Id, result.Result())
|
||||
instance.SetStatus(userCred, api.DBINSTANCE_RUNNING, "")
|
||||
return nil, nil
|
||||
})
|
||||
return nil
|
||||
|
||||
@@ -2326,8 +2326,12 @@ func (self *SManagedVirtualizationRegionDriver) RequestCreateDBInstanceBackup(ct
|
||||
backup.BackupSizeMb = iBackup.GetBackupSizeMb()
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "db.Update")
|
||||
}
|
||||
|
||||
return nil, err
|
||||
instance.SetStatus(userCred, api.DBINSTANCE_RUNNING, "")
|
||||
return nil, nil
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -40,6 +40,10 @@ func (self *DBInstanceBackupCreateTask) taskFailed(ctx context.Context, backup *
|
||||
backup.SetStatus(self.UserCred, api.DBINSTANCE_BACKUP_CREATE_FAILED, err.Error())
|
||||
db.OpsLog.LogEvent(backup, db.ACT_CREATE, err.Error(), self.GetUserCred())
|
||||
logclient.AddActionLogWithStartable(self, backup, logclient.ACT_CREATE, err.Error(), self.UserCred, false)
|
||||
instance, _ := backup.GetDBInstance()
|
||||
if instance != nil {
|
||||
instance.SetStatus(self.UserCred, api.DBINSTANCE_BACKING_UP_FAILED, err.Error())
|
||||
}
|
||||
self.SetStageFailed(ctx, err.Error())
|
||||
}
|
||||
|
||||
@@ -56,7 +60,11 @@ func (self *DBInstanceBackupCreateTask) CreateDBInstanceBackup(ctx context.Conte
|
||||
}
|
||||
|
||||
self.SetStage("OnCreateDBInstanceBackupComplete", nil)
|
||||
instance.GetRegion().GetDriver().RequestCreateDBInstanceBackup(ctx, self.UserCred, instance, backup, self)
|
||||
err = instance.GetRegion().GetDriver().RequestCreateDBInstanceBackup(ctx, self.UserCred, instance, backup, self)
|
||||
if err != nil {
|
||||
self.taskFailed(ctx, backup, errors.Wrap(err, "RequestCreateDBInstanceBackup"))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
func (self *DBInstanceBackupCreateTask) OnCreateDBInstanceBackupComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) {
|
||||
|
||||
@@ -359,12 +359,17 @@ func (rds *SDBInstance) GetInternalConnectionStr() string {
|
||||
}
|
||||
|
||||
func (rds *SDBInstance) GetZone1Id() string {
|
||||
zone, err := rds.region.GetZone(rds.GceZone)
|
||||
zones, err := rds.region.GetIZones()
|
||||
if err != nil {
|
||||
log.Errorf("failed to found rds %s zone %s", rds.Name, rds.GceZone)
|
||||
return ""
|
||||
}
|
||||
return zone.GetGlobalId()
|
||||
for _, zone := range zones {
|
||||
if zone.GetId() == rds.GceZone {
|
||||
return zone.GetGlobalId()
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (rds *SDBInstance) GetZone2Id() string {
|
||||
|
||||
@@ -56,11 +56,11 @@ func (zone *SZone) GetName() string {
|
||||
}
|
||||
|
||||
func (zone *SZone) GetGlobalId() string {
|
||||
return zone.GetId()
|
||||
return fmt.Sprintf("%s/%s", zone.region.GetGlobalId(), zone.Name)
|
||||
}
|
||||
|
||||
func (zone *SZone) GetId() string {
|
||||
return fmt.Sprintf("%s/%s", zone.region.GetGlobalId(), zone.Name)
|
||||
return zone.Name
|
||||
}
|
||||
|
||||
func (zone *SZone) GetIHostById(hostId string) (cloudprovider.ICloudHost, error) {
|
||||
|
||||
Reference in New Issue
Block a user