@@ -1,8 +1,35 @@
package store
+import (
+ "fmt"
+ "path"
+ "strings"
+)
+
// keywords for internal useage
+// Key for string keyword; Value for only checking prefix
var keywords = map[string]bool{
"/acoounts": true,
"/ephemeralNodes": true,
- "/machines": true,
+ "/machines": true,
+}
+// CheckKeyWord will check if the key contains the keyword.
+// For now, we only check for prefix.
+func CheckKeyword(key string) bool {
+ key = path.Clean("/" + key)
+ // find the second "/"
+ i := strings.Index(key[1:], "/")
+ var prefix string
+ if i == -1 {
+ prefix = key
+ } else {
+ prefix = key[:i+1]
+ }
+ _, ok := keywords[prefix]
+ return ok
}
@@ -36,7 +36,7 @@ func TestSaveAndRecovery(t *testing.T) {
s := CreateStore(100)
s.Set("foo", "bar", time.Unix(0, 0), 1)
- s.Set("foo2", "bar2", time.Now().Add(time.Second * 5), 2)
+ s.Set("foo2", "bar2", time.Now().Add(time.Second*5), 2)
state, err := s.Save()
if err != nil {