mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
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:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user