Merge pull request #358 in YUNIONIO/onecloud from ~QIUJIAN/onecloud:hotfix/qj-fail-delete-sched-fail-server-2.3.0 to release/2.3.0

* commit '2b25bc6253677cbbe489917c034b2d355054d930':
  修增:1 baremetal删除停机逻辑不太正确 2 修正一些编译错误
This commit is contained in:
邱剑
2018-10-25 11:39:04 +08:00
3 changed files with 18 additions and 9 deletions
+14 -5
View File
@@ -5,6 +5,7 @@ import (
"fmt"
"net/http"
"regexp"
"strings"
"yunion.io/x/jsonutils"
"yunion.io/x/log"
@@ -155,12 +156,20 @@ func (self *SBaremetalGuestDriver) RequestStartOnHost(ctx context.Context, guest
}
func (self *SBaremetalGuestDriver) RequestStopGuestForDelete(ctx context.Context, guest *models.SGuest, task taskman.ITask) error {
host := guest.GetHost()
guestStatus, _ := task.GetParams().GetString("guest_status")
if guestStatus == models.VM_RUNNING && options.Options.EnablePendingDelete && !guest.PendingDeleted && jsonutils.QueryBoolean(task.GetParams(), "purge", false) {
host := guest.GetHost()
if host != nil && host.Enabled {
return guest.StartGuestStopTask(ctx, task.GetUserCred(), true, task.GetTaskId())
}
overridePendingDelete := jsonutils.QueryBoolean(task.GetParams(), "override_pending_delete", false)
purge := jsonutils.QueryBoolean(task.GetParams(), "purge", false)
if host != nil && host.Enabled &&
(guestStatus == models.VM_RUNNING || strings.Index(guestStatus, "stop") >= 0) &&
options.Options.EnablePendingDelete &&
!guest.PendingDeleted &&
!overridePendingDelete &&
!purge {
return guest.StartGuestStopTask(ctx, task.GetUserCred(), true, task.GetTaskId())
}
if host != nil && !host.Enabled && !purge {
return fmt.Errorf("fail to contact baremetal")
}
task.ScheduleRun(nil)
return nil
+3 -3
View File
@@ -2041,7 +2041,7 @@ func (self *SHost) FetchIpmiInfo(data *jsonutils.JSONDict) (*jsonutils.JSONDict,
IPMI_KEY_PERFIX := "ipmi_"
ipmiInfo := jsonutils.NewDict()
kv, _ := data.GetMap()
for key, _ := range kv {
for key := range kv {
value, err := ipmiInfo.GetString(key)
if strings.HasPrefix(value, IPMI_KEY_PERFIX) {
subkey := key[len(IPMI_KEY_PERFIX):]
@@ -2375,7 +2375,7 @@ func (self *SHost) PerformAddNetif(ctx context.Context, userCred mcclient.TokenC
ipAddr, _ := data.GetString("ip_addr")
var sw *SWire
if len(wire) > 0 && len(ipAddr) == 0 {
iWire, err := WireManager.FetchByIdOrName(userCred.GetProjectId(), wire)
iWire, err := WireManager.FetchByIdOrName(userCred, wire)
if err != nil {
return nil, httperrors.NewBadRequestError("Wire %s not found", wire)
}
@@ -2565,7 +2565,7 @@ func (self *SHost) EnableNetif(ctx context.Context, userCred mcclient.TokenCrede
}
if net == nil {
if len(network) > 0 {
iNet, err := NetworkManager.FetchByIdOrName(userCred.GetProjectId(), network)
iNet, err := NetworkManager.FetchByIdOrName(userCred, network)
if err != nil {
return fmt.Errorf("Network %s not found: %s", network, err)
}
+1 -1
View File
@@ -102,7 +102,7 @@ func (manager *SStorageManager) ValidateCreateData(ctx context.Context, userCred
if err != nil {
return nil, httperrors.NewMissingParameterError("zone")
}
zone, _ := ZoneManager.FetchByIdOrName(userCred.GetProjectId(), zoneId)
zone, _ := ZoneManager.FetchByIdOrName(userCred, zoneId)
if zone == nil {
return nil, httperrors.NewResourceNotFoundError("zone %s", zoneId)
}