vault: incremental change to get closer to logical structs

This commit is contained in:
Mitchell Hashimoto 2015-03-15 13:54:20 -07:00
parent 923ff65959
commit 5ce1b65e5d
5 changed files with 16 additions and 14 deletions

View file

@ -47,7 +47,7 @@ func (g *GenericBackend) RootPaths() []string {
func (g *GenericBackend) handleRead(req *Request) (*Response, error) {
// Read the path
out, err := req.View.Get(req.Path)
out, err := req.Storage.Get(req.Path)
if err != nil {
return nil, fmt.Errorf("read failed: %v", err)
}
@ -105,7 +105,7 @@ func (g *GenericBackend) handleWrite(req *Request) (*Response, error) {
Key: req.Path,
Value: buf,
}
if err := req.View.Put(entry); err != nil {
if err := req.Storage.Put(entry); err != nil {
return nil, fmt.Errorf("failed to write: %v", err)
}
return nil, nil
@ -113,7 +113,7 @@ func (g *GenericBackend) handleWrite(req *Request) (*Response, error) {
func (g *GenericBackend) handleDelete(req *Request) (*Response, error) {
// Delete the key at the request path
if err := req.View.Delete(req.Path); err != nil {
if err := req.Storage.Delete(req.Path); err != nil {
return nil, err
}
return nil, nil
@ -121,7 +121,7 @@ func (g *GenericBackend) handleDelete(req *Request) (*Response, error) {
func (g *GenericBackend) handleList(req *Request) (*Response, error) {
// List the keys at the prefix given by the request
keys, err := req.View.List(req.Path)
keys, err := req.Storage.List(req.Path)
if err != nil {
return nil, err
}

View file

@ -34,7 +34,7 @@ func mockRequest(t *testing.T, op Operation, path string) *Request {
Operation: op,
Path: path,
Data: make(map[string]interface{}),
View: view,
Storage: view,
}
return req
}
@ -68,7 +68,7 @@ func TestGenericBackend_Write(t *testing.T) {
t.Fatalf("bad: %v", resp)
}
out, err := req.View.Get("foo")
out, err := req.Storage.Get("foo")
if err != nil {
t.Fatalf("err: %v", err)
}
@ -92,7 +92,7 @@ func TestGenericBackend_Read(t *testing.T) {
}
req2 := mockRequest(t, ReadOperation, "foo")
req2.View = req.View
req2.Storage = req.Storage
resp, err := b.HandleRequest(req2)
if err != nil {
@ -145,7 +145,7 @@ func TestGenericBackend_Delete(t *testing.T) {
}
req2 := mockRequest(t, DeleteOperation, "foo")
req2.View = req.View
req2.Storage = req.Storage
resp, err := b.HandleRequest(req2)
if err != nil {
@ -156,7 +156,7 @@ func TestGenericBackend_Delete(t *testing.T) {
}
req3 := mockRequest(t, ReadOperation, "foo")
req3.View = req.View
req3.Storage = req.Storage
resp, err = b.HandleRequest(req3)
if err != nil {
@ -182,7 +182,7 @@ func TestGenericBackend_List(t *testing.T) {
}
req2 := mockRequest(t, ListOperation, "")
req2.View = req.View
req2.Storage = req.Storage
resp, err := b.HandleRequest(req2)
if err != nil {

View file

@ -4,6 +4,8 @@ import (
"errors"
"fmt"
"time"
"github.com/hashicorp/vault/logical"
)
var (
@ -70,7 +72,7 @@ type Request struct {
// View is the storage view of this logical backend. It can be used
// to durably store and retrieve state from the backend.
View *BarrierView
Storage logical.Storage
}
// Get returns a data field and guards for nil Data

View file

@ -116,12 +116,12 @@ func (r *Router) Route(req *Request) (*Response, error) {
// Adjust the path, attach the barrier view
original := req.Path
req.Path = strings.TrimPrefix(req.Path, mount)
req.View = me.view
req.Storage = me.view
// Reset the request before returning
defer func() {
req.Path = original
req.View = nil
req.Storage = nil
}()
// Invoke the backend

View file

@ -13,7 +13,7 @@ type NoopBackend struct {
func (n *NoopBackend) HandleRequest(req *Request) (*Response, error) {
n.Paths = append(n.Paths, req.Path)
if req.View == nil {
if req.Storage == nil {
return nil, fmt.Errorf("missing view")
}
return nil, nil