Merge pull request #18 from platform9/controller-emptydb-bug

Fix resource store errors on empty db
This commit is contained in:
Soam Vasani
2016-11-02 00:26:40 -07:00
committed by GitHub
2 changed files with 14 additions and 1 deletions
+5
View File
@@ -132,9 +132,14 @@ func (rs *ResourceStore) delete(typename, rkey string) error {
return err
}
// getAll finds all entries under key. If none or found or key
// doesn't exist, returns an empty slice.
func (rs *ResourceStore) getAll(key string) ([]string, error) {
resp, err := rs.KeysAPI.Get(context.Background(), key, &client.GetOptions{Recursive: true})
if err != nil {
if client.IsKeyNotFound(err) {
return []string{}, nil
}
return nil, err
}
+9 -1
View File
@@ -69,9 +69,17 @@ func TestResourceStore(t *testing.T) {
// Delete the key first, in case of a panic'd previous test run; ignore errors
_ = rs.delete("TestResource", tr.Key())
ks.Delete(context.Background(), "/TestResource", &client.DeleteOptions{Dir: true})
// Verify getAll for empty db
trs, err := rs.getAll("TestResource")
panicIf(err)
if len(trs) != 0 {
log.Fatalf("Expected zero length slice, got %v", trs)
}
// Create
err := rs.create(tr)
err = rs.create(tr)
panicIf(err)
defer ks.Delete(context.Background(), "/TestResource", &client.DeleteOptions{Dir: true})
defer rs.delete("TestResource", tr.Key())