提交 bc27b9da 作者: Łukasz Magiera 提交者: Jeromy

badgerds: update datastore hooks

License: MIT
Signed-off-by: 's avatarŁukasz Magiera <magik6k@gmail.com>
上级 fe42bf9c
...@@ -62,6 +62,7 @@ func init() { ...@@ -62,6 +62,7 @@ func init() {
"mount": MountDatastoreConfig, "mount": MountDatastoreConfig,
"flatfs": FlatfsDatastoreConfig, "flatfs": FlatfsDatastoreConfig,
"levelds": LeveldsDatastoreConfig, "levelds": LeveldsDatastoreConfig,
"badger": BadgerdsDatastoreConfig,
"mem": MemDatastoreConfig, "mem": MemDatastoreConfig,
"log": LogDatastoreConfig, "log": LogDatastoreConfig,
"measure": MeasureDatastoreConfig, "measure": MeasureDatastoreConfig,
...@@ -338,13 +339,30 @@ func (c measureDatastoreConfig) Create(path string) (repo.Datastore, error) { ...@@ -338,13 +339,30 @@ func (c measureDatastoreConfig) Create(path string) (repo.Datastore, error) {
return measure.New(c.prefix, child), nil return measure.New(c.prefix, child), nil
} }
func (r *FSRepo) openBadgerDatastore(params map[string]interface{}) (repo.Datastore, error) { type badgerdsDatastoreConfig struct {
p, ok := params["path"].(string) path string
}
func BadgerdsDatastoreConfig(params map[string]interface{}) (DatastoreConfig, error) {
var c badgerdsDatastoreConfig
var ok bool
c.path, ok = params["path"].(string)
if !ok { if !ok {
return nil, fmt.Errorf("'path' field is missing or not string") return nil, fmt.Errorf("'path' field is missing or not string")
} }
return &c, nil
}
func (c *badgerdsDatastoreConfig) DiskId() string {
return fmt.Sprintf("badgerds;%s", c.path)
}
func (c *badgerdsDatastoreConfig) Create(path string) (repo.Datastore, error) {
p := c.path
if !filepath.IsAbs(p) { if !filepath.IsAbs(p) {
p = filepath.Join(r.path, p) p = filepath.Join(path, p)
} }
err := os.MkdirAll(p, 0755) err := os.MkdirAll(p, 0755)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论