server: Move wal versioning functions to wal package

This commit is contained in:
Marek Siarkowicz 2021-10-06 13:29:07 +02:00
parent e47c3c22d2
commit 703df1c491
4 changed files with 11 additions and 11 deletions

View File

@ -28,6 +28,7 @@ import (
)
var (
V3_4 = semver.Version{Major: 3, Minor: 4}
V3_7 = semver.Version{Major: 3, Minor: 7}
)

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
package schema
package wal
import (
"fmt"
@ -26,14 +26,13 @@ import (
"go.etcd.io/etcd/api/v3/etcdserverpb"
"go.etcd.io/etcd/pkg/v3/pbutil"
"go.etcd.io/etcd/raft/v3/raftpb"
"go.etcd.io/etcd/server/v3/storage/wal"
)
// MinimalStorageVersionFromWAL returns minimal etcd storage able to interpret provided WAL log,
// MinimalEtcdVersion returns minimal etcd able to interpret provided WAL log,
// determined by looking at entries since the last snapshot and returning the highest
// etcd version annotation from used messages, fields, enums and their values.
func MinimalStorageVersionFromWAL(wal *wal.WAL) *semver.Version {
_, _, ents, err := wal.ReadAll()
func (w *WAL) MinimalEtcdVersion() *semver.Version {
_, _, ents, err := w.ReadAll()
if err != nil {
panic(err)
}

View File

@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
package schema
package wal
import (
"fmt"
@ -21,7 +21,6 @@ import (
"github.com/coreos/go-semver/semver"
"github.com/golang/protobuf/proto"
"github.com/stretchr/testify/assert"
"go.etcd.io/etcd/api/v3/etcdserverpb"
"go.etcd.io/etcd/api/v3/membershippb"
"go.etcd.io/etcd/pkg/v3/pbutil"
@ -33,6 +32,8 @@ var (
V3_1 = semver.Version{Major: 3, Minor: 1}
V3_3 = semver.Version{Major: 3, Minor: 3}
V3_4 = semver.Version{Major: 3, Minor: 4}
V3_5 = semver.Version{Major: 3, Minor: 5}
V3_6 = semver.Version{Major: 3, Minor: 6}
)
func TestEtcdVersionFromEntry(t *testing.T) {

View File

@ -26,7 +26,6 @@ import (
"go.etcd.io/etcd/client/pkg/v3/testutil"
clientv3 "go.etcd.io/etcd/client/v3"
"go.etcd.io/etcd/server/v3/embed"
"go.etcd.io/etcd/server/v3/storage/schema"
"go.etcd.io/etcd/server/v3/storage/wal"
"go.etcd.io/etcd/server/v3/storage/wal/walpb"
)
@ -59,11 +58,11 @@ func TestEtcdVersionFromWAL(t *testing.T) {
cli.Close()
srv.Close()
wal, err := wal.Open(zap.NewNop(), cfg.Dir+"/member/wal", walpb.Snapshot{})
w, err := wal.Open(zap.NewNop(), cfg.Dir+"/member/wal", walpb.Snapshot{})
if err != nil {
panic(err)
}
defer wal.Close()
ver := schema.MinimalStorageVersionFromWAL(wal)
defer w.Close()
ver := w.MinimalEtcdVersion()
assert.Equal(t, &semver.Version{Major: 3, Minor: 5}, ver)
}