Skip to content

Commit

Permalink
Refactor HCP Vault TF acceptance tests for Azure (#71)
Browse files Browse the repository at this point in the history
* Refactor HCP Vault TF acceptance tests for Azure

changes

remove out.txt

fix perf replication broken tests

* feedback

* feedback
  • Loading branch information
codergs committed Oct 13, 2022
1 parent 73a921a commit 4c9a6ed
Show file tree
Hide file tree
Showing 3 changed files with 657 additions and 514 deletions.
103 changes: 103 additions & 0 deletions internal/provider/resource_vault_cluster_const_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
package provider

import (
"bytes"
"fmt"
"testing"
"text/template"

"github.com/stretchr/testify/require"
)

const (
cloudProviderAWS = "aws"
cloudProviderAzure = "azure"
azureRegion = "westus2"
awsRegion = "us-west-2"
vaultClusterResourceName = "hcp_vault_cluster.test"
vaultClusterDataSourceName = "data.hcp_vault_cluster.test"
adminTokenResourceName = "hcp_vault_cluster_admin_token.test"
)

const vaultCluster = `
resource "hcp_vault_cluster" "test" {
cluster_id = "test-vault-cluster-{{ .CloudProvider }}"
hvn_id = hcp_hvn.test.hvn_id
tier = "{{ .Tier }}"
}
`

// sets public_endpoint to true and add metrics and audit log
const updatedVaultClusterPublicAndMetricsAuditLog = `
resource "hcp_vault_cluster" "test" {
cluster_id = "test-vault-cluster-{{ .CloudProvider }}"
hvn_id = hcp_hvn.test.hvn_id
tier = "{{ .Tier }}"
public_endpoint = {{ .PublicEndpoint }}
metrics_config {
splunk_hecendpoint = "https://http-input-splunkcloud.com"
splunk_token = "test"
}
audit_log_config {
datadog_api_key = "test_datadog"
datadog_region = "us1"
}
major_version_upgrade_config {
upgrade_type = "MANUAL"
}
}
`

// changes tier, remove any metrics or audit log config, optionally toggle public
// endpoint on or off
const updatedVaultClusterTierAndMVUConfig = `
resource "hcp_vault_cluster" "test" {
cluster_id = "test-vault-cluster-{{ .CloudProvider }}"
hvn_id = hcp_hvn.test.hvn_id
tier = "{{ .Tier }}"
public_endpoint = {{ .PublicEndpoint }}
major_version_upgrade_config {
upgrade_type = "SCHEDULED"
maintenance_window_day = "WEDNESDAY"
maintenance_window_time = "WINDOW_12AM_4AM"
}
}
`

func setTestAccVaultClusterConfig(t *testing.T, tfCode string, in inputT, tier string) string {
tfTemplate := fmt.Sprintf(`
resource "hcp_hvn" "test" {
hvn_id = "test-hvn-{{ .CloudProvider }}"
cloud_provider = "{{ .CloudProvider }}"
region = "{{ .Region }}"
}
%s
data "hcp_vault_cluster" "test" {
cluster_id = hcp_vault_cluster.test.cluster_id
}
resource "hcp_vault_cluster_admin_token" "test" {
cluster_id = hcp_vault_cluster.test.cluster_id
}
`, tfCode)

tmpl, err := template.New("tf_resources").Parse(tfTemplate)
require.NoError(t, err)

tfResources := &bytes.Buffer{}
err = tmpl.Execute(tfResources, struct {
CloudProvider string
Region string
Tier string
PublicEndpoint string
}{
CloudProvider: in.cloudProvider,
Region: in.region,
Tier: tier,
PublicEndpoint: in.publicEndpoint,
})
require.NoError(t, err)
return tfResources.String()
}
Loading

0 comments on commit 4c9a6ed

Please sign in to comment.