in scctl/pkg/plugin/diagnose/diagnose.go [123:164]
func writeResult(b *bytes.Buffer, full *bytes.Buffer, rss ...*CompareResult) {
g, m, l := make(map[string][]string), make(map[string][]string), make(map[string][]string)
for _, rs := range rss {
for t, arr := range rs.Results {
switch t {
case greater:
g[rs.Name] = arr
case mismatch:
m[rs.Name] = arr
case less:
l[rs.Name] = arr
}
}
}
i := 0
if s := len(g); s > 0 {
i++
header := fmt.Sprintf("%d. found in cache but not in etcd ", i)
b.WriteString(header)
full.WriteString(header)
writeBody(full, g)
}
if s := len(m); s > 0 {
i++
header := fmt.Sprintf("%d. found different between cache and etcd ", i)
b.WriteString(header)
full.WriteString(header)
writeBody(full, m)
}
if s := len(l); s > 0 {
i++
header := fmt.Sprintf("%d. found in etcd but not in cache ", i)
b.WriteString(header)
full.WriteString(header)
writeBody(full, l)
}
if l := b.Len(); l > 0 {
b.Truncate(l - 1)
full.Truncate(full.Len() - 1)
}
}