forked from TrueCloudLab/frostfs-node
Anton Nikiforov
d19ade23c8
Avoid opening database for `metabase` and `cache` in `Degraded` mode. Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
37 lines
854 B
Go
37 lines
854 B
Go
package meta
|
|
|
|
import (
|
|
"context"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/shard/mode"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
type epochStateTest struct{}
|
|
|
|
func (s epochStateTest) CurrentEpoch() uint64 {
|
|
return 0
|
|
}
|
|
|
|
func Test_Mode(t *testing.T) {
|
|
t.Parallel()
|
|
bdb := New([]Option{
|
|
WithPath(filepath.Join(t.TempDir(), "metabase")),
|
|
WithPermissions(0o600),
|
|
WithEpochState(epochStateTest{}),
|
|
}...)
|
|
|
|
require.NoError(t, bdb.Open(context.Background(), mode.DegradedReadOnly))
|
|
require.Nil(t, bdb.boltDB)
|
|
require.NoError(t, bdb.Init())
|
|
require.Nil(t, bdb.boltDB)
|
|
require.NoError(t, bdb.Close())
|
|
|
|
require.NoError(t, bdb.Open(context.Background(), mode.Degraded))
|
|
require.Nil(t, bdb.boltDB)
|
|
require.NoError(t, bdb.Init())
|
|
require.Nil(t, bdb.boltDB)
|
|
require.NoError(t, bdb.Close())
|
|
}
|