diff --git a/vault/activity_log.go b/vault/activity_log.go index cdfa9d97d6..5487ba35ac 100644 --- a/vault/activity_log.go +++ b/vault/activity_log.go @@ -1167,9 +1167,6 @@ func (c *Core) setupActivityLogLocked(ctx context.Context, wg *sync.WaitGroup) e manager.retentionWorker(ctx, manager.clock.Now(), months) close(manager.retentionDone) }(manager.retentionMonths) - - manager.CensusReportDone = make(chan bool, 1) - go c.activityLog.CensusReport(ctx, c.CensusAgent(), c.BillingStart()) } return nil diff --git a/vault/census_stubs_oss.go b/vault/census_stubs_oss.go new file mode 100644 index 0000000000..db34578100 --- /dev/null +++ b/vault/census_stubs_oss.go @@ -0,0 +1,12 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: BUSL-1.1 + +//go:build !enterprise + +package vault + +import "context" + +//go:generate go run github.com/hashicorp/vault/tools/stubmaker + +func (c *Core) StartCensusReports(ctx context.Context) {} diff --git a/vault/core.go b/vault/core.go index 9800192c3c..452e12cb2e 100644 --- a/vault/core.go +++ b/vault/core.go @@ -2460,12 +2460,6 @@ func (s standardUnsealStrategy) unseal(ctx context.Context, logger log.Logger, c } if !c.IsDRSecondary() { - if !c.perfStandby { - if err := c.setupCensusManager(); err != nil { - logger.Error("failed to instantiate the license reporting agent", "error", err) - } - } - // not waiting on wg to avoid changing existing behavior var wg sync.WaitGroup if err := c.setupActivityLog(ctx, &wg); err != nil { @@ -2473,6 +2467,12 @@ func (s standardUnsealStrategy) unseal(ctx context.Context, logger log.Logger, c } if !c.perfStandby { + if err := c.setupCensusManager(); err != nil { + logger.Error("failed to instantiate the license reporting agent", "error", err) + } + + c.StartCensusReports(ctx) + c.StartManualCensusSnapshots() } diff --git a/vault/logical_system_activity.go b/vault/logical_system_activity.go index bd98c08495..dbadccd4ad 100644 --- a/vault/logical_system_activity.go +++ b/vault/logical_system_activity.go @@ -353,6 +353,8 @@ func (b *SystemBackend) handleActivityConfigUpdate(ctx context.Context, req *log return nil, err } + prevRetentionMonths := config.RetentionMonths + { // Parse the default report months if defaultReportMonthsRaw, ok := d.GetOk("default_report_months"); ok { @@ -438,6 +440,11 @@ func (b *SystemBackend) handleActivityConfigUpdate(ctx context.Context, req *log // Set the new config on the activity log a.SetConfig(ctx, config) + // reload census agent if retention months change during update when reporting is enabled + if prevRetentionMonths != config.RetentionMonths { + a.core.ReloadCensus() + } + if len(warnings) > 0 { return &logical.Response{ Warnings: warnings,