From 928087db77d855ed984f705547f5d757a10ffab8 Mon Sep 17 00:00:00 2001 From: Ahsan Barkati Date: Tue, 13 Oct 2020 14:36:01 +0530 Subject: [PATCH] Export functions from Key Registry (#1561) Export some of the functions from key registry which are to be used by dgraph for the encryption of raftwal. --- db.go | 2 +- key_registry.go | 8 ++++---- key_registry_test.go | 16 ++++++++-------- levels.go | 4 ++-- memtable.go | 4 ++-- stream_writer.go | 4 ++-- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/db.go b/db.go index 7db5216a3..3e6d6cb57 100644 --- a/db.go +++ b/db.go @@ -1000,7 +1000,7 @@ func (db *DB) handleFlushTask(ft flushTask) error { return nil } - dk, err := db.registry.latestDataKey() + dk, err := db.registry.LatestDataKey() if err != nil { return y.Wrapf(err, "failed to get datakey in db.handleFlushTask") } diff --git a/key_registry.go b/key_registry.go index 2547ec2e3..5c835ef82 100644 --- a/key_registry.go +++ b/key_registry.go @@ -294,8 +294,8 @@ func WriteKeyRegistry(reg *KeyRegistry, opt KeyRegistryOptions) error { return syncDir(opt.Dir) } -// dataKey returns datakey of the given key id. -func (kr *KeyRegistry) dataKey(id uint64) (*pb.DataKey, error) { +// DataKey returns datakey of the given key id. +func (kr *KeyRegistry) DataKey(id uint64) (*pb.DataKey, error) { kr.RLock() defer kr.RUnlock() if id == 0 { @@ -309,10 +309,10 @@ func (kr *KeyRegistry) dataKey(id uint64) (*pb.DataKey, error) { return dk, nil } -// latestDataKey will give you the latest generated datakey based on the rotation +// LatestDataKey will give you the latest generated datakey based on the rotation // period. If the last generated datakey lifetime exceeds the rotation period. // It'll create new datakey. -func (kr *KeyRegistry) latestDataKey() (*pb.DataKey, error) { +func (kr *KeyRegistry) LatestDataKey() (*pb.DataKey, error) { if len(kr.opt.EncryptionKey) == 0 { // nil is for no encryption. return nil, nil diff --git a/key_registry_test.go b/key_registry_test.go index ce7fcf7f1..3c47ffd68 100644 --- a/key_registry_test.go +++ b/key_registry_test.go @@ -42,12 +42,12 @@ func TestBuildRegistry(t *testing.T) { kr, err := OpenKeyRegistry(opt) require.NoError(t, err) - dk, err := kr.latestDataKey() + dk, err := kr.LatestDataKey() require.NoError(t, err) // We're resetting the last created timestamp. So, it creates // new datakey. kr.lastCreated = 0 - dk1, err := kr.latestDataKey() + dk1, err := kr.LatestDataKey() // We generated two key. So, checking the length. require.Equal(t, 2, len(kr.dataKeys)) require.NoError(t, err) @@ -72,12 +72,12 @@ func TestRewriteRegistry(t *testing.T) { opt := getRegistryTestOptions(dir, encryptionKey) kr, err := OpenKeyRegistry(opt) require.NoError(t, err) - _, err = kr.latestDataKey() + _, err = kr.LatestDataKey() require.NoError(t, err) // We're resetting the last created timestamp. So, it creates // new datakey. kr.lastCreated = 0 - _, err = kr.latestDataKey() + _, err = kr.LatestDataKey() require.NoError(t, err) require.NoError(t, kr.Close()) delete(kr.dataKeys, 1) @@ -123,14 +123,14 @@ func TestEncryptionAndDecryption(t *testing.T) { opt := getRegistryTestOptions(dir, encryptionKey) kr, err := OpenKeyRegistry(opt) require.NoError(t, err) - dk, err := kr.latestDataKey() + dk, err := kr.LatestDataKey() require.NoError(t, err) require.NoError(t, kr.Close()) // Checking the correctness of the datakey after closing and // opening the key registry. kr, err = OpenKeyRegistry(opt) require.NoError(t, err) - dk1, err := kr.dataKey(dk.GetKeyId()) + dk1, err := kr.DataKey(dk.GetKeyId()) require.NoError(t, err) require.Equal(t, dk.Data, dk1.Data) require.NoError(t, kr.Close()) @@ -146,12 +146,12 @@ func TestKeyRegistryInMemory(t *testing.T) { kr, err := OpenKeyRegistry(opt) require.NoError(t, err) - _, err = kr.latestDataKey() + _, err = kr.LatestDataKey() require.NoError(t, err) // We're resetting the last created timestamp. So, it creates // new datakey. kr.lastCreated = 0 - _, err = kr.latestDataKey() + _, err = kr.LatestDataKey() // We generated two key. So, checking the length. require.Equal(t, 2, len(kr.dataKeys)) require.NoError(t, err) diff --git a/levels.go b/levels.go index e2ee48faa..77fc50d4a 100644 --- a/levels.go +++ b/levels.go @@ -137,7 +137,7 @@ func newLevelsController(db *DB, mf *Manifest) (*levelsController, error) { throttle.Done(rerr) atomic.AddInt32(&numOpened, 1) }() - dk, err := db.registry.dataKey(tf.KeyID) + dk, err := db.registry.DataKey(tf.KeyID) if err != nil { rerr = y.Wrapf(err, "Error while reading datakey") return @@ -552,7 +552,7 @@ nextTable: inflightBuilders := y.NewThrottle(5) for it.Valid() { timeStart := time.Now() - dk, err := s.kv.registry.latestDataKey() + dk, err := s.kv.registry.LatestDataKey() if err != nil { return nil, nil, y.Wrapf(err, "Error while retrieving datakey in levelsController.compactBuildTables") diff --git a/memtable.go b/memtable.go index d0ebd4e75..ae887d134 100644 --- a/memtable.go +++ b/memtable.go @@ -565,7 +565,7 @@ func (lf *logFile) open(path string, flags int, opt Options) error { "Unable to copy from %s, size %d", path, lf.size) keyID := binary.BigEndian.Uint64(buf[:8]) // retrieve datakey. - if dk, err := lf.registry.dataKey(keyID); err != nil { + if dk, err := lf.registry.DataKey(keyID); err != nil { return y.Wrapf(err, "While opening vlog file %d", lf.fid) } else { lf.dataKey = dk @@ -587,7 +587,7 @@ func (lf *logFile) bootstrap() error { // generate data key for the log file. var dk *pb.DataKey - if dk, err = lf.registry.latestDataKey(); err != nil { + if dk, err = lf.registry.LatestDataKey(); err != nil { return y.Wrapf(err, "Error while retrieving datakey in logFile.bootstarp") } lf.dataKey = dk diff --git a/stream_writer.go b/stream_writer.go index 53ed36ed0..ecdb079fc 100644 --- a/stream_writer.go +++ b/stream_writer.go @@ -248,7 +248,7 @@ type sortedWriter struct { } func (sw *StreamWriter) newWriter(streamID uint32) (*sortedWriter, error) { - dk, err := sw.db.registry.latestDataKey() + dk, err := sw.db.registry.LatestDataKey() if err != nil { return nil, err } @@ -351,7 +351,7 @@ func (w *sortedWriter) send(done bool) error { return nil } - dk, err := w.db.registry.latestDataKey() + dk, err := w.db.registry.LatestDataKey() if err != nil { return y.Wrapf(err, "Error while retriving datakey in sortedWriter.send") }