mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-11-01 19:17:58 +00:00
Create sdk/ and api/ submodules (#6583)
This commit is contained in:
77
sdk/plugin/mock/backend.go
Normal file
77
sdk/plugin/mock/backend.go
Normal file
@@ -0,0 +1,77 @@
|
||||
package mock
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/hashicorp/vault/sdk/logical"
|
||||
"github.com/hashicorp/vault/sdk/framework"
|
||||
)
|
||||
|
||||
// New returns a new backend as an interface. This func
|
||||
// is only necessary for builtin backend plugins.
|
||||
func New() (interface{}, error) {
|
||||
return Backend(), nil
|
||||
}
|
||||
|
||||
// Factory returns a new backend as logical.Backend.
|
||||
func Factory(ctx context.Context, conf *logical.BackendConfig) (logical.Backend, error) {
|
||||
b := Backend()
|
||||
if err := b.Setup(ctx, conf); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return b, nil
|
||||
}
|
||||
|
||||
// FactoryType is a wrapper func that allows the Factory func to specify
|
||||
// the backend type for the mock backend plugin instance.
|
||||
func FactoryType(backendType logical.BackendType) logical.Factory {
|
||||
return func(ctx context.Context, conf *logical.BackendConfig) (logical.Backend, error) {
|
||||
b := Backend()
|
||||
b.BackendType = backendType
|
||||
if err := b.Setup(ctx, conf); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return b, nil
|
||||
}
|
||||
}
|
||||
|
||||
// Backend returns a private embedded struct of framework.Backend.
|
||||
func Backend() *backend {
|
||||
var b backend
|
||||
b.Backend = &framework.Backend{
|
||||
Help: "",
|
||||
Paths: framework.PathAppend(
|
||||
errorPaths(&b),
|
||||
kvPaths(&b),
|
||||
[]*framework.Path{
|
||||
pathInternal(&b),
|
||||
pathSpecial(&b),
|
||||
pathRaw(&b),
|
||||
},
|
||||
),
|
||||
PathsSpecial: &logical.Paths{
|
||||
Unauthenticated: []string{
|
||||
"special",
|
||||
},
|
||||
},
|
||||
Secrets: []*framework.Secret{},
|
||||
Invalidate: b.invalidate,
|
||||
BackendType: logical.TypeLogical,
|
||||
}
|
||||
b.internal = "bar"
|
||||
return &b
|
||||
}
|
||||
|
||||
type backend struct {
|
||||
*framework.Backend
|
||||
|
||||
// internal is used to test invalidate
|
||||
internal string
|
||||
}
|
||||
|
||||
func (b *backend) invalidate(ctx context.Context, key string) {
|
||||
switch key {
|
||||
case "internal":
|
||||
b.internal = ""
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user