|
|
@ -9,6 +9,7 @@ import ( |
|
|
|
"github.com/syndtr/goleveldb/leveldb/filter" |
|
|
|
"github.com/syndtr/goleveldb/leveldb/opt" |
|
|
|
leveldb_util "github.com/syndtr/goleveldb/leveldb/util" |
|
|
|
"io" |
|
|
|
"os" |
|
|
|
|
|
|
|
"github.com/chrislusf/seaweedfs/weed/filer" |
|
|
@ -21,6 +22,10 @@ const ( |
|
|
|
DIR_FILE_SEPARATOR = byte(0x00) |
|
|
|
) |
|
|
|
|
|
|
|
var ( |
|
|
|
_ = filer.Debuggable(&LevelDBStore{}) |
|
|
|
) |
|
|
|
|
|
|
|
func init() { |
|
|
|
filer.Stores = append(filer.Stores, &LevelDBStore{}) |
|
|
|
} |
|
|
@ -242,3 +247,13 @@ func getNameFromKey(key []byte) string { |
|
|
|
func (store *LevelDBStore) Shutdown() { |
|
|
|
store.db.Close() |
|
|
|
} |
|
|
|
|
|
|
|
func (store *LevelDBStore) Debug(writer io.Writer) { |
|
|
|
iter := store.db.NewIterator(&leveldb_util.Range{}, nil) |
|
|
|
for iter.Next() { |
|
|
|
key := iter.Key() |
|
|
|
fullName := bytes.Replace(key, []byte{DIR_FILE_SEPARATOR}, []byte{' '}, 1) |
|
|
|
fmt.Fprintf(writer, "%v\n", string(fullName)) |
|
|
|
} |
|
|
|
iter.Release() |
|
|
|
} |