Update kv deps

This commit is contained in:
Brian Kassouf 2019-04-16 09:43:52 -07:00
parent 22f9ac11e3
commit 4372625411
3 changed files with 18 additions and 42 deletions

View File

@ -6,6 +6,7 @@ import (
"errors"
"fmt"
"net/http"
"strings"
"time"
"github.com/golang/protobuf/proto"
@ -65,6 +66,13 @@ func (b *versionedKVBackend) dataExistenceCheck() framework.ExistenceFunc {
meta, err := b.getKeyMetadata(ctx, req.Storage, key)
if err != nil {
// If we are returning a readonly error it means we are attempting
// to write the policy for the first time. This means no data exists
// yet and we can safely return false here.
if strings.Contains(err.Error(), logical.ErrReadOnly.Error()) {
return false, nil
}
return false, err
}

View File

@ -3,6 +3,7 @@ package kv
import (
"context"
"fmt"
"strings"
"github.com/golang/protobuf/ptypes"
"github.com/hashicorp/vault/helper/locksutil"
@ -54,6 +55,13 @@ func (b *versionedKVBackend) metadataExistenceCheck() framework.ExistenceFunc {
meta, err := b.getKeyMetadata(ctx, req.Storage, key)
if err != nil {
// If we are returning a readonly error it means we are attempting
// to write the policy for the first time. This means no data exists
// yet and we can safely return false here.
if strings.Contains(err.Error(), logical.ErrReadOnly.Error()) {
return false, nil
}
return false, err
}

View File

@ -11,9 +11,7 @@ import (
"github.com/golang/protobuf/proto"
"github.com/golang/protobuf/ptypes"
"github.com/hashicorp/errwrap"
"github.com/hashicorp/vault/helper/consts"
"github.com/hashicorp/vault/helper/keysutil"
"github.com/hashicorp/vault/helper/locksutil"
"github.com/hashicorp/vault/helper/pluginutil"
"github.com/hashicorp/vault/logical"
@ -65,22 +63,7 @@ func (b *versionedKVBackend) upgradeDone(ctx context.Context, s logical.Storage)
}
}
if !upgradeInfo.Done {
return false, nil
}
// Also make sure the policy is found. This is created on first call to
// policy() but if that happens to be a secondary you get a readonly
// storage error -- not nice UX.
policy, err := keysutil.LoadPolicy(ctx, s, path.Join(b.storagePrefix, "policy/metadata"))
if err != nil {
return false, err
}
if policy == nil {
return false, nil
}
return true, nil
return upgradeInfo.Done, nil
}
func (b *versionedKVBackend) Upgrade(ctx context.Context, s logical.Storage) error {
@ -135,30 +118,7 @@ func (b *versionedKVBackend) Upgrade(ctx context.Context, s logical.Storage) err
return nil
}
// See if we're already done, in which case we just need to ensure the
// policy was created
upgradeEntry, err := s.Get(ctx, path.Join(b.storagePrefix, "upgrading"))
if err != nil {
return err
}
upgradeInfo := new(UpgradeInfo)
if upgradeEntry != nil {
err := proto.Unmarshal(upgradeEntry.Value, upgradeInfo)
if err != nil {
return err
}
}
if upgradeInfo.Done {
// Just synchronously call policy
if _, err = b.policy(ctx, s); err != nil {
return errwrap.Wrapf("upgrade done but error checking/creating policy: {{err}}", err)
}
return nil
}
upgradeInfo = &UpgradeInfo{
upgradeInfo := &UpgradeInfo{
StartedTime: ptypes.TimestampNow(),
}