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:
邱剑
2018-11-30 12:20:43 +08:00
5 changed files with 7 additions and 5 deletions
+1 -1
View File
@@ -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 {
+1 -1
View File
@@ -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)
+3 -2
View File
@@ -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)
+1
View File
@@ -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"
+1 -1
View File
@@ -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)