mirror of https://github.com/status-im/consul.git
Fix some tests failures caused by the sorting change and some cuased by previous UpdatePrecedence() change
This commit is contained in:
parent
bf7a62e0e0
commit
4a54f8f7e3
|
@ -106,6 +106,11 @@ func (s *Snapshot) Intentions() (structs.Intentions, error) {
|
||||||
|
|
||||||
var ret structs.Intentions
|
var ret structs.Intentions
|
||||||
for wrapped := ixns.Next(); wrapped != nil; wrapped = ixns.Next() {
|
for wrapped := ixns.Next(); wrapped != nil; wrapped = ixns.Next() {
|
||||||
|
// Update precedence values for consistency (i.e. the object returned should
|
||||||
|
// be usable/comparable to the ones returned from Intentions() and Match()
|
||||||
|
// etc.)
|
||||||
|
ixn := wrapped.(*structs.Intention)
|
||||||
|
ixn.UpdatePrecedence()
|
||||||
ret = append(ret, wrapped.(*structs.Intention))
|
ret = append(ret, wrapped.(*structs.Intention))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,7 +147,9 @@ func (s *Store) Intentions(ws memdb.WatchSet) (uint64, structs.Intentions, error
|
||||||
|
|
||||||
var results structs.Intentions
|
var results structs.Intentions
|
||||||
for ixn := iter.Next(); ixn != nil; ixn = iter.Next() {
|
for ixn := iter.Next(); ixn != nil; ixn = iter.Next() {
|
||||||
results = append(results, ixn.(*structs.Intention))
|
ixnReal := ixn.(*structs.Intention)
|
||||||
|
ixnReal.UpdatePrecedence()
|
||||||
|
results = append(results, ixnReal)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort by precedence just because that's nicer and probably what most clients
|
// Sort by precedence just because that's nicer and probably what most clients
|
||||||
|
@ -317,7 +324,9 @@ func (s *Store) IntentionMatch(ws memdb.WatchSet, args *structs.IntentionQueryMa
|
||||||
ws.Add(iter.WatchCh())
|
ws.Add(iter.WatchCh())
|
||||||
|
|
||||||
for ixn := iter.Next(); ixn != nil; ixn = iter.Next() {
|
for ixn := iter.Next(); ixn != nil; ixn = iter.Next() {
|
||||||
ixns = append(ixns, ixn.(*structs.Intention))
|
ixnReal := ixn.(*structs.Intention)
|
||||||
|
ixnReal.UpdatePrecedence()
|
||||||
|
ixns = append(ixns, ixnReal)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -273,6 +273,9 @@ func TestStore_IntentionsList(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
for i := range expected {
|
||||||
|
expected[i].UpdatePrecedence() // to match what is returned...
|
||||||
|
}
|
||||||
idx, actual, err := s.Intentions(nil)
|
idx, actual, err := s.Intentions(nil)
|
||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
assert.Equal(idx, uint64(2))
|
assert.Equal(idx, uint64(2))
|
||||||
|
@ -496,6 +499,8 @@ func TestStore_Intention_Snapshot_Restore(t *testing.T) {
|
||||||
|
|
||||||
// Verify the snapshot.
|
// Verify the snapshot.
|
||||||
assert.Equal(snap.LastIndex(), uint64(6))
|
assert.Equal(snap.LastIndex(), uint64(6))
|
||||||
|
|
||||||
|
// Expect them sorted in insertion order
|
||||||
expected := structs.Intentions{
|
expected := structs.Intentions{
|
||||||
&structs.Intention{
|
&structs.Intention{
|
||||||
ID: ixns[0].ID,
|
ID: ixns[0].ID,
|
||||||
|
@ -525,6 +530,9 @@ func TestStore_Intention_Snapshot_Restore(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
for i := range expected {
|
||||||
|
expected[i].UpdatePrecedence() // to match what is returned...
|
||||||
|
}
|
||||||
dump, err := snap.Intentions()
|
dump, err := snap.Intentions()
|
||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
assert.Equal(expected, dump)
|
assert.Equal(expected, dump)
|
||||||
|
@ -538,7 +546,10 @@ func TestStore_Intention_Snapshot_Restore(t *testing.T) {
|
||||||
}
|
}
|
||||||
restore.Commit()
|
restore.Commit()
|
||||||
|
|
||||||
// Read the restored values back out and verify that they match.
|
// Read the restored values back out and verify that they match. Note that
|
||||||
|
// Intentions are returned precedence sorted unlike the snapshot so we need
|
||||||
|
// to rearrange the expected slice some.
|
||||||
|
expected[0], expected[1], expected[2] = expected[1], expected[2], expected[0]
|
||||||
idx, actual, err := s.Intentions(nil)
|
idx, actual, err := s.Intentions(nil)
|
||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
assert.Equal(idx, uint64(6))
|
assert.Equal(idx, uint64(6))
|
||||||
|
|
|
@ -217,11 +217,11 @@ func (x *Intention) GetACLPrefix() (string, bool) {
|
||||||
|
|
||||||
// String returns a human-friendly string for this intention.
|
// String returns a human-friendly string for this intention.
|
||||||
func (x *Intention) String() string {
|
func (x *Intention) String() string {
|
||||||
return fmt.Sprintf("%s %s/%s => %s/%s (ID: %s)",
|
return fmt.Sprintf("%s %s/%s => %s/%s (ID: %s, Precedence: %d)",
|
||||||
strings.ToUpper(string(x.Action)),
|
strings.ToUpper(string(x.Action)),
|
||||||
x.SourceNS, x.SourceName,
|
x.SourceNS, x.SourceName,
|
||||||
x.DestinationNS, x.DestinationName,
|
x.DestinationNS, x.DestinationName,
|
||||||
x.ID)
|
x.ID, x.Precedence)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IntentionAction is the action that the intention represents. This
|
// IntentionAction is the action that the intention represents. This
|
||||||
|
|
Loading…
Reference in New Issue