mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #604 in YUNIONIO/onecloud from ~WANYAOQI/onecloud:bugfix/wyq/guest-backup to release/2.4.0
* commit '976411c10fd70fa0a0efc285aa1b07157307038a': fix code
This commit is contained in:
@@ -329,7 +329,7 @@ func (self *SKVMGuestDriver) RequestSyncToBackup(ctx context.Context, guest *mod
|
||||
body := jsonutils.NewDict()
|
||||
body.Set("backup_nbd_server_uri", jsonutils.NewString(guest.GetMetadata("backup_nbd_server_uri", task.GetUserCred())))
|
||||
host := guest.GetHost()
|
||||
url := fmt.Sprintf("%s/server/%s/drive-mirror", host.ManagerUri, guest.Id)
|
||||
url := fmt.Sprintf("%s/servers/%s/drive-mirror", host.ManagerUri, guest.Id)
|
||||
header := self.getTaskRequestHeader(task)
|
||||
_, _, err := httputils.JSONRequest(httputils.GetDefaultClient(), ctx, "POST", url, header, body, false)
|
||||
if err != nil {
|
||||
|
||||
@@ -95,7 +95,7 @@ type SDisk struct {
|
||||
AutoDelete bool `nullable:"false" default:"false" get:"user" update:"user"` // Column(Boolean, nullable=False, default=False)
|
||||
|
||||
StorageId string `width:"128" charset:"ascii" nullable:"true" list:"admin" create:"required"` // Column(VARCHAR(ID_LENGTH, charset='ascii'), nullable=False)
|
||||
BackupStorageId string `width:"128" charset:"ascii" nullable:"true" list:"admin" create:"required"`
|
||||
BackupStorageId string `width:"128" charset:"ascii" nullable:"true" list:"admin"`
|
||||
|
||||
// # backing template id and type
|
||||
TemplateId string `width:"256" charset:"ascii" nullable:"true" list:"user"` // Column(VARCHAR(ID_LENGTH, charset='ascii'), nullable=True)
|
||||
|
||||
@@ -199,8 +199,9 @@ func (self *SGuest) AllowPerformStop(ctx context.Context,
|
||||
|
||||
func (self *SGuest) PerformStop(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject,
|
||||
data jsonutils.JSONObject) (jsonutils.JSONObject, error) {
|
||||
isForce := jsonutils.QueryBoolean(data, "is_force", false)
|
||||
if utils.IsInStringArray(self.Status, []string{VM_RUNNING, VM_STOP_FAILED}) || (isForce && self.Status == VM_STOPPING) {
|
||||
// XXX if is force, force stop guest
|
||||
var isForce = jsonutils.QueryBoolean(data, "is_force", false)
|
||||
if isForce || utils.IsInStringArray(self.Status, []string{VM_RUNNING, VM_STOP_FAILED}) {
|
||||
return nil, self.StartGuestStopTask(ctx, userCred, isForce, "")
|
||||
} else {
|
||||
return nil, httperrors.NewInvalidStatusError("Cannot stop server in status %s", self.Status)
|
||||
|
||||
@@ -90,6 +90,7 @@ const (
|
||||
VM_SNAPSHOT = "snapshot"
|
||||
VM_SNAPSHOT_DELETE = "snapshot_delete"
|
||||
VM_BLOCK_STREAM = "block_stream"
|
||||
VM_MIRROR_FAIL = "mirror_failed"
|
||||
VM_SNAPSHOT_SUCC = "snapshot_succ"
|
||||
VM_SNAPSHOT_FAILED = "snapshot_failed"
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ func (self *GuestStartTask) OnStartBackupGuestComplete(ctx context.Context, gues
|
||||
func (self *GuestStartTask) OnStartComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) {
|
||||
guest := obj.(*models.SGuest)
|
||||
db.OpsLog.LogEvent(guest, db.ACT_START, guest.GetShortDesc(), self.UserCred)
|
||||
self.SetStage("on_guest_syncstatus_after_start", nil)
|
||||
self.SetStage("OnGuestSyncstatusAfterStart", nil)
|
||||
guest.StartSyncstatus(ctx, self.UserCred, self.GetTaskId())
|
||||
logclient.AddActionLog(guest, logclient.ACT_VM_START, "", self.UserCred, true)
|
||||
// self.taskComplete(ctx, guest)
|
||||
|
||||
Reference in New Issue
Block a user