Skip to content

Bug: error validator with set attribute #71

@dmicheneau

Description

@dmicheneau

run command and uncomment bloc line 429 to 449 in file policies_http_security_schema.go to reproduce:

task provider:te
st TF_ACC_RUN_TEST="example"  TF_TEST_NAME="TestAccELBPoliciesHTTPSecurityResource"

terraform source:

[...]
"values": superschema.SuperSetAttributeOf[string]{
										Common: &schemaR.SetAttribute{
											MarkdownDescription: "Values of the HTTP header to match.",
										},
										Resource: &schemaR.SetAttribute{
											Optional: true,
											Validators: []validator.Set{
												fsetvalidator.NullIfAttributeIsOneOf(
													path.MatchRelative().AtParent().AtName("criteria"),
													[]attr.Value{
														types.StringValue(string(edgeloadbalancer.PoliciesHTTPMatchCriteriaCriteriaEXISTS)),
														types.StringValue(string(edgeloadbalancer.PoliciesHTTPMatchCriteriaCriteriaDOESNOTEXIST)),
													},
												),
												fsetvalidator.RequireIfAttributeIsOneOf(
													path.MatchRelative().AtParent().AtName("criteria"),
													func() []attr.Value {
														x := make([]attr.Value, 0)
														for _, v := range edgeloadbalancer.PoliciesHTTPHeaderMatchCriteriaString {
															if v != string(edgeloadbalancer.PoliciesHTTPMatchCriteriaCriteriaEXISTS) && v != string(edgeloadbalancer.PoliciesHTTPMatchCriteriaCriteriaDOESNOTEXIST) {
																x = append(x, types.StringValue(v))
															}
														}
														return x
													}(),
												),
											},
										},
										DataSource: &schemaD.SetAttribute{
											Computed: true,
										},
									},
[...]

result:

[...]
elb_policies_http_security_resource_test.go:910: Step 8/19 error: Error running pre-apply refresh: exit status 1
        
        Error: Invalid configuration for attribute policies[0].criteria.request_headers[Value({"criteria":"BEGINS_WITH","name":"X-CUSTOM","values":["example"]})].values
        
          with cloudavenue_elb_policies_http_security.example,
          on terraform_plugin_test.tf line 2, in resource "cloudavenue_elb_policies_http_security" "example":
           2:                                           resource "cloudavenue_elb_policies_http_security" "example" {
        
        Path must be set
        
        Error: Invalid configuration for attribute policies[0].criteria.request_headers[Value({"criteria":"CONTAINS","name":"X-EXAMPLE","values":["example"]})].values
        
          with cloudavenue_elb_policies_http_security.example,
          on terraform_plugin_test.tf line 2, in resource "cloudavenue_elb_policies_http_security" "example":
           2:                                           resource "cloudavenue_elb_policies_http_security" "example" {
        
        Path must be set
        
        Error: Invalid configuration for attribute policies[0].criteria.request_headers[Value({"criteria":"EXISTS","name":"X-EXAMPLE","values":<null>})].values
        
          with cloudavenue_elb_policies_http_security.example,
          on terraform_plugin_test.tf line 2, in resource "cloudavenue_elb_policies_http_security" "example":
           2:                                           resource "cloudavenue_elb_policies_http_security" "example" {
        
        Path must be set
    testing_new.go:85: Error running post-test destroy, there may be dangling resources: exit status 1
        
        Error: Invalid configuration for attribute policies[0].criteria.request_headers[Value({"criteria":"BEGINS_WITH","name":"X-CUSTOM","values":["example"]})].values
        
          with cloudavenue_elb_policies_http_security.example,
          on terraform_plugin_test.tf line 2, in resource "cloudavenue_elb_policies_http_security" "example":
           2:                                           resource "cloudavenue_elb_policies_http_security" "example" {
        
        Path must be set
        
        Error: Invalid configuration for attribute policies[0].criteria.request_headers[Value({"criteria":"CONTAINS","name":"X-EXAMPLE","values":["example"]})].values
        
          with cloudavenue_elb_policies_http_security.example,
          on terraform_plugin_test.tf line 2, in resource "cloudavenue_elb_policies_http_security" "example":
           2:                                           resource "cloudavenue_elb_policies_http_security" "example" {
        
        Path must be set
        
        Error: Invalid configuration for attribute policies[0].criteria.request_headers[Value({"criteria":"EXISTS","name":"X-EXAMPLE","values":<null>})].values
        
          with cloudavenue_elb_policies_http_security.example,
          on terraform_plugin_test.tf line 2, in resource "cloudavenue_elb_policies_http_security" "example":
           2:                                           resource "cloudavenue_elb_policies_http_security" "example" {
        
        Path must be set
--- FAIL: TestAccELBPoliciesHTTPSecurityResource (257.66s)
FAIL
FAIL    github.com/orange-cloudavenue/terraform-provider-cloudavenue/internal/testsacc  258.130s
FAIL
task: Failed to run task "provider:test": exit status 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions