@@ -16,8 +16,6 @@ package model
1616
1717import (
1818 "fmt"
19- "maps"
20- "slices"
2119 "sort"
2220 "strings"
2321
@@ -88,38 +86,53 @@ func describeEtcdState(state EtcdState) string {
8886
8987 descHTML = append (descHTML , fmt .Sprintf ("<p style=\" margin: 0.25em 0;\" >state, rev: %d, compactRev: %d</p>" , state .Revision , state .CompactRevision ))
9088
91- if len (state .KeyValues ) > 0 {
89+ keys := []string {}
90+ for i , v := range state .Values {
91+ if v == nil {
92+ continue
93+ }
94+ keys = append (keys , state .Keys [i ])
95+ }
96+
97+ if len (keys ) > 0 {
9298 descHTML = append (descHTML , "keys: <ul style=\" margin: 0.25em 0;\" >" )
9399
94- keys := slices .Collect (maps .Keys (state .KeyValues ))
95100 sort .Strings (keys )
96101 for _ , key := range keys {
97102 descHTML = append (descHTML , fmt .Sprintf ("<li style=\" margin: 0.25em 0;\" ><strong>%s</strong> - " , key ))
98103
99- value := state .KeyValues [ key ]
104+ value , _ := state .GetValue ( key )
100105 if value .Value .Value != "" {
101106 descHTML = append (descHTML , fmt .Sprintf ("val: %q, " , value .Value .Value ))
102107 }
103108 if value .Value .Hash != 0 {
104109 descHTML = append (descHTML , fmt .Sprintf ("hash: %d, " , value .Value .Hash ))
105110 }
106- lease := state .KeyLeases [key ]
107- if lease != 0 {
108- descHTML = append (descHTML , fmt .Sprintf ("lease: %d, " , lease ))
109- }
111+ descHTML = append (descHTML , fmt .Sprintf ("mod: %d, ver: %d" , value .ModRevision , value .Version ))
110112
111- descHTML = append (descHTML , fmt .Sprintf ("mod: %d, ver: %d</li>" , value .ModRevision , value .Version ))
113+ for i , k := range state .Keys {
114+ if k == key {
115+ if state .KeyLeases [i ] != 0 {
116+ descHTML = append (descHTML , fmt .Sprintf (", lease: %d" , state .KeyLeases [i ]))
117+ }
118+ break
119+ }
120+ }
121+ descHTML = append (descHTML , "</li>" )
112122 }
113123
114124 descHTML = append (descHTML , "</ul>" )
115125 }
116126
117127 if len (state .Leases ) > 0 {
118128 descHTML = append (descHTML , "leases: <ul style=\" margin: 0.25em 0;\" >" )
119- leases := slices .Collect (maps .Keys (state .Leases ))
120- slices .Sort (leases )
121- for _ , lease := range leases {
122- descHTML = append (descHTML , fmt .Sprintf ("<li style=\" margin: 0.25em 0;\" ><strong>%d</strong></li>" , lease ))
129+ leaseIDs := []int64 {}
130+ for id := range state .Leases {
131+ leaseIDs = append (leaseIDs , id )
132+ }
133+ sort .Slice (leaseIDs , func (i , j int ) bool { return leaseIDs [i ] < leaseIDs [j ] })
134+ for _ , id := range leaseIDs {
135+ descHTML = append (descHTML , fmt .Sprintf ("<li style=\" margin: 0.25em 0;\" ><strong>%d</strong></li>" , id ))
123136 }
124137 descHTML = append (descHTML , "</ul>" )
125138 }
0 commit comments