adding some logging to the unlocker service.

This commit is contained in:
greg stone
2023-02-27 18:53:04 +00:00
parent cd741dd07a
commit c5bb21e4d8
2 changed files with 35 additions and 13 deletions

View File

@@ -2,15 +2,12 @@ package main
import (
"context"
"fmt"
"git-indra.lan/indra-labs/indra/pkg/rpc"
"git-indra.lan/indra-labs/indra/pkg/storage"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"golang.org/x/term"
"google.golang.org/grpc"
"os"
"syscall"
)
func init() {
@@ -35,11 +32,13 @@ var seedRPCCmd = &cobra.Command{
}
var (
unlockTargetFlag = "target"
unlockTargetFlag = "target"
unlockPassFileFlag = "keyfile"
)
var (
unlockTarget string
unlockTarget string
unlockPassFilePath string
)
func initUnlock(cmd *cobra.Command) {
@@ -49,8 +48,14 @@ func initUnlock(cmd *cobra.Command) {
"the url of the rpc server",
)
viper.BindPFlag(unlockTargetFlag, cmd.PersistentFlags().Lookup(unlockTargetFlag))
viper.BindPFlag(unlockTargetFlag, cmd.Flags().Lookup(unlockTargetFlag))
cmd.Flags().StringVarP(&unlockPassFilePath, unlockPassFileFlag, "",
"",
"",
)
viper.BindPFlag(unlockPassFileFlag, cmd.Flags().Lookup(unlockPassFileFlag))
}
var unlockRPCCmd = &cobra.Command{
@@ -62,23 +67,29 @@ var unlockRPCCmd = &cobra.Command{
var err error
var conn *grpc.ClientConn
conn, err = rpc.Dial(viper.GetString("target"))
conn, err = rpc.Dial(viper.GetString(unlockTargetFlag))
if err != nil {
check(err)
os.Exit(1)
}
var password []byte
var keyFileBytes []byte
fmt.Print("Enter Encryption Key: ")
password, err = term.ReadPassword(int(syscall.Stdin))
fmt.Println()
if keyFileBytes, err = os.ReadFile(viper.GetString(unlockPassFileFlag)); check(err) {
os.Exit(0)
}
//var password []byte
//
//fmt.Print("Enter Encryption Key: ")
//password, err = term.ReadPassword(int(syscall.Stdin))
//fmt.Println()
u := storage.NewUnlockServiceClient(conn)
_, err = u.Unlock(context.Background(), &storage.UnlockRequest{
Key: string(password),
Key: string(string(keyFileBytes)),
})
if err != nil {
@@ -86,5 +97,6 @@ var unlockRPCCmd = &cobra.Command{
return
}
log.I.Ln("successfully unlocked")
},
}

View File

@@ -3,6 +3,7 @@ package storage
import (
"context"
"github.com/dgraph-io/badger/v3"
"github.com/spf13/viper"
)
type Service struct {
@@ -19,15 +20,24 @@ func (s *Service) Unlock(ctx context.Context, req *UnlockRequest) (res *UnlockRe
key.Decode(req.Key)
opts = badger.DefaultOptions(viper.GetString(storeFilePathFlag))
opts.Logger = nil
opts.IndexCacheSize = 128 << 20
opts.EncryptionKey = key.Bytes()
if db, err = badger.Open(opts); check(err) {
if db, err = badger.Open(opts); err != nil {
log.I.Ln("unlock attempt failed:", err)
return &UnlockResponse{
Success: false,
}, err
}
s.success <- true
isUnlockedChan <- true
log.I.Ln("unlock successful")
return &UnlockResponse{
Success: true,