diff --git a/.ci/magician/cmd/test_eap_vcr.go b/.ci/magician/cmd/test_eap_vcr.go
index 015ff5a77a0a..7f288d0d9f8a 100644
--- a/.ci/magician/cmd/test_eap_vcr.go
+++ b/.ci/magician/cmd/test_eap_vcr.go
@@ -163,7 +163,7 @@ func execTestEAPVCR(changeNumber, genPath, kokoroArtifactsDir string, rnr ExecRu
if err := vt.FetchCassettes(provider.Private, "main", head); err != nil {
return fmt.Errorf("error fetching cassettes: %w", err)
}
- replayingResult, testDirs, replayingErr := runReplaying(runFullVCR, provider.Private, services, vt, false, "")
+ replayingResult, testDirs, replayingErr := runReplaying(runFullVCR, provider.Private, services, vt)
if err := vt.UploadLogs(vcr.UploadLogsOptions{
Head: head,
Mode: vcr.Replaying,
diff --git a/.ci/magician/cmd/test_terraform_vcr.go b/.ci/magician/cmd/test_terraform_vcr.go
index ecb8ba90d16f..95091556dfae 100644
--- a/.ci/magician/cmd/test_terraform_vcr.go
+++ b/.ci/magician/cmd/test_terraform_vcr.go
@@ -12,7 +12,6 @@ import (
"github.com/spf13/cobra"
- "magician/cov"
"magician/exec"
"magician/github"
"magician/provider"
@@ -83,19 +82,6 @@ type recordReplay struct {
BrowseLogBaseUrl string
}
-const (
- covGCSPrefix = "gs://test-coverage-data"
-)
-
-type runCovOpts struct {
- repo *source.Repo
- buildID string
- commitSha string
- covGCSPrefix string
- testDirs []string
- prNumber string
-}
-
var testTerraformVCRCmd = &cobra.Command{
Use: "test-terraform-vcr",
Short: "Run vcr tests for affected packages",
@@ -107,7 +93,7 @@ It expects the following arguments:
3. Build ID
4. Project ID where Cloud Builds are located
5. Build step number
-
+
The following environment variables are required:
` + listTTVRequiredEnvironmentVariables(),
RunE: func(cmd *cobra.Command, args []string) error {
@@ -148,11 +134,6 @@ The following environment variables are required:
}
ctlr := source.NewController(env["GOPATH"], "modular-magician", env["GITHUB_TOKEN_DOWNSTREAMS"], rnr)
- testCovMerger, err := cov.NewTestCovMerger(rnr, filepath.Join(os.TempDir(), "cov"))
- if err != nil {
- return fmt.Errorf("failed to create testCovMerger: %w", err)
- }
-
vt, err := vcr.NewTester(env, "ci-vcr-cassettes", "ci-vcr-logs", rnr)
if err != nil {
return fmt.Errorf("error creating VCR tester: %w", err)
@@ -162,7 +143,7 @@ The following environment variables are required:
return fmt.Errorf("wrong number of arguments %d, expected 5", len(args))
}
- return execTestTerraformVCR(args[0], args[1], args[2], args[3], args[4], baseBranch, gh, rnr, ctlr, vt, testCovMerger)
+ return execTestTerraformVCR(args[0], args[1], args[2], args[3], args[4], baseBranch, gh, rnr, ctlr, vt)
},
}
@@ -174,7 +155,7 @@ func listTTVRequiredEnvironmentVariables() string {
return result
}
-func execTestTerraformVCR(prNumber, mmCommitSha, buildID, projectID, buildStep, baseBranch string, gh GithubClient, rnr ExecRunner, ctlr *source.Controller, vt *vcr.Tester, covMerger *cov.Merger) error {
+func execTestTerraformVCR(prNumber, mmCommitSha, buildID, projectID, buildStep, baseBranch string, gh GithubClient, rnr ExecRunner, ctlr *source.Controller, vt *vcr.Tester) error {
newBranch := "auto-pr-" + prNumber
oldBranch := newBranch + "-old"
@@ -230,7 +211,7 @@ func execTestTerraformVCR(prNumber, mmCommitSha, buildID, projectID, buildStep,
return fmt.Errorf("error posting pending status: %w", err)
}
- replayingResult, testDirs, replayingErr := runReplaying(runFullVCR, provider.Beta, services, vt, true, covMerger.VcrTestCovDir)
+ replayingResult, testDirs, replayingErr := runReplaying(runFullVCR, provider.Beta, services, vt)
testState := "success"
if replayingErr != nil {
testState = "failure"
@@ -314,12 +295,10 @@ func execTestTerraformVCR(prNumber, mmCommitSha, buildID, projectID, buildStep,
var replayingAfterRecordingErr error
if len(recordingResult.PassedTests) > 0 {
replayingAfterRecordingResult, replayingAfterRecordingErr = vt.RunParallel(vcr.RunOptions{
- Mode: vcr.Replaying,
- Version: provider.Beta,
- TestDirs: testDirs,
- Tests: recordingResult.PassedTests,
- EnableTestCoverage: true,
- TestCovDir: covMerger.VcrTestCovDir,
+ Mode: vcr.Replaying,
+ Version: provider.Beta,
+ TestDirs: testDirs,
+ Tests: recordingResult.PassedTests,
})
if replayingAfterRecordingErr != nil {
testState = "failure"
@@ -356,25 +335,6 @@ func execTestTerraformVCR(prNumber, mmCommitSha, buildID, projectID, buildStep,
if err != nil {
return fmt.Errorf("error formatting record replay comment: %w", err)
}
-
- // run unit test and generate combined code coverage
- if err := genCov(rnr, covMerger, gh, runCovOpts{
- repo: tpgbRepo,
- buildID: buildID,
- commitSha: mmCommitSha,
- covGCSPrefix: covGCSPrefix,
- testDirs: testDirs,
- prNumber: prNumber,
- }); err != nil {
- fmt.Printf("Failed to generate coverage: %s\n", err)
- }
-
- out, err := covMerger.PackageCovComment()
- if err != nil {
- fmt.Printf("failed to get package coverage: %s\n", err)
- } else {
- recordReplayComment += "\n\n" + out
- }
if err := gh.PostComment(prNumber, recordReplayComment); err != nil {
return fmt.Errorf("error posting comment: %w", err)
}
@@ -490,17 +450,15 @@ func modifiedPackages(changedFiles []string, version provider.Version) (map[stri
return services, runFullVCR
}
-func runReplaying(runFullVCR bool, version provider.Version, services map[string]struct{}, vt *vcr.Tester, enableCov bool, covDir string) (vcr.Result, []string, error) {
+func runReplaying(runFullVCR bool, version provider.Version, services map[string]struct{}, vt *vcr.Tester) (vcr.Result, []string, error) {
result := vcr.Result{}
var testDirs []string
var replayingErr error
if runFullVCR {
fmt.Println("runReplaying: full VCR tests")
result, replayingErr = vt.Run(vcr.RunOptions{
- Mode: vcr.Replaying,
- Version: version,
- EnableTestCoverage: enableCov,
- TestCovDir: covDir,
+ Mode: vcr.Replaying,
+ Version: version,
})
} else if len(services) > 0 {
fmt.Printf("runReplaying: %d specific services: %v\n", len(services), services)
@@ -509,11 +467,9 @@ func runReplaying(runFullVCR bool, version provider.Version, services map[string
testDirs = append(testDirs, servicePath)
fmt.Println("run VCR tests in ", service)
serviceResult, serviceReplayingErr := vt.Run(vcr.RunOptions{
- Mode: vcr.Replaying,
- Version: version,
- TestDirs: []string{servicePath},
- EnableTestCoverage: enableCov,
- TestCovDir: covDir,
+ Mode: vcr.Replaying,
+ Version: version,
+ TestDirs: []string{servicePath},
})
replayingErr = errors.Join(replayingErr, serviceReplayingErr)
result.PassedTests = append(result.PassedTests, serviceResult.PassedTests...)
@@ -580,48 +536,3 @@ func formatRecordReplay(data recordReplay) (string, error) {
data.BrowseLogBaseUrl = fmt.Sprintf("https://console.cloud.google.com/storage/browser/%s", logBasePath)
return formatComment("record_replay.tmpl", recordReplayTmplText, data)
}
-
-func unitTest(rnr ExecRunner, repoPath, covDir string, testDirs []string) error {
- if err := rnr.PushDir(repoPath); err != nil {
- return fmt.Errorf("error changing to tpgbRepo dir: %w", err)
- }
-
- if len(testDirs) == 0 {
- if allPackages, err := rnr.Run("go", []string{"list", "./..."}, nil); err != nil {
- return err
- } else {
- for _, dir := range strings.Split(allPackages, "\n") {
- if !strings.Contains(dir, "github.com/hashicorp/terraform-provider-google-beta/scripts") {
- testDirs = append(testDirs, dir)
- }
- }
- }
- }
-
- args := []string{"test", "-p", "4", "-cover"}
- args = append(args, testDirs...)
- args = append(args, []string{"-args", fmt.Sprintf("-test.gocoverdir=%s", covDir)}...)
- _, err := rnr.Run("go", args, nil)
- if err != nil {
- return fmt.Errorf("unit test failed with error: %s", err)
- }
- return nil
-}
-
-func genCov(rnr ExecRunner, covMerger *cov.Merger, gh GithubClient, opts runCovOpts) error {
- fmt.Println("Generating code coverage...")
- if err := unitTest(rnr, opts.repo.Path, covMerger.UnitTestCovDir, opts.testDirs); err != nil {
- fmt.Println("unit test failed")
- }
- if err := covMerger.Merge(); err != nil {
- return fmt.Errorf("failed to merge test coverage: %w", err)
- }
- covURL, err := covMerger.UploadToGCS(opts.covGCSPrefix, opts.buildID)
- if err != nil {
- return fmt.Errorf("failed to upload test coverage: %w", err)
- }
- if err := gh.PostBuildStatus(opts.prNumber, "test-cov", "success", covURL, opts.commitSha); err != nil {
- return fmt.Errorf("error posting pending status: %w", err)
- }
- return nil
-}
diff --git a/.ci/magician/cmd/test_terraform_vcr_test.go b/.ci/magician/cmd/test_terraform_vcr_test.go
index 486afbc3dcef..835d9d302d32 100644
--- a/.ci/magician/cmd/test_terraform_vcr_test.go
+++ b/.ci/magician/cmd/test_terraform_vcr_test.go
@@ -6,7 +6,6 @@ import (
"strings"
"testing"
- "github.com/google/go-cmp/cmp"
"github.com/stretchr/testify/assert"
"magician/provider"
@@ -580,51 +579,3 @@ func TestRecordReplay(t *testing.T) {
})
}
}
-
-func TestUnitTest(t *testing.T) {
- tests := []struct {
- testName string
- testDirs []string
- want map[string][]ParameterList
- }{
- {
- "not empty test dir",
- []string{"test-dir"},
- map[string][]ParameterList{
- "Run": {
- {"repo-path", "go", []string{"test", "-p", "4", "-cover", "test-dir", "-args", "-test.gocoverdir=cov-dir"}, map[string]string(nil)},
- },
- },
- },
- {
- "empty test dir",
- []string{},
- map[string][]ParameterList{
- "Run": {
- {"repo-path", "go", []string{"list", "./..."}, map[string]string(nil)},
- {"repo-path", "go", []string{"test", "-p", "4", "-cover", "pkg1", "pkg2", "-args", "-test.gocoverdir=cov-dir"}, map[string]string(nil)},
- },
- },
- },
- }
- for _, tc := range tests {
- t.Run(tc.testName, func(t *testing.T) {
- mr := &mockRunner{
- cwd: "cwd",
- calledMethods: make(map[string][]ParameterList),
- cmdResults: map[string]string{
- "repo-path go [list ./...] map[]": "pkg1\npkg2",
- },
- }
- err := unitTest(mr, "repo-path", "cov-dir", tc.testDirs)
- if err != nil {
- t.Fatal(err)
- }
- if diff := cmp.Diff(tc.want, mr.calledMethods); diff != "" {
- t.Errorf("unitTest triggered different called methods(-want, +got): %s", diff)
- }
-
- })
- }
-
-}
diff --git a/.ci/magician/cov/interfaces.go b/.ci/magician/cov/interfaces.go
deleted file mode 100644
index 266a991c8cb6..000000000000
--- a/.ci/magician/cov/interfaces.go
+++ /dev/null
@@ -1,6 +0,0 @@
-package cov
-
-type ExecRunner interface {
- Mkdir(path string) error
- Run(name string, args []string, env map[string]string) (string, error)
-}
diff --git a/.ci/magician/cov/merger.go b/.ci/magician/cov/merger.go
deleted file mode 100644
index 792ca4cea4eb..000000000000
--- a/.ci/magician/cov/merger.go
+++ /dev/null
@@ -1,160 +0,0 @@
-package cov
-
-import (
- "fmt"
- "os"
- "path/filepath"
- "strings"
- "text/template"
-)
-
-// Merger stores coverage related folders and files with a command line runner.
-// File structure is:
-// workdir/unit-test-cov/
-// workdir/vcr-test-cov/
-// workdir/merged-test-cov/
-// workdir/cov.txt
-// workdir/cov.html
-type Merger struct {
- rnr ExecRunner
- workDir string
- UnitTestCovDir string
- VcrTestCovDir string
- MergedDir string
-}
-
-func NewTestCovMerger(rnr ExecRunner, workDir string) (*Merger, error) {
- unitTestDir := filepath.Join(workDir, "unit-test-cov")
- vcrTestDir := filepath.Join(workDir, "vcr-test-cov")
- mergedDir := filepath.Join(workDir, "merged-test-cov")
- for _, dir := range []string{unitTestDir, vcrTestDir, mergedDir} {
- if err := rnr.Mkdir(dir); err != nil {
- return nil, fmt.Errorf("failed to create dir %s: %w", dir, err)
- }
- }
- return &Merger{
- workDir: workDir,
- rnr: rnr,
- UnitTestCovDir: unitTestDir,
- VcrTestCovDir: vcrTestDir,
- MergedDir: mergedDir,
- }, nil
-}
-
-func (m *Merger) HTMLCovPath() string {
- return filepath.Join(m.workDir, "cov.html")
-}
-
-func (m *Merger) Merge() error {
- if isFolderEmpty(m.UnitTestCovDir) && isFolderEmpty(m.VcrTestCovDir) {
- return fmt.Errorf("no coverage data found in provided folders")
- }
-
- covTxtPath := filepath.Join(m.workDir, "cov.txt")
- covHTMLPath := m.HTMLCovPath()
-
- if _, err := m.rnr.Run(
- "go",
- []string{
- "tool",
- "covdata",
- "merge",
- fmt.Sprintf("-i=%s,%s", m.UnitTestCovDir, m.VcrTestCovDir),
- "-o=" + m.MergedDir,
- },
- nil,
- ); err != nil {
- return fmt.Errorf("failed to merge coverage data: %s", err)
- }
-
- if _, err := m.rnr.Run(
- "go",
- []string{
- "tool",
- "covdata",
- "textfmt",
- "-i=" + m.MergedDir,
- "-o=" + covTxtPath,
- },
- nil,
- ); err != nil {
- return fmt.Errorf("failed to convert coverage data to text format: %s", err)
- }
-
- if _, err := m.rnr.Run(
- "go",
- []string{
- "tool",
- "cover",
- "-html=" + covTxtPath,
- "-o=" + covHTMLPath,
- },
- nil,
- ); err != nil {
- return fmt.Errorf("failed to convert coverage data to text format: %s", err)
- }
- return nil
-}
-
-func (m *Merger) UploadToGCS(gcsPrefix string, buildID string) (string, error) {
- bucketName := strings.TrimPrefix(gcsPrefix, "gs://")
- gcsPath := fmt.Sprintf("gs://%s/%s/", bucketName, buildID)
- fmt.Printf("Uploading coverage result to %s\n", gcsPath)
- args := []string{"-m", "cp", m.HTMLCovPath(), gcsPath}
- if _, err := m.rnr.Run("gsutil", args, nil); err != nil {
- fmt.Println(err)
- return "", fmt.Errorf("error upload cov html: %w", err)
- }
- return fmt.Sprintf("https://storage.cloud.google.com/%s/%s/cov.html", bucketName, buildID), nil
-}
-
-func (m *Merger) PackageCovComment() (string, error) {
- out, err := m.rnr.Run(
- "go",
- []string{
- "tool",
- "covdata",
- "percent",
- "-i=" + m.MergedDir,
- },
- nil,
- )
- if err != nil {
- return "", err
- }
-
- covList := strings.Split(strings.TrimSpace(out), "\n")
-
- commentTemplate := `
-
-Click here to see Test Coverage Metrics
-
-
-{{range .}}
-- {{. -}}
-{{end}}
-
-
-
- `
-
- // Create a new template and parse the letter into it.
- sb := new(strings.Builder)
- t := template.Must(template.New("commentTemplate").Parse(commentTemplate))
- err = t.Execute(sb, covList)
- if err != nil {
- return "", err
- }
- return strings.TrimSpace(sb.String()), nil
-}
-
-func isFolderEmpty(dirPath string) bool {
- file, err := os.Open(dirPath)
- if err != nil {
- return true
- }
- defer file.Close()
-
- _, err = file.Readdirnames(1)
- return err != nil
-}
diff --git a/.ci/magician/cov/merger_test.go b/.ci/magician/cov/merger_test.go
deleted file mode 100644
index 6217ef6bee99..000000000000
--- a/.ci/magician/cov/merger_test.go
+++ /dev/null
@@ -1,166 +0,0 @@
-package cov
-
-import (
- "fmt"
- "os"
- "path/filepath"
- "strings"
- "testing"
-
- "github.com/google/go-cmp/cmp"
-)
-
-type MockRunner interface {
- ExecRunner
-}
-
-type ParameterList []any
-
-type mockRunner struct {
- dirs []string
- commands []ParameterList
- cmdResults map[string]string
-}
-
-func (r *mockRunner) Mkdir(path string) error {
- r.dirs = append(r.dirs, path)
- return nil
-}
-
-func (r *mockRunner) Run(name string, args []string, env map[string]string) (string, error) {
- r.commands = append(r.commands, ParameterList{name, args})
- cmd := fmt.Sprintf("%s %v", name, args)
- if result, ok := r.cmdResults[cmd]; ok {
- return result, nil
- }
- return "", nil
-}
-
-func TestNewTestCovMerger(t *testing.T) {
- rnr := &mockRunner{}
- _, err := NewTestCovMerger(rnr, "/tmp")
- if err != nil {
- t.Fatal(err)
- }
- if diff := cmp.Diff([]string{"/tmp/unit-test-cov", "/tmp/vcr-test-cov", "/tmp/merged-test-cov"}, rnr.dirs); diff != "" {
- t.Errorf("NewTestCovMerger did not create expected folders: (-want, +got) = %s", diff)
- }
-}
-
-func TestMergeFail(t *testing.T) {
- workdir := t.TempDir()
-
- rnr := &mockRunner{}
- merger, err := NewTestCovMerger(rnr, workdir)
- if err != nil {
- t.Fatal(err)
- }
- err = merger.Merge()
- if err == nil {
- t.Fatal("expect failure since folders are empty, but got nil err")
- }
-
- if !strings.Contains(err.Error(), "no coverage data found") {
- t.Errorf("Merge() got unexpected error: %s", err)
- }
-
-}
-
-func TestMerge(t *testing.T) {
- workdir := t.TempDir()
- err := os.MkdirAll(filepath.Join(workdir, "unit-test-cov"), 0755)
- if err != nil {
- t.Fatal(err)
- }
-
- file, err := os.Create(filepath.Join(workdir, "unit-test-cov", "cov.data"))
- if err != nil {
- t.Fatal(err)
- }
- defer file.Close()
-
- rnr := &mockRunner{}
- merger := Merger{
- UnitTestCovDir: filepath.Join(workdir, "unit-test-cov"),
- VcrTestCovDir: filepath.Join(workdir, "vcr-test-cov"),
- MergedDir: filepath.Join(workdir, "merged-test-cov"),
- workDir: workdir,
- rnr: rnr,
- }
-
- if err := merger.Merge(); err != nil {
- t.Fatal(err)
- }
-
- want := []ParameterList{
- {"go", []string{"tool", "covdata", "merge", "-i=" + workdir + "/unit-test-cov," + workdir + "/vcr-test-cov", "-o=" + workdir + "/merged-test-cov"}},
- {"go", []string{"tool", "covdata", "textfmt", "-i=" + workdir + "/merged-test-cov", "-o=" + workdir + "/cov.txt"}},
- {"go", []string{"tool", "cover", "-html=" + workdir + "/cov.txt", "-o=" + workdir + "/cov.html"}},
- }
- if diff := cmp.Diff(want, rnr.commands); diff != "" {
- t.Errorf("Merge got different commands: %s", diff)
- }
-}
-
-func TestUploadToGCS(t *testing.T) {
- workdir := os.TempDir()
- rnr := &mockRunner{}
- merger := Merger{
- rnr: rnr,
- workDir: workdir,
- }
-
- got, err := merger.UploadToGCS("gs://bucket/path", "12345")
- if err != nil {
- t.Fatal(err)
- }
-
- want := "https://storage.cloud.google.com/bucket/path/12345/cov.html"
- if got != want {
- t.Errorf("UploadToGCS got = %s, want = %s", got, want)
- }
-
- wantCommands := []ParameterList{
- {"gsutil", []string{"-m", "cp", filepath.Join(workdir, "cov.html"), "gs://bucket/path/12345/"}},
- }
- if diff := cmp.Diff(wantCommands, rnr.commands); diff != "" {
- t.Errorf("UploadToGCS got different commands: %s", diff)
- }
-}
-
-func TestPackageCovComment(t *testing.T) {
- workdir := os.TempDir()
- rnr := &mockRunner{
- cmdResults: map[string]string{
- "go [tool covdata percent -i=" + filepath.Join(workdir, "merged-test-cov]"): "pkg1 10%\npkg2 20%\n\n",
- },
- }
- merger := Merger{
- rnr: rnr,
- workDir: workdir,
- MergedDir: filepath.Join(workdir, "merged-test-cov"),
- }
-
- got, err := merger.PackageCovComment()
- if err != nil {
- t.Fatal(err)
- }
-
- want := strings.TrimSpace(`
-
-Click here to see Test Coverage Metrics
-
-
-
-- pkg1 10%
-
-- pkg2 20%
-
-
-
-
- `)
- if got != want {
- t.Errorf("PackageCovComment got = %s, want = %s", got, want)
- }
-}
diff --git a/.ci/magician/vcr/tester.go b/.ci/magician/vcr/tester.go
index 57b701cf0fbe..6f01ee352357 100644
--- a/.ci/magician/vcr/tester.go
+++ b/.ci/magician/vcr/tester.go
@@ -193,12 +193,10 @@ func (vt *Tester) LogPath(mode Mode, version provider.Version) string {
}
type RunOptions struct {
- Mode Mode
- Version provider.Version
- TestDirs []string
- Tests []string
- EnableTestCoverage bool
- TestCovDir string
+ Mode Mode
+ Version provider.Version
+ TestDirs []string
+ Tests []string
}
// Run the vcr tests in the given mode and provider version and return the result.
@@ -254,13 +252,6 @@ func (vt *Tester) Run(opt RunOptions) (Result, error) {
"-ldflags=-X=github.com/hashicorp/terraform-provider-google-beta/version.ProviderVersion=acc",
"-vet=off",
)
- if opt.Mode == Replaying && opt.EnableTestCoverage {
- args = append(args, []string{
- "-cover",
- "-args",
- "-test.gocoverdir=" + opt.TestCovDir,
- }...)
- }
env := map[string]string{
"VCR_PATH": cassettePath,
"VCR_MODE": opt.Mode.Upper(),
@@ -365,7 +356,7 @@ func (vt *Tester) RunParallel(opt RunOptions) (Result, error) {
for _, testDir := range opt.TestDirs {
for _, test := range opt.Tests {
running <- struct{}{}
- go vt.runInParallel(opt, testDir, test, logPath, cassettePath, running, wg, outputs, errs)
+ go vt.runInParallel(opt.Mode, opt.Version, testDir, test, logPath, cassettePath, running, wg, outputs, errs)
}
}
@@ -396,7 +387,7 @@ func (vt *Tester) RunParallel(opt RunOptions) (Result, error) {
return collectResult(output), testErr
}
-func (vt *Tester) runInParallel(opt RunOptions, testDir, test, logPath, cassettePath string, running <-chan struct{}, wg *sync.WaitGroup, outputs chan<- string, errs chan<- error) {
+func (vt *Tester) runInParallel(mode Mode, version provider.Version, testDir, test, logPath, cassettePath string, running <-chan struct{}, wg *sync.WaitGroup, outputs chan<- string, errs chan<- error) {
args := []string{
"test",
testDir,
@@ -409,14 +400,6 @@ func (vt *Tester) runInParallel(opt RunOptions, testDir, test, logPath, cassette
"-ldflags=-X=github.com/hashicorp/terraform-provider-google-beta/version.ProviderVersion=acc",
"-vet=off",
}
- mode := opt.Mode
- if mode == Replaying && opt.EnableTestCoverage {
- args = append(args, []string{
- "-cover",
- "-args",
- "-test.gocoverdir=" + opt.TestCovDir,
- }...)
- }
env := map[string]string{
"VCR_PATH": cassettePath,
"VCR_MODE": mode.Upper(),
diff --git a/mmv1/third_party/tgc/resource_converters.go.tmpl b/mmv1/third_party/tgc/resource_converters.go.tmpl
index 6ed0c4fec987..eebfb95a8170 100644
--- a/mmv1/third_party/tgc/resource_converters.go.tmpl
+++ b/mmv1/third_party/tgc/resource_converters.go.tmpl
@@ -92,9 +92,9 @@ import (
"github.com/GoogleCloudPlatform/terraform-google-conversion/v7/tfplan2cai/converters/google/resources/services/sql"
"github.com/GoogleCloudPlatform/terraform-google-conversion/v7/tfplan2cai/converters/google/resources/services/storage"
"github.com/GoogleCloudPlatform/terraform-google-conversion/v7/tfplan2cai/converters/google/resources/services/vertexai"
+ "github.com/GoogleCloudPlatform/terraform-google-conversion/v7/tfplan2cai/converters/google/resources/services/vmwareengine"
"github.com/GoogleCloudPlatform/terraform-google-conversion/v7/tfplan2cai/converters/google/resources/services/vpcaccess"
"github.com/GoogleCloudPlatform/terraform-google-conversion/v7/tfplan2cai/converters/google/resources/services/workbench"
- "github.com/GoogleCloudPlatform/terraform-google-conversion/v7/tfplan2cai/converters/google/resources/services/vmwareengine"
)
@@ -213,6 +213,7 @@ func ResourceConverters() map[string][]cai.ResourceConverter {
"google_monitoring_notification_channel": {monitoring.ResourceConverterMonitoringNotificationChannel()},
"google_monitoring_alert_policy": {monitoring.ResourceConverterMonitoringAlertPolicy()},
"google_vertex_ai_dataset": {vertexai.ResourceConverterVertexAIDataset()},
+ "google_vmwareengine_network_policy": {vmwareengine.ResourceConverterVmwareengineNetworkPolicy()},
"google_vmwareengine_network_peering": {vmwareengine.ResourceConverterVmwareengineNetworkPeering()},
"google_workbench_instance": {workbench.ResourceConverterWorkbenchInstance()},
{{- range $object := $.IamResources }}
diff --git a/mmv1/third_party/tgc/tests/data/vmwareengine_network_policy.json b/mmv1/third_party/tgc/tests/data/vmwareengine_network_policy.json
new file mode 100644
index 000000000000..28da643ec31c
--- /dev/null
+++ b/mmv1/third_party/tgc/tests/data/vmwareengine_network_policy.json
@@ -0,0 +1,23 @@
+[
+ {
+ "name": "//vmwareengine.googleapis.com/projects/{{.Provider.project}}/locations/us-central1/networkPolicies/gg-asset-17806-51c7",
+ "asset_type": "vmwareengine.googleapis.com/NetworkPolicy",
+ "ancestry_path": "{{.Ancestry}}/project/{{.Provider.project}}",
+ "resource": {
+ "version": "v1",
+ "discovery_document_uri": "https://vmwareengine.googleapis.com/$discovery/rest",
+ "discovery_name": "NetworkPolicy",
+ "parent": "//cloudresourcemanager.googleapis.com/projects/{{.Provider.project}}",
+ "data": {
+ "edgeServicesCidr": "192.168.30.0/26",
+ "vmwareEngineNetwork": "projects/{{.Provider.project}}/locations/global/vmwareEngineNetworks/gg-asset-17806-51c7-network",
+ "externalIp": {
+ "enabled": true
+ },
+ "internetAccess": {
+ "enabled": true
+ }
+ }
+ }
+ }
+]
diff --git a/mmv1/third_party/tgc/tests/data/vmwareengine_network_policy.tf b/mmv1/third_party/tgc/tests/data/vmwareengine_network_policy.tf
new file mode 100644
index 000000000000..192f07434e99
--- /dev/null
+++ b/mmv1/third_party/tgc/tests/data/vmwareengine_network_policy.tf
@@ -0,0 +1,13 @@
+resource "google_vmwareengine_network_policy" "gg_asset_17806_51c7" {
+ name = "gg-asset-17806-51c7"
+ location = "us-central1"
+ project = "{{.Provider.project}}"
+ edge_services_cidr = "192.168.30.0/26"
+ vmware_engine_network = "projects/{{.Provider.project}}/locations/global/vmwareEngineNetworks/gg-asset-17806-51c7-network"
+ internet_access {
+ enabled = true
+ }
+ external_ip {
+ enabled = true
+ }
+}