fix: repair logs default seed initialization
This commit is contained in:
@@ -1,6 +1,10 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
import "gorm.io/gorm"
|
import (
|
||||||
|
"errors"
|
||||||
|
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
// GetAllModels 数据库迁移用模型列表
|
// GetAllModels 数据库迁移用模型列表
|
||||||
func GetAllModels() []interface{} {
|
func GetAllModels() []interface{} {
|
||||||
@@ -85,13 +89,6 @@ WHERE target_event.dispatch_outbox_id = 0`
|
|||||||
}
|
}
|
||||||
|
|
||||||
func seedDefaultSyslogRules(db *gorm.DB) error {
|
func seedDefaultSyslogRules(db *gorm.DB) error {
|
||||||
var cnt int64
|
|
||||||
if err := db.Model(&SyslogRule{}).Count(&cnt).Error; err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if cnt > 0 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
rows := []SyslogRule{
|
rows := []SyslogRule{
|
||||||
{
|
{
|
||||||
Name: "默认-系统严重错误",
|
Name: "默认-系统严重错误",
|
||||||
@@ -130,17 +127,39 @@ func seedDefaultSyslogRules(db *gorm.DB) error {
|
|||||||
PolicyID: 0,
|
PolicyID: 0,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
return db.Create(&rows).Error
|
for _, row := range rows {
|
||||||
|
var existing SyslogRule
|
||||||
|
err := db.Where("name = ?", row.Name).First(&existing).Error
|
||||||
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
|
if err := db.Create(&row).Error; err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := db.Model(&existing).Select(
|
||||||
|
"name",
|
||||||
|
"enabled",
|
||||||
|
"priority",
|
||||||
|
"device_name_contains",
|
||||||
|
"source_match",
|
||||||
|
"keyword_regex",
|
||||||
|
"message_regex",
|
||||||
|
"alert_name",
|
||||||
|
"severity_code",
|
||||||
|
"severity_mapping_json",
|
||||||
|
"resource_uid_extract_regex",
|
||||||
|
"policy_id",
|
||||||
|
).Updates(&row).Error; err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func seedDefaultTrapRules(db *gorm.DB) error {
|
func seedDefaultTrapRules(db *gorm.DB) error {
|
||||||
var cnt int64
|
|
||||||
if err := db.Model(&TrapRule{}).Count(&cnt).Error; err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if cnt > 0 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
rows := []TrapRule{
|
rows := []TrapRule{
|
||||||
{
|
{
|
||||||
Name: "默认-Trap链路中断",
|
Name: "默认-Trap链路中断",
|
||||||
@@ -153,17 +172,35 @@ func seedDefaultTrapRules(db *gorm.DB) error {
|
|||||||
PolicyID: 0,
|
PolicyID: 0,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
return db.Create(&rows).Error
|
for _, row := range rows {
|
||||||
|
var existing TrapRule
|
||||||
|
err := db.Where("name = ?", row.Name).First(&existing).Error
|
||||||
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
|
if err := db.Create(&row).Error; err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := db.Model(&existing).Select(
|
||||||
|
"name",
|
||||||
|
"enabled",
|
||||||
|
"priority",
|
||||||
|
"oid_prefix",
|
||||||
|
"varbind_match_regex",
|
||||||
|
"alert_name",
|
||||||
|
"severity_code",
|
||||||
|
"policy_id",
|
||||||
|
).Updates(&row).Error; err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func seedDefaultTrapDictionary(db *gorm.DB) error {
|
func seedDefaultTrapDictionary(db *gorm.DB) error {
|
||||||
var cnt int64
|
|
||||||
if err := db.Model(&TrapDictionaryEntry{}).Count(&cnt).Error; err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if cnt > 0 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
rows := []TrapDictionaryEntry{
|
rows := []TrapDictionaryEntry{
|
||||||
{
|
{
|
||||||
Vendor: "H3C",
|
Vendor: "H3C",
|
||||||
@@ -192,5 +229,33 @@ func seedDefaultTrapDictionary(db *gorm.DB) error {
|
|||||||
Enabled: true,
|
Enabled: true,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
return db.Create(&rows).Error
|
for _, row := range rows {
|
||||||
|
var existing TrapDictionaryEntry
|
||||||
|
err := db.Where("oid_prefix = ?", row.OIDPrefix).First(&existing).Error
|
||||||
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
|
if err := db.Create(&row).Error; err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := db.Model(&existing).Select(
|
||||||
|
"oid_prefix",
|
||||||
|
"vendor",
|
||||||
|
"o_id",
|
||||||
|
"name",
|
||||||
|
"title",
|
||||||
|
"description",
|
||||||
|
"severity_code",
|
||||||
|
"severity_mapping_json",
|
||||||
|
"parse_expression",
|
||||||
|
"recovery_message",
|
||||||
|
"enabled",
|
||||||
|
).Updates(&row).Error; err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user