55 lines
1.4 KiB
Go
55 lines
1.4 KiB
Go
// Copyright 2023 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
|
//go:build plus
|
|
|
|
package models
|
|
|
|
import (
|
|
"encoding/json"
|
|
"github.com/TeaOSLab/EdgeAPI/internal/remotelogs"
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
|
|
)
|
|
|
|
// DecodeBackupIPs 解析备用IP
|
|
func (this *Node) DecodeBackupIPs() []string {
|
|
var result = []string{}
|
|
if IsNotNull(this.BackupIPs) {
|
|
err := json.Unmarshal(this.BackupIPs, &result)
|
|
if err != nil {
|
|
remotelogs.Error("Node", "DecodeBackupIPs(): "+err.Error())
|
|
}
|
|
}
|
|
return result
|
|
}
|
|
|
|
// DecodeActionStatus 解析动作状态
|
|
func (this *Node) DecodeActionStatus() *nodeconfigs.NodeActionStatus {
|
|
var status = &nodeconfigs.NodeActionStatus{}
|
|
if len(this.ActionStatus) > 0 {
|
|
err := json.Unmarshal(this.ActionStatus, status)
|
|
if err != nil {
|
|
remotelogs.Error("Node", "DecodeActionStatus(): "+err.Error())
|
|
}
|
|
}
|
|
return status
|
|
}
|
|
|
|
// HasScheduleSettings 检查是否设置了调度
|
|
func (this *Node) HasScheduleSettings() bool {
|
|
if len(this.OfflineDay) > 0 {
|
|
return true
|
|
}
|
|
if this.IsBackupForCluster || this.IsBackupForGroup {
|
|
return true
|
|
}
|
|
if len(this.DecodeBackupIPs()) > 0 {
|
|
return true
|
|
}
|
|
|
|
countActions, err := SharedNodeActionDAO.CountNodeActions(nil, nodeconfigs.NodeRoleNode, int64(this.Id))
|
|
if err != nil {
|
|
remotelogs.Error("Node", "HasScheduleSettings(): "+err.Error())
|
|
return false
|
|
}
|
|
return countActions > 0
|
|
}
|