diff --git a/configmanage/server/internal/dnsfile.go b/configmanage/server/internal/dnsfile.go index 5527c4e7fe9cdd760d3d84180131bd80010df96c..7e74ff87d45218c70c53f1fa522bb266a086318a 100644 --- a/configmanage/server/internal/dnsfile.go +++ b/configmanage/server/internal/dnsfile.go @@ -49,3 +49,12 @@ func (df *DNSFile) Add() error { df.Hostuuid, ).Error } +func GetDNSFileByInfoUUID(uuid string, isindex interface{}) (DNSFile, error) { + var file DNSFile + if isindex != nil { + err := db.MySQL().Model(&DNSFile{}).Where("config_info_uuid=? && is_index = ?", uuid, isindex).Find(&file).Error + return file, err + } + err := db.MySQL().Model(&DNSFile{}).Where("config_info_uuid=?", uuid).Find(&file).Error + return file, err +} diff --git a/configmanage/server/service/dns.go b/configmanage/server/service/dns.go index 5ef5189f1ebae6073c5152157733a89e7abf9228..645af6111286ac3eab0aa91d02d542f03ea6b218 100644 --- a/configmanage/server/service/dns.go +++ b/configmanage/server/service/dns.go @@ -42,7 +42,27 @@ func (dc *DNSConfig) toDNSFile() DNSFile { IsFromHost: false, } } + func (dc *DNSConfig) Record() error { df := dc.toDNSFile() return df.Add() } + +func (dc *DNSConfig) Load() error { + // 加载正在使用的某配置文件 + df, err := internal.GetDNSFileByInfoUUID(dc.ConfigInfoUUID, true) + if err != nil { + return err + } + dc.UUID = df.UUID + dc.Path = df.Path + dc.Name = df.Name + dc.Content = df.Content + dc.Version = df.Version + dc.IsActive = df.IsActive + return nil +} + +func GetDNSFileByInfoUUID(uuid string, isindex interface{}) (DNSFile, error) { + return internal.GetDNSFileByInfoUUID(uuid, isindex) +}