func newNetworkTester(clnt client.Client) (networkTester, error) { labels, err := clnt.QueryLabels() if err != nil { return networkTester{}, err } allIPsSet := make(map[string]struct{}) labelMap := make(map[string]db.Label) for _, label := range labels { labelMap[label.Label] = label for _, ip := range append(label.ContainerIPs, label.IP) { allIPsSet[ip] = struct{}{} } } var allIPs []string for ip := range allIPsSet { allIPs = append(allIPs, ip) } connections, err := clnt.QueryConnections() if err != nil { return networkTester{}, err } connectionMap := make(map[string][]string) for _, conn := range connections { connectionMap[conn.From] = append(connectionMap[conn.From], conn.To) // Connections are bi-directional. connectionMap[conn.To] = append(connectionMap[conn.To], conn.From) } return networkTester{ labelMap: labelMap, connectionMap: connectionMap, allIPs: allIPs, }, nil }