mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-31 02:28:09 +00:00 
			
		
		
		
	Add testing harness for a vault cluster
This commit is contained in:
		| @@ -4,8 +4,55 @@ import ( | ||||
| 	"testing" | ||||
|  | ||||
| 	"github.com/hashicorp/vault/api" | ||||
| 	"github.com/hashicorp/vault/builtin/logical/pki" | ||||
| 	"github.com/hashicorp/vault/builtin/logical/transit" | ||||
| 	"github.com/hashicorp/vault/logical" | ||||
| 	"github.com/hashicorp/vault/vault" | ||||
|  | ||||
| 	vaulthttp "github.com/hashicorp/vault/http" | ||||
| 	logxi "github.com/mgutz/logxi/v1" | ||||
| ) | ||||
|  | ||||
| var testVaultServerDefaultBackends = map[string]logical.Factory{ | ||||
| 	"transit": transit.Factory, | ||||
| 	"pki":     pki.Factory, | ||||
| } | ||||
|  | ||||
| func testVaultServer(t testing.TB) (*api.Client, func()) { | ||||
| 	return testVaultServerBackends(t, testVaultServerDefaultBackends) | ||||
| } | ||||
|  | ||||
| func testVaultServerBackends(t testing.TB, backends map[string]logical.Factory) (*api.Client, func()) { | ||||
| 	coreConfig := &vault.CoreConfig{ | ||||
| 		DisableMlock:    true, | ||||
| 		DisableCache:    true, | ||||
| 		Logger:          logxi.NullLog, | ||||
| 		LogicalBackends: backends, | ||||
| 	} | ||||
|  | ||||
| 	cluster := vault.NewTestCluster(t, coreConfig, &vault.TestClusterOptions{ | ||||
| 		HandlerFunc: vaulthttp.Handler, | ||||
| 	}) | ||||
| 	cluster.Start() | ||||
|  | ||||
| 	// make it easy to get access to the active | ||||
| 	core := cluster.Cores[0].Core | ||||
| 	vault.TestWaitActive(t, core) | ||||
|  | ||||
| 	client := cluster.Cores[0].Client | ||||
| 	client.SetToken(cluster.RootToken) | ||||
|  | ||||
| 	// Sanity check | ||||
| 	secret, err := client.Auth().Token().LookupSelf() | ||||
| 	if err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 	if secret == nil || secret.Data["id"].(string) != cluster.RootToken { | ||||
| 		t.Fatalf("token mismatch: %#v vs %q", secret, cluster.RootToken) | ||||
| 	} | ||||
| 	return client, func() { defer cluster.Cleanup() } | ||||
| } | ||||
|  | ||||
| func testClient(t *testing.T, addr string, token string) *api.Client { | ||||
| 	config := api.DefaultConfig() | ||||
| 	config.Address = addr | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Seth Vargo
					Seth Vargo