diff --git a/configmanage/server/internal/dnsfile.go b/configmanage/server/internal/dnsfile.go index d865e5a0e1b63a96aab2b3b07368fccc5ba9abfc..5cc8e1fda63230dd5ef30c3e39243071efb710c8 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 3a34e098f3d255c2bb69a840b06092d5d7cddfa2..c884d0f0b0913c92218ab0a29fda9acb5cd6d80c 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 7e353d25af4ae5dcec75f0ca0788ad2fdb81d734..a951774a989e0a95ca769e641ca6335457274306 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)) +}