apply PR feedback

This commit is contained in:
André Roth
2024-07-29 21:32:04 +02:00
parent ff1557afee
commit 0b3dd2709b
5 changed files with 32 additions and 49 deletions

View File

@@ -73,7 +73,7 @@ docker-test: install
test:
test -d /srv/etcd || system/t13_etcd/install-etcd.sh
system/t13_etcd/start-etcd.sh &
echo Running go test
@echo Running go test
go test -v ./... -gocheck.v=true -coverprofile=unit.out
kill `cat /tmp/etcd.pid`

View File

@@ -289,20 +289,18 @@ func (context *AptlyContext) Database() (database.Storage, error) {
func (context *AptlyContext) _database() (database.Storage, error) {
if context.database == nil {
var err error
if context.config().DatabaseBackend.Type == "etcd" {
context.database, err = etcddb.NewDB(context.config().DatabaseBackend.URL)
} else if context.config().DatabaseBackend.Type == "leveldb" {
if context.config().DatabaseBackend.DbPath != "" {
dbPath := filepath.Join(context.config().RootDir, context.config().DatabaseBackend.DbPath)
context.database, err = goleveldb.NewDB(dbPath)
} else {
switch context.config().DatabaseBackend.Type {
case "leveldb":
if len(context.config().DatabaseBackend.DbPath) == 0 {
return nil, errors.New("leveldb databaseBackend config invalid")
}
} else {
dbPath := filepath.Join(context.config().RootDir, context.config().DatabaseBackend.DbPath)
context.database, err = goleveldb.NewDB(dbPath)
case "etcd":
context.database, err = etcddb.NewDB(context.config().DatabaseBackend.URL)
default:
context.database, err = goleveldb.NewDB(context.dbPath())
}
if err != nil {
return nil, fmt.Errorf("can't instantiate database: %s", err)
}

View File

@@ -10,21 +10,17 @@ import (
var Ctx = context.TODO()
func internalOpen(url string) (*clientv3.Client, error) {
func internalOpen(url string) (cli *clientv3.Client, err error) {
cfg := clientv3.Config{
Endpoints: []string{url},
DialTimeout: 30 * time.Second,
MaxCallSendMsgSize: (2048 * 1024 * 1024) - 1,
MaxCallRecvMsgSize: (2048 * 1024 * 1024) - 1,
MaxCallSendMsgSize: 2147483647, // (2048 * 1024 * 1024) - 1
MaxCallRecvMsgSize: 2147483647,
DialKeepAliveTimeout: 7200 * time.Second,
}
cli, err := clientv3.New(cfg)
if err != nil {
return nil, err
}
return cli, nil
cli, err = clientv3.New(cfg)
return
}
func NewDB(url string) (database.Storage, error) {
@@ -34,12 +30,3 @@ func NewDB(url string) (database.Storage, error) {
}
return &EtcDStorage{url, cli, ""}, nil
}
func NewOpenDB(url string) (database.Storage, error) {
db, err := NewDB(url)
if err != nil {
return nil, err
}
return db, nil
}

View File

@@ -22,13 +22,13 @@ var _ = Suite(&EtcDDBSuite{})
func (s *EtcDDBSuite) SetUpTest(c *C) {
var err error
s.db, err = etcddb.NewOpenDB("127.0.0.1:2379")
s.db, err = etcddb.NewDB("127.0.0.1:2379")
c.Assert(err, IsNil)
}
func (s *EtcDDBSuite) TestSetUpTest(c *C) {
var err error
s.db, err = etcddb.NewOpenDB("127.0.0.1:2379")
s.db, err = etcddb.NewDB("127.0.0.1:2379")
c.Assert(err, IsNil)
}
@@ -155,3 +155,4 @@ func (s *EtcDDBSuite) TestTransactionCommit(c *C) {
_, err = transaction.Get(key)
c.Assert(err, NotNil)
}

View File

@@ -33,8 +33,8 @@ func (s *EtcDStorage) applyPrefix(key []byte) []byte {
// Get key value from etcd
func (s *EtcDStorage) Get(key []byte) (value []byte, err error) {
key = s.applyPrefix(key)
getResp, err := s.db.Get(Ctx, string(key))
realKey := s.applyPrefix(key)
getResp, err := s.db.Get(Ctx, string(realKey))
if err != nil {
return
}
@@ -51,8 +51,8 @@ func (s *EtcDStorage) Get(key []byte) (value []byte, err error) {
// Put saves key to etcd, if key has the same value in DB already, it is not saved
func (s *EtcDStorage) Put(key []byte, value []byte) (err error) {
key = s.applyPrefix(key)
_, err = s.db.Put(Ctx, string(key), string(value))
realKey := s.applyPrefix(key)
_, err = s.db.Put(Ctx, string(realKey), string(value))
if err != nil {
return
}
@@ -61,8 +61,8 @@ func (s *EtcDStorage) Put(key []byte, value []byte) (err error) {
// Delete removes key from etcd
func (s *EtcDStorage) Delete(key []byte) (err error) {
key = s.applyPrefix(key)
_, err = s.db.Delete(Ctx, string(key))
realKey := s.applyPrefix(key)
_, err = s.db.Delete(Ctx, string(realKey))
if err != nil {
return
}
@@ -71,9 +71,9 @@ func (s *EtcDStorage) Delete(key []byte) (err error) {
// KeysByPrefix returns all keys that start with prefix
func (s *EtcDStorage) KeysByPrefix(prefix []byte) [][]byte {
prefix = s.applyPrefix(prefix)
realPrefix := s.applyPrefix(prefix)
result := make([][]byte, 0, 20)
getResp, err := s.db.Get(Ctx, string(prefix), clientv3.WithPrefix())
getResp, err := s.db.Get(Ctx, string(realPrefix), clientv3.WithPrefix())
if err != nil {
return nil
}
@@ -88,9 +88,9 @@ func (s *EtcDStorage) KeysByPrefix(prefix []byte) [][]byte {
// FetchByPrefix returns all values with keys that start with prefix
func (s *EtcDStorage) FetchByPrefix(prefix []byte) [][]byte {
prefix = s.applyPrefix(prefix)
realPrefix := s.applyPrefix(prefix)
result := make([][]byte, 0, 20)
getResp, err := s.db.Get(Ctx, string(prefix), clientv3.WithPrefix())
getResp, err := s.db.Get(Ctx, string(realPrefix), clientv3.WithPrefix())
if err != nil {
return nil
}
@@ -105,22 +105,19 @@ func (s *EtcDStorage) FetchByPrefix(prefix []byte) [][]byte {
// HasPrefix checks whether it can find any key with given prefix and returns true if one exists
func (s *EtcDStorage) HasPrefix(prefix []byte) bool {
prefix = s.applyPrefix(prefix)
getResp, err := s.db.Get(Ctx, string(prefix), clientv3.WithPrefix())
realPrefix := s.applyPrefix(prefix)
getResp, err := s.db.Get(Ctx, string(realPrefix), clientv3.WithPrefix())
if err != nil {
return false
}
if getResp.Count != 0 {
return true
}
return false
return getResp.Count > 0
}
// ProcessByPrefix iterates through all entries where key starts with prefix and calls
// StorageProcessor on key value pair
func (s *EtcDStorage) ProcessByPrefix(prefix []byte, proc database.StorageProcessor) error {
prefix = s.applyPrefix(prefix)
getResp, err := s.db.Get(Ctx, string(prefix), clientv3.WithPrefix())
realPrefix := s.applyPrefix(prefix)
getResp, err := s.db.Get(Ctx, string(realPrefix), clientv3.WithPrefix())
if err != nil {
return err
}