Files
EdgeAPI/internal/db/models/node_cluster_model_ext.go

93 lines
2.6 KiB
Go
Raw Permalink Normal View History

2020-09-15 14:44:11 +08:00
package models
import (
"encoding/json"
2022-09-15 15:56:50 +08:00
"github.com/TeaOSLab/EdgeAPI/internal/remotelogs"
"github.com/TeaOSLab/EdgeCommon/pkg/dnsconfigs"
2022-09-15 15:56:50 +08:00
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
2022-09-16 18:42:14 +08:00
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
2022-05-18 21:02:53 +08:00
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/ddosconfigs"
)
// DecodeDNSConfig 解析DNS配置
func (this *NodeCluster) DecodeDNSConfig() (*dnsconfigs.ClusterDNSConfig, error) {
if len(this.Dns) == 0 {
// 一定要返回一个默认的值防止产生nil
return dnsconfigs.DefaultClusterDNSConfig(), nil
}
var dnsConfig = dnsconfigs.DefaultClusterDNSConfig()
2022-03-22 19:30:30 +08:00
err := json.Unmarshal(this.Dns, &dnsConfig)
if err != nil {
return nil, err
}
return dnsConfig, nil
}
2022-05-18 21:02:53 +08:00
// DecodeDDoSProtection 解析DDOS Protection设置
func (this *NodeCluster) DecodeDDoSProtection() *ddosconfigs.ProtectionConfig {
if IsNull(this.DdosProtection) {
return nil
}
var result = &ddosconfigs.ProtectionConfig{}
err := json.Unmarshal(this.DdosProtection, &result)
if err != nil {
// ignore err
}
return result
}
// HasDDoSProtection 检查是否有DDoS设置
2022-05-18 21:02:53 +08:00
func (this *NodeCluster) HasDDoSProtection() bool {
var config = this.DecodeDDoSProtection()
if config != nil {
return config.IsOn()
}
return false
}
2022-09-15 15:56:50 +08:00
// HasNetworkSecurityPolicy 检查是否有安全策略设置
func (this *NodeCluster) HasNetworkSecurityPolicy() bool {
var policy = this.DecodeNetworkSecurityPolicy()
if policy != nil {
return policy.IsOn()
}
return false
}
// DecodeNetworkSecurityPolicy 解析安全策略设置
func (this *NodeCluster) DecodeNetworkSecurityPolicy() *nodeconfigs.NetworkSecurityPolicy {
var policy = nodeconfigs.NewNetworkSecurityPolicy()
if IsNotNull(this.NetworkSecurity) {
err := json.Unmarshal(this.NetworkSecurity, policy)
if err != nil {
remotelogs.Error("NodeCluster.DecodeNetworkSecurityPolicy()", err.Error())
}
}
return policy
}
2022-09-15 15:56:50 +08:00
// DecodeClock 解析时钟配置
func (this *NodeCluster) DecodeClock() *nodeconfigs.ClockConfig {
var clock = nodeconfigs.DefaultClockConfig()
if IsNotNull(this.Clock) {
err := json.Unmarshal(this.Clock, clock)
if err != nil {
remotelogs.Error("NodeCluster.DecodeClock()", err.Error())
}
}
return clock
}
2022-09-16 18:42:14 +08:00
// DecodeGlobalServerConfig 解析全局服务配置
func (this *NodeCluster) DecodeGlobalServerConfig() *serverconfigs.GlobalServerConfig {
var config = serverconfigs.NewGlobalServerConfig()
2022-09-16 18:42:14 +08:00
if IsNotNull(this.GlobalServerConfig) {
err := json.Unmarshal(this.GlobalServerConfig, config)
if err != nil {
remotelogs.Error("NodeCluster.DecodeGlobalServerConfig()", err.Error())
}
}
return config
}