package topology
import "testing"
func TestNormalizeServersProducesPythonCompatibleRecords(t *testing.T) {
servers := []map[string]string{
{"ServerID": "master", "Services": "commit-server", "Type": "server"},
{"ServerID": "edge", "Services": "edge-server", "Type": "server", "ExternalAddress": "edge.example.com:1666"},
}
topology := []map[string]string{
{"ServerID": "edge", "ServerAddress": "edge.example.com:1666", "TargetServerID": "master", "Version": "P4D/2026.1"},
{"ServerAddress": "10.0.0.5:1666", "TargetAddress": "master.example.com:1666", "TargetServerID": "master", "Type": "broker", "Version": "P4BROKER/2026.1"},
}
lookup := map[string]string{"edge.example.com": "Name: edge.example.com\nAddress: 10.0.0.10"}
got := NormalizeServers(servers, topology, lookup)
if len(got) != 3 {
t.Fatalf("NormalizeServers() produced %d records, want 3: %#v", len(got), got)
}
byID := serverByID(got)
if edge := byID["edge"]; edge.Target != "master" || edge.Port != "1666" || edge.IP != "10.0.0.10" || edge.Version != "P4D/2026.1" || !edge.Participates {
t.Errorf("edge normalization = %#v", edge)
}
if broker := byID["broker-10-0-0-5"]; broker.ServerType != "broker" || broker.Target != "master" || broker.Notes[0] != "broker for master" {
t.Errorf("broker normalization = %#v", broker)
}
if master := byID["master"]; master.TargetSource != "root" {
t.Errorf("master normalization = %#v", master)
}
}
func serverByID(servers []Server) map[string]Server {
byID := make(map[string]Server, len(servers))
for _, server := range servers {
byID[server.ServerID] = server
}
return byID
}
| # |
Change |
User |
Description |
Committed |
|
|
#1
|
33865 |
Robert Cowham |
Save enriched server info for compatibility with python version |
|
|