|
|
|
@ -703,13 +703,17 @@ func TestStoreSnapshot(t *testing.T) {
|
|
|
|
|
if ok, err := store.KVSLock(18, d); err != nil || !ok { |
|
|
|
|
t.Fatalf("err: %v", err) |
|
|
|
|
} |
|
|
|
|
session = &structs.Session{ID: generateUUID(), Node: "baz", TTL: "60s"} |
|
|
|
|
if err := store.SessionCreate(19, session); err != nil { |
|
|
|
|
t.Fatalf("err: %v", err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
a1 := &structs.ACL{ |
|
|
|
|
ID: generateUUID(), |
|
|
|
|
Name: "User token", |
|
|
|
|
Type: structs.ACLTypeClient, |
|
|
|
|
} |
|
|
|
|
if err := store.ACLSet(19, a1); err != nil { |
|
|
|
|
if err := store.ACLSet(20, a1); err != nil { |
|
|
|
|
t.Fatalf("err: %v", err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -718,7 +722,7 @@ func TestStoreSnapshot(t *testing.T) {
|
|
|
|
|
Name: "User token", |
|
|
|
|
Type: structs.ACLTypeClient, |
|
|
|
|
} |
|
|
|
|
if err := store.ACLSet(20, a2); err != nil { |
|
|
|
|
if err := store.ACLSet(21, a2); err != nil { |
|
|
|
|
t.Fatalf("err: %v", err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -730,7 +734,7 @@ func TestStoreSnapshot(t *testing.T) {
|
|
|
|
|
defer snap.Close() |
|
|
|
|
|
|
|
|
|
// Check the last nodes
|
|
|
|
|
if idx := snap.LastIndex(); idx != 20 { |
|
|
|
|
if idx := snap.LastIndex(); idx != 21 { |
|
|
|
|
t.Fatalf("bad: %v", idx) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -785,15 +789,27 @@ func TestStoreSnapshot(t *testing.T) {
|
|
|
|
|
t.Fatalf("missing KVS entries!") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Check there are 2 sessions
|
|
|
|
|
// Check there are 3 sessions
|
|
|
|
|
sessions, err := snap.SessionList() |
|
|
|
|
if err != nil { |
|
|
|
|
t.Fatalf("err: %v", err) |
|
|
|
|
} |
|
|
|
|
if len(sessions) != 2 { |
|
|
|
|
if len(sessions) != 3 { |
|
|
|
|
t.Fatalf("missing sessions") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Check there is 1 session with TTL
|
|
|
|
|
sessions, err = snap.SessionListTTL() |
|
|
|
|
if err != nil { |
|
|
|
|
t.Fatalf("err: %v", err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if len(sessions) < 1 { |
|
|
|
|
t.Fatalf("missing TTL session") |
|
|
|
|
} else if len(sessions) > 1 { |
|
|
|
|
t.Fatalf("too many TTL sessions") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Check for an acl
|
|
|
|
|
acls, err := snap.ACLList() |
|
|
|
|
if err != nil { |
|
|
|
@ -804,13 +820,13 @@ func TestStoreSnapshot(t *testing.T) {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Make some changes!
|
|
|
|
|
if err := store.EnsureService(21, "foo", &structs.NodeService{"db", "db", []string{"slave"}, 8000}); err != nil { |
|
|
|
|
if err := store.EnsureService(22, "foo", &structs.NodeService{"db", "db", []string{"slave"}, 8000}); err != nil { |
|
|
|
|
t.Fatalf("err: %v", err) |
|
|
|
|
} |
|
|
|
|
if err := store.EnsureService(22, "bar", &structs.NodeService{"db", "db", []string{"master"}, 8000}); err != nil { |
|
|
|
|
if err := store.EnsureService(23, "bar", &structs.NodeService{"db", "db", []string{"master"}, 8000}); err != nil { |
|
|
|
|
t.Fatalf("err: %v", err) |
|
|
|
|
} |
|
|
|
|
if err := store.EnsureNode(23, structs.Node{"baz", "127.0.0.3"}); err != nil { |
|
|
|
|
if err := store.EnsureNode(24, structs.Node{"baz", "127.0.0.3"}); err != nil { |
|
|
|
|
t.Fatalf("err: %v", err) |
|
|
|
|
} |
|
|
|
|
checkAfter := &structs.HealthCheck{ |
|
|
|
@ -820,16 +836,16 @@ func TestStoreSnapshot(t *testing.T) {
|
|
|
|
|
Status: structs.HealthCritical, |
|
|
|
|
ServiceID: "db", |
|
|
|
|
} |
|
|
|
|
if err := store.EnsureCheck(24, checkAfter); err != nil { |
|
|
|
|
if err := store.EnsureCheck(26, checkAfter); err != nil { |
|
|
|
|
t.Fatalf("err: %v", err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if err := store.KVSDelete(25, "/web/b"); err != nil { |
|
|
|
|
if err := store.KVSDelete(26, "/web/b"); err != nil { |
|
|
|
|
t.Fatalf("err: %v", err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Nuke an ACL
|
|
|
|
|
if err := store.ACLDelete(26, a1.ID); err != nil { |
|
|
|
|
if err := store.ACLDelete(27, a1.ID); err != nil { |
|
|
|
|
t.Fatalf("err: %v", err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -883,12 +899,12 @@ func TestStoreSnapshot(t *testing.T) {
|
|
|
|
|
t.Fatalf("missing KVS entries!") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Check there are 2 sessions
|
|
|
|
|
// Check there are 3 sessions
|
|
|
|
|
sessions, err = snap.SessionList() |
|
|
|
|
if err != nil { |
|
|
|
|
t.Fatalf("err: %v", err) |
|
|
|
|
} |
|
|
|
|
if len(sessions) != 2 { |
|
|
|
|
if len(sessions) != 3 { |
|
|
|
|
t.Fatalf("missing sessions") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|