mirror of
https://github.com/kemko/nomad.git
synced 2026-01-06 18:35:44 +03:00
Add StateStore.NodeBySecretID
This commit is contained in:
@@ -638,6 +638,22 @@ func (s *StateStore) NodesByIDPrefix(ws memdb.WatchSet, nodeID string) (memdb.Re
|
||||
return iter, nil
|
||||
}
|
||||
|
||||
// NodeBySecretID is used to lookup a node by SecretID
|
||||
func (s *StateStore) NodeBySecretID(ws memdb.WatchSet, secretID string) (*structs.Node, error) {
|
||||
txn := s.db.Txn(false)
|
||||
|
||||
watchCh, existing, err := txn.FirstWatch("nodes", "secret_id", secretID)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("node lookup by SecretID failed: %v", err)
|
||||
}
|
||||
ws.Add(watchCh)
|
||||
|
||||
if existing != nil {
|
||||
return existing.(*structs.Node), nil
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
// Nodes returns an iterator over all the nodes
|
||||
func (s *StateStore) Nodes(ws memdb.WatchSet) (memdb.ResultIterator, error) {
|
||||
txn := s.db.Txn(false)
|
||||
|
||||
@@ -573,6 +573,15 @@ func TestStateStore_UpsertNode_Node(t *testing.T) {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
|
||||
out2, err := state.NodeBySecretID(ws, node.SecretID)
|
||||
if err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
|
||||
if !reflect.DeepEqual(node, out2) {
|
||||
t.Fatalf("bad: %#v %#v", node, out2)
|
||||
}
|
||||
|
||||
if !reflect.DeepEqual(node, out) {
|
||||
t.Fatalf("bad: %#v %#v", node, out)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user