mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-31 02:28:09 +00:00 
			
		
		
		
	 3e054cbd4c
			
		
	
	3e054cbd4c
	
	
	
		
			
			* VAULT-19239 create disable static secret caching config * VAULT-19239 missed file * VAULT-19239 didn't finish a log line * VAULT-19239 adjust test to use new option * Fix typo Co-authored-by: Kuba Wieczorek <kuba.wieczorek@hashicorp.com> --------- Co-authored-by: Kuba Wieczorek <kuba.wieczorek@hashicorp.com>
		
			
				
	
	
		
			95 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright (c) HashiCorp, Inc.
 | |
| // SPDX-License-Identifier: BUSL-1.1
 | |
| 
 | |
| package agentproxyshared
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"os"
 | |
| 	"testing"
 | |
| 
 | |
| 	hclog "github.com/hashicorp/go-hclog"
 | |
| 	"github.com/hashicorp/vault/api"
 | |
| 	"github.com/hashicorp/vault/command/agentproxyshared/cache"
 | |
| 	"github.com/hashicorp/vault/sdk/helper/logging"
 | |
| )
 | |
| 
 | |
| func testNewLeaseCache(t *testing.T, responses []*cache.SendResponse) *cache.LeaseCache {
 | |
| 	t.Helper()
 | |
| 
 | |
| 	client, err := api.NewClient(api.DefaultConfig())
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	lc, err := cache.NewLeaseCache(&cache.LeaseCacheConfig{
 | |
| 		Client:              client,
 | |
| 		BaseContext:         context.Background(),
 | |
| 		Proxier:             cache.NewMockProxier(responses),
 | |
| 		Logger:              logging.NewVaultLogger(hclog.Trace).Named("cache.leasecache"),
 | |
| 		CacheDynamicSecrets: true,
 | |
| 		UserAgentToUse:      "test",
 | |
| 	})
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	return lc
 | |
| }
 | |
| 
 | |
| func populateTempFile(t *testing.T, name, contents string) *os.File {
 | |
| 	t.Helper()
 | |
| 
 | |
| 	file, err := os.CreateTemp(t.TempDir(), name)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	_, err = file.WriteString(contents)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	err = file.Close()
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	return file
 | |
| }
 | |
| 
 | |
| // Test_AddPersistentStorageToLeaseCache Tests that AddPersistentStorageToLeaseCache() correctly
 | |
| // adds persistent storage to a lease cache
 | |
| func Test_AddPersistentStorageToLeaseCache(t *testing.T) {
 | |
| 	tempDir := t.TempDir()
 | |
| 	serviceAccountTokenFile := populateTempFile(t, "proxy-config.hcl", "token")
 | |
| 
 | |
| 	persistConfig := &PersistConfig{
 | |
| 		Type:                    "kubernetes",
 | |
| 		Path:                    tempDir,
 | |
| 		KeepAfterImport:         false,
 | |
| 		ExitOnErr:               false,
 | |
| 		ServiceAccountTokenFile: serviceAccountTokenFile.Name(),
 | |
| 	}
 | |
| 
 | |
| 	leaseCache := testNewLeaseCache(t, nil)
 | |
| 	if leaseCache.PersistentStorage() != nil {
 | |
| 		t.Fatal("persistent storage was available before ours was added")
 | |
| 	}
 | |
| 
 | |
| 	deferFunc, token, err := AddPersistentStorageToLeaseCache(context.Background(), leaseCache, persistConfig, logging.NewVaultLogger(hclog.Info))
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 
 | |
| 	if leaseCache.PersistentStorage() == nil {
 | |
| 		t.Fatal("persistent storage was not added")
 | |
| 	}
 | |
| 
 | |
| 	if token != "" {
 | |
| 		t.Fatal("expected token to be empty")
 | |
| 	}
 | |
| 
 | |
| 	if deferFunc == nil {
 | |
| 		t.Fatal("expected deferFunc to not be nil")
 | |
| 	}
 | |
| }
 |