badgerds: update datastore hooks
License: MIT Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
Łukasz Magiera committed
Jul 8, 2017 at 22:57 UTC
bc27b9da59e1ffc5582337f7993129981f512520
1 file changed
+21
-3
repo/fsrepo/datastores.go
+21
-3
@@ -62,6 +62,7 @@ func init() {
62
"mount": MountDatastoreConfig,
63
"flatfs": FlatfsDatastoreConfig,
64
"levelds": LeveldsDatastoreConfig,
65
+ "badger": BadgerdsDatastoreConfig,
66
"mem": MemDatastoreConfig,
67
"log": LogDatastoreConfig,
68
"measure": MeasureDatastoreConfig,
@@ -338,13 +339,30 @@ func (c measureDatastoreConfig) Create(path string) (repo.Datastore, error) {
339
return measure.New(c.prefix, child), nil
340
}
341
341
-func (r *FSRepo) openBadgerDatastore(params map[string]interface{}) (repo.Datastore, error) {
342
- p, ok := params["path"].(string)
342
+type badgerdsDatastoreConfig struct {
343
+ path string
344
+}
345
+
346
+func BadgerdsDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error) {
347
+ var c badgerdsDatastoreConfig
348
+ var ok bool
349
+
350
+ c.path, ok = params["path"].(string)
351
if !ok {
352
return nil, fmt.Errorf("'path' field is missing or not string")
353
}
354
+
355
+ return &c, nil
356
+}
357
+
358
+func (c *badgerdsDatastoreConfig) DiskId() string {
359
+ return fmt.Sprintf("badgerds;%s", c.path)
360
+}
361
+
362
+func (c *badgerdsDatastoreConfig) Create(path string) (repo.Datastore, error) {
363
+ p := c.path
364
if !filepath.IsAbs(p) {
347
- p = filepath.Join(r.path, p)
365
+ p = filepath.Join(path, p)
366
}
367
368
err := os.MkdirAll(p, 0755)