From a09a0b4d9d9ea5f32b5b6bbe6934913470a70c4c Mon Sep 17 00:00:00 2001 From: wubijie Date: Mon, 18 Nov 2024 14:42:24 +0800 Subject: [PATCH] add GetDNSFilesByNode func and test --- configmanage/server/internal/dnsfile.go | 1 + configmanage/server/service/dns.go | 31 +++++++++++++++++++++++++ configmanage/server/service/dns_test.go | 13 +++++++++++ 3 files changed, 45 insertions(+) diff --git a/configmanage/server/internal/dnsfile.go b/configmanage/server/internal/dnsfile.go index d865e5a0..5cc8e1fd 100644 --- a/configmanage/server/internal/dnsfile.go +++ b/configmanage/server/internal/dnsfile.go @@ -49,6 +49,7 @@ func (df *DNSFile) Add() error { df.Hostuuid, ).Error } + func GetDNSFileByInfoUUID(uuid string, isindex interface{}) (DNSFile, error) { var file DNSFile if isindex != nil { diff --git a/configmanage/server/service/dns.go b/configmanage/server/service/dns.go index 3a34e098..c884d0f0 100644 --- a/configmanage/server/service/dns.go +++ b/configmanage/server/service/dns.go @@ -43,6 +43,18 @@ func (dc *DNSConfig) toDNSFile() DNSFile { } } +func toDNSConfig(df *DNSFile) DNSConfig { + return DNSConfig{ + UUID: df.UUID, + ConfigInfoUUID: df.ConfigInfoUUID, + Path: df.Path, + Name: df.Name, + Content: df.Content, + Version: df.Version, + IsActive: df.IsActive, + } +} + func (dc *DNSConfig) Record() error { df := dc.toDNSFile() return df.Add() @@ -71,3 +83,22 @@ func GetDNSFileByInfoUUID(uuid string, isindex interface{}) (DNSFile, error) { func GetDNSFilesByConfigUUID(uuid string) ([]DNSFile, error) { return internal.GetDNSFilesByConfigUUID(uuid) } + +// 查看某台机器某种类型的的历史配置信息 +func GetDNSFilesByNode(nodeid string) ([]DNSConfig, error) { + // 查找本台机器所属的配置uuid + config_nodes, err := internal.GetConfigNodesByNode(nodeid) + if err != nil { + return nil, err + } + var dcs []DNSConfig + for _, v := range config_nodes { + df, err := internal.GetDNSFileByInfoUUID(v.ConfigInfoUUID, nil) + if err != nil { + return nil, err + } + dc := toDNSConfig(&df) + dcs = append(dcs, dc) + } + return dcs, nil +} diff --git a/configmanage/server/service/dns_test.go b/configmanage/server/service/dns_test.go index 7e353d25..a951774a 100644 --- a/configmanage/server/service/dns_test.go +++ b/configmanage/server/service/dns_test.go @@ -68,3 +68,16 @@ func TestGetDNSFilesByConfigUUID(t *testing.T) { } fmt.Println(len(files)) } + +func TestGetDNSFilesByNode(t *testing.T) { + // 设置测试数据 + nodeid := "77777777-5f8e-42df-b2d0-49bf55cfeb56" + + // 调用被测试的函数 + dcs, err := GetDNSFilesByNode(nodeid) + if err != nil { + fmt.Printf("GetDNSFilesByNode error: %s\n", err) + os.Exit(-1) + } + fmt.Println(len(dcs)) +} -- Gitee