Skip to content

Commit

Permalink
Ent only ADP Metrics (hashicorp#21681)
Browse files Browse the repository at this point in the history
* Ent only ADP Metrics

* Added change log

* Changed changelog name

* Restored previous impl

* Moved to mount_util

* Change impl

* Add same file

* Moved to registry_util

* Edited corehelpers mock registry

* Edited chagnelog

* Edited changelog

* Edited build tag

* Added back function

* Delete core.go.rej

* Edited mount

* Changed spacing
  • Loading branch information
divyaac authored Jul 10, 2023
1 parent b0fb3b1 commit 9ace875
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 0 deletions.
3 changes: 3 additions & 0 deletions changelog/21681.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:improvement
sys/metrics (enterprise): Adds a gauge metric that tracks whether enterprise builtin secret plugins are enabled.
```
10 changes: 10 additions & 0 deletions helper/builtinplugins/registry_util.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
//go:build !enterprise

package builtinplugins

import "github.com/hashicorp/vault/sdk/helper/consts"

// IsBuiltinEntPlugin checks whether the plugin is an enterprise only builtin plugin
func (r *registry) IsBuiltinEntPlugin(name string, pluginType consts.PluginType) bool {
return false
}
15 changes: 15 additions & 0 deletions helper/testhelpers/corehelpers/corehelpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ import (
"github.com/mitchellh/go-testing-interface"
)

var externalPlugins = []string{"transform", "kmip", "keymgmt"}

// RetryUntil runs f until it returns a nil result or the timeout is reached.
// If a nil result hasn't been obtained by timeout, calls t.Fatal.
func RetryUntil(t testing.T, timeout time.Duration, f func() error) {
Expand Down Expand Up @@ -180,10 +182,23 @@ func (m *mockBuiltinRegistry) Keys(pluginType consts.PluginType) []string {
"pending-removal-test-plugin",
"approle",
}

case consts.PluginTypeSecrets:
return append(externalPlugins, "kv")
}

return []string{}
}

func (r *mockBuiltinRegistry) IsBuiltinEntPlugin(name string, pluginType consts.PluginType) bool {
for _, i := range externalPlugins {
if i == name {
return true
}
}
return false
}

func (m *mockBuiltinRegistry) Contains(name string, pluginType consts.PluginType) bool {
for _, key := range m.Keys(pluginType) {
if key == name {
Expand Down
1 change: 1 addition & 0 deletions vault/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -3181,6 +3181,7 @@ type BuiltinRegistry interface {
Get(name string, pluginType consts.PluginType) (func() (interface{}, error), bool)
Keys(pluginType consts.PluginType) []string
DeprecationStatus(name string, pluginType consts.PluginType) (consts.DeprecationStatus, bool)
IsBuiltinEntPlugin(name string, pluginType consts.PluginType) bool
}

func (c *Core) AuditLogger() AuditLogger {
Expand Down
8 changes: 8 additions & 0 deletions vault/mount.go
Original file line number Diff line number Diff line change
Expand Up @@ -728,6 +728,10 @@ func (c *Core) mountInternal(ctx context.Context, entry *MountEntry, updateStora
if err := c.router.Mount(backend, entry.Path, entry, view); err != nil {
return err
}
if err = c.entBuiltinPluginMetrics(ctx, entry, 1); err != nil {
c.logger.Error("failed to emit enabled ent builtin plugin metrics", "error", err)
return err
}

// Re-evaluate filtered paths
if err := runFilteredPathsEvaluation(ctx, c, false); err != nil {
Expand Down Expand Up @@ -915,6 +919,10 @@ func (c *Core) unmountInternal(ctx context.Context, path string, updateStorage b
if err := c.router.Unmount(ctx, path); err != nil {
return err
}
if err = c.entBuiltinPluginMetrics(ctx, entry, -1); err != nil {
c.logger.Error("failed to emit disabled ent builtin plugin metrics", "error", err)
return err
}

removePathCheckers(c, entry, viewPath)

Expand Down
4 changes: 4 additions & 0 deletions vault/mount_util.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,7 @@ func (c *Core) mountEntrySysView(entry *MountEntry) extendedSystemView {
}
return c.NewAcmeBillingSystemView(esi)
}

func (c *Core) entBuiltinPluginMetrics(ctx context.Context, entry *MountEntry, val float32) error {
return nil
}

0 comments on commit 9ace875

Please sign in to comment.