WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions google/acctest/resource_test_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,21 @@ func TestCheckAttributeValuesEqual(i *string, j *string) resource.TestCheckFunc
}
}

// ConditionTitleIfPresent returns empty string if condition is not preset and " {condition.0.title}" if it is.
func BuildIAMImportId(name, role, member, condition string) string {
ret := name
if role != "" {
ret += " " + role
}
if member != "" {
ret += " " + member
}
if condition != "" {
ret += " " + condition
}
return ret
}

// testStringValue returns string values from string pointers, handling nil pointers.
func testStringValue(sPtr *string) string {
if sPtr == nil {
Expand Down
62 changes: 57 additions & 5 deletions google/services/apigee/iam_apigee_environment_generated_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
"testing"

"github.com/hashicorp/terraform-plugin-testing/helper/resource"
"github.com/hashicorp/terraform-plugin-testing/terraform"

"github.com/hashicorp/terraform-provider-google/google/acctest"
"github.com/hashicorp/terraform-provider-google/google/envvar"
Expand Down Expand Up @@ -60,7 +61,7 @@ func TestAccApigeeEnvironmentIamBindingGenerated(t *testing.T) {
},
{
ResourceName: "google_apigee_environment_iam_binding.foo",
ImportStateId: fmt.Sprintf("%s/environments/%s roles/viewer", fmt.Sprintf("organizations/tf-test%s", context["random_suffix"]), fmt.Sprintf("tf-test%s", context["random_suffix"])),
ImportStateIdFunc: generateApigeeEnvironmentIAMBindingStateID("google_apigee_environment_iam_binding.foo"),
ImportState: true,
ImportStateVerify: true,
},
Expand All @@ -70,7 +71,7 @@ func TestAccApigeeEnvironmentIamBindingGenerated(t *testing.T) {
},
{
ResourceName: "google_apigee_environment_iam_binding.foo",
ImportStateId: fmt.Sprintf("%s/environments/%s roles/viewer", fmt.Sprintf("organizations/tf-test%s", context["random_suffix"]), fmt.Sprintf("tf-test%s", context["random_suffix"])),
ImportStateIdFunc: generateApigeeEnvironmentIAMBindingStateID("google_apigee_environment_iam_binding.foo"),
ImportState: true,
ImportStateVerify: true,
},
Expand Down Expand Up @@ -101,7 +102,7 @@ func TestAccApigeeEnvironmentIamMemberGenerated(t *testing.T) {
},
{
ResourceName: "google_apigee_environment_iam_member.foo",
ImportStateId: fmt.Sprintf("%s/environments/%s roles/viewer user:[email protected]", fmt.Sprintf("organizations/tf-test%s", context["random_suffix"]), fmt.Sprintf("tf-test%s", context["random_suffix"])),
ImportStateIdFunc: generateApigeeEnvironmentIAMMemberStateID("google_apigee_environment_iam_member.foo"),
ImportState: true,
ImportStateVerify: true,
},
Expand Down Expand Up @@ -132,7 +133,7 @@ func TestAccApigeeEnvironmentIamPolicyGenerated(t *testing.T) {
},
{
ResourceName: "google_apigee_environment_iam_policy.foo",
ImportStateId: fmt.Sprintf("%s/environments/%s", fmt.Sprintf("organizations/tf-test%s", context["random_suffix"]), fmt.Sprintf("tf-test%s", context["random_suffix"])),
ImportStateIdFunc: generateApigeeEnvironmentIAMPolicyStateID("google_apigee_environment_iam_policy.foo"),
ImportState: true,
ImportStateVerify: true,
},
Expand All @@ -141,7 +142,7 @@ func TestAccApigeeEnvironmentIamPolicyGenerated(t *testing.T) {
},
{
ResourceName: "google_apigee_environment_iam_policy.foo",
ImportStateId: fmt.Sprintf("%s/environments/%s", fmt.Sprintf("organizations/tf-test%s", context["random_suffix"]), fmt.Sprintf("tf-test%s", context["random_suffix"])),
ImportStateIdFunc: generateApigeeEnvironmentIAMPolicyStateID("google_apigee_environment_iam_policy.foo"),
ImportState: true,
ImportStateVerify: true,
},
Expand Down Expand Up @@ -599,3 +600,54 @@ resource "google_apigee_environment_iam_binding" "foo" {
}
`, context)
}

func generateApigeeEnvironmentIAMPolicyStateID(iamResourceAddr string) func(*terraform.State) (string, error) {
return func(state *terraform.State) (string, error) {
var rawState map[string]string
for _, m := range state.Modules {
if len(m.Resources) > 0 {
if v, ok := m.Resources[iamResourceAddr]; ok {
rawState = v.Primary.Attributes
}
}
}
fmt.Printf("raw state %s\n", rawState)
org_id := rawState["org_id"]
env_id := tpgresource.GetResourceNameFromSelfLink(rawState["env_id"])
return acctest.BuildIAMImportId(fmt.Sprintf("%s/environments/%s", org_id, env_id), "", "", rawState["condition.0.title"]), nil
}
}

func generateApigeeEnvironmentIAMBindingStateID(iamResourceAddr string) func(*terraform.State) (string, error) {
return func(state *terraform.State) (string, error) {
var rawState map[string]string
for _, m := range state.Modules {
if len(m.Resources) > 0 {
if v, ok := m.Resources[iamResourceAddr]; ok {
rawState = v.Primary.Attributes
}
}
}
fmt.Printf("raw state %s\n", rawState)
org_id := rawState["org_id"]
env_id := tpgresource.GetResourceNameFromSelfLink(rawState["env_id"])
return acctest.BuildIAMImportId(fmt.Sprintf("%s/environments/%s", org_id, env_id), rawState["role"], "", rawState["condition.0.title"]), nil
}
}

func generateApigeeEnvironmentIAMMemberStateID(iamResourceAddr string) func(*terraform.State) (string, error) {
return func(state *terraform.State) (string, error) {
var rawState map[string]string
for _, m := range state.Modules {
if len(m.Resources) > 0 {
if v, ok := m.Resources[iamResourceAddr]; ok {
rawState = v.Primary.Attributes
}
}
}
fmt.Printf("raw state %s\n", rawState)
org_id := rawState["org_id"]
env_id := tpgresource.GetResourceNameFromSelfLink(rawState["env_id"])
return acctest.BuildIAMImportId(fmt.Sprintf("%s/environments/%s", org_id, env_id), rawState["role"], rawState["member"], rawState["condition.0.title"]), nil
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
"testing"

"github.com/hashicorp/terraform-plugin-testing/helper/resource"
"github.com/hashicorp/terraform-plugin-testing/terraform"

"github.com/hashicorp/terraform-provider-google/google/acctest"
"github.com/hashicorp/terraform-provider-google/google/envvar"
Expand Down Expand Up @@ -55,7 +56,7 @@ func TestAccArtifactRegistryRepositoryIamBindingGenerated(t *testing.T) {
},
{
ResourceName: "google_artifact_registry_repository_iam_binding.foo",
ImportStateId: fmt.Sprintf("projects/%s/locations/%s/repositories/%s roles/artifactregistry.reader", envvar.GetTestProjectFromEnv(), envvar.GetTestRegionFromEnv(), fmt.Sprintf("tf-test-my-repository%s", context["random_suffix"])),
ImportStateIdFunc: generateArtifactRegistryRepositoryIAMBindingStateID("google_artifact_registry_repository_iam_binding.foo"),
ImportState: true,
ImportStateVerify: true,
},
Expand All @@ -65,7 +66,7 @@ func TestAccArtifactRegistryRepositoryIamBindingGenerated(t *testing.T) {
},
{
ResourceName: "google_artifact_registry_repository_iam_binding.foo",
ImportStateId: fmt.Sprintf("projects/%s/locations/%s/repositories/%s roles/artifactregistry.reader", envvar.GetTestProjectFromEnv(), envvar.GetTestRegionFromEnv(), fmt.Sprintf("tf-test-my-repository%s", context["random_suffix"])),
ImportStateIdFunc: generateArtifactRegistryRepositoryIAMBindingStateID("google_artifact_registry_repository_iam_binding.foo"),
ImportState: true,
ImportStateVerify: true,
},
Expand All @@ -91,7 +92,7 @@ func TestAccArtifactRegistryRepositoryIamMemberGenerated(t *testing.T) {
},
{
ResourceName: "google_artifact_registry_repository_iam_member.foo",
ImportStateId: fmt.Sprintf("projects/%s/locations/%s/repositories/%s roles/artifactregistry.reader user:[email protected]", envvar.GetTestProjectFromEnv(), envvar.GetTestRegionFromEnv(), fmt.Sprintf("tf-test-my-repository%s", context["random_suffix"])),
ImportStateIdFunc: generateArtifactRegistryRepositoryIAMMemberStateID("google_artifact_registry_repository_iam_member.foo"),
ImportState: true,
ImportStateVerify: true,
},
Expand All @@ -117,7 +118,7 @@ func TestAccArtifactRegistryRepositoryIamPolicyGenerated(t *testing.T) {
},
{
ResourceName: "google_artifact_registry_repository_iam_policy.foo",
ImportStateId: fmt.Sprintf("projects/%s/locations/%s/repositories/%s", envvar.GetTestProjectFromEnv(), envvar.GetTestRegionFromEnv(), fmt.Sprintf("tf-test-my-repository%s", context["random_suffix"])),
ImportStateIdFunc: generateArtifactRegistryRepositoryIAMPolicyStateID("google_artifact_registry_repository_iam_policy.foo"),
ImportState: true,
ImportStateVerify: true,
},
Expand All @@ -126,7 +127,7 @@ func TestAccArtifactRegistryRepositoryIamPolicyGenerated(t *testing.T) {
},
{
ResourceName: "google_artifact_registry_repository_iam_policy.foo",
ImportStateId: fmt.Sprintf("projects/%s/locations/%s/repositories/%s", envvar.GetTestProjectFromEnv(), envvar.GetTestRegionFromEnv(), fmt.Sprintf("tf-test-my-repository%s", context["random_suffix"])),
ImportStateIdFunc: generateArtifactRegistryRepositoryIAMPolicyStateID("google_artifact_registry_repository_iam_policy.foo"),
ImportState: true,
ImportStateVerify: true,
},
Expand Down Expand Up @@ -245,3 +246,57 @@ resource "google_artifact_registry_repository_iam_binding" "foo" {
}
`, context)
}

func generateArtifactRegistryRepositoryIAMPolicyStateID(iamResourceAddr string) func(*terraform.State) (string, error) {
return func(state *terraform.State) (string, error) {
var rawState map[string]string
for _, m := range state.Modules {
if len(m.Resources) > 0 {
if v, ok := m.Resources[iamResourceAddr]; ok {
rawState = v.Primary.Attributes
}
}
}
fmt.Printf("raw state %s\n", rawState)
project := tpgresource.GetResourceNameFromSelfLink(rawState["project"])
location := tpgresource.GetResourceNameFromSelfLink(rawState["location"])
repository := tpgresource.GetResourceNameFromSelfLink(rawState["repository"])
return acctest.BuildIAMImportId(fmt.Sprintf("projects/%s/locations/%s/repositories/%s", project, location, repository), "", "", rawState["condition.0.title"]), nil
}
}

func generateArtifactRegistryRepositoryIAMBindingStateID(iamResourceAddr string) func(*terraform.State) (string, error) {
return func(state *terraform.State) (string, error) {
var rawState map[string]string
for _, m := range state.Modules {
if len(m.Resources) > 0 {
if v, ok := m.Resources[iamResourceAddr]; ok {
rawState = v.Primary.Attributes
}
}
}
fmt.Printf("raw state %s\n", rawState)
project := tpgresource.GetResourceNameFromSelfLink(rawState["project"])
location := tpgresource.GetResourceNameFromSelfLink(rawState["location"])
repository := tpgresource.GetResourceNameFromSelfLink(rawState["repository"])
return acctest.BuildIAMImportId(fmt.Sprintf("projects/%s/locations/%s/repositories/%s", project, location, repository), rawState["role"], "", rawState["condition.0.title"]), nil
}
}

func generateArtifactRegistryRepositoryIAMMemberStateID(iamResourceAddr string) func(*terraform.State) (string, error) {
return func(state *terraform.State) (string, error) {
var rawState map[string]string
for _, m := range state.Modules {
if len(m.Resources) > 0 {
if v, ok := m.Resources[iamResourceAddr]; ok {
rawState = v.Primary.Attributes
}
}
}
fmt.Printf("raw state %s\n", rawState)
project := tpgresource.GetResourceNameFromSelfLink(rawState["project"])
location := tpgresource.GetResourceNameFromSelfLink(rawState["location"])
repository := tpgresource.GetResourceNameFromSelfLink(rawState["repository"])
return acctest.BuildIAMImportId(fmt.Sprintf("projects/%s/locations/%s/repositories/%s", project, location, repository), rawState["role"], rawState["member"], rawState["condition.0.title"]), nil
}
}
Loading
Loading