You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There seems to be a bug with the terraform plan when removing attributes of product type when they are not the last one in the file. (I haven't tried with other ressources)
To Reproduce
Execute terraform apply with the following product type :
resource "commercetools_product_type" "my-product-type" {
key = "my-product-type"
name = "My Product Type"
description = "My Product Type Description"
attribute {
name = "my-first-attribute"
label = {
en-US = "My First Attribute"
}
required = true
type {
name = "text"
}
constraint = "SameForAll"
searchable = true
input_hint = "SingleLine"
}
attribute {
name = "my-second-attribute"
label = {
en-US = "My Second Attribute"
}
required = true
type {
name = "text"
}
constraint = "SameForAll"
searchable = true
input_hint = "SingleLine"
}
}
Remove the first attribute. You should end up with a file like this :
resource "commercetools_product_type" "my-product-type" {
key = "my-product-type"
name = "My Product Type"
description = "My Product Type Description"
attribute {
name = "my-second-attribute"
label = {
en-US = "My Second Attribute"
}
required = true
type {
name = "text"
}
constraint = "SameForAll"
searchable = true
input_hint = "SingleLine"
}
}
Execute a terraform plan
Terraform will give the following output :
Terraform will perform the following actions:
# commercetools_product_type.my-product-type will be updated in-place
~ resource "commercetools_product_type" "my-product-type" {
id = "NOT_IMPORTANT_GENERATED_UUID_FOR_MY_RESSOURCE"
name = "My Product Type"
# (3 unchanged attributes hidden)
~ attribute {
~ label = {
~ "en-US" = "My First Attribute" -> "My Second Attribute"
}
~ name = "my-first-attribute" -> "my-second-attribute"
# (5 unchanged attributes hidden)
# (1 unchanged block hidden)
}
- attribute {
- constraint = "SameForAll" -> null
- input_hint = "SingleLine" -> null
- input_tip = {} -> null
- label = {
- "en-US" = "My Second Attribute"
} -> null
- name = "my-second-attribute" -> null
- required = true -> null
- searchable = true -> null
- type {
- name = "text" -> null
}
}
}
Plan: 0 to add, 1 to change, 0 to destroy.
The plan is misleading. It does not rename the first attribute into the second attribute. Otherwise, there should be inconsistencies with the data after the apply (second attribute should end up with the first attribute data) if the plan was accurate. But, it actually remove the first attribute as expected on CommerceTools.
Expected behavior
I would expect the same behaviour as we remove the last attribute of the file. Here is an example of the output we get when we remove the last attribute :
Terraform will perform the following actions:
# commercetools_product_type.my-product-type will be updated in-place
~ resource "commercetools_product_type" "my-product-type" {
id = "NOT_IMPORTANT_GENERATED_UUID_FOR_MY_RESSOURCE"
name = "My Product Type"
# (3 unchanged attributes hidden)
- attribute {
- constraint = "SameForAll" -> null
- input_hint = "SingleLine" -> null
- input_tip = {} -> null
- label = {
- "en-US" = "My Second Attribute"
} -> null
- name = "my-second-attribute" -> null
- required = true -> null
- searchable = true -> null
- type {
- name = "text" -> null
}
}
# (1 unchanged block hidden)
}
Plan: 0 to add, 1 to change, 0 to destroy.
The text was updated successfully, but these errors were encountered:
Hi @elachance1 I think this happens because we store the attributes as a slice of structs, so when storing the data terraform sees that the attribute at position 0 (was first attribute, now second attribute) has changed instead of correctly deducing that the attribute at 0 was removed.
I will have to dive in to this to see how to fix it
Version information
1.9.2
1.14.3
Describe the bug
There seems to be a bug with the
terraform plan
when removing attributes of product type when they are not the last one in the file. (I haven't tried with other ressources)To Reproduce
terraform apply
with the following product type :Execute a
terraform plan
Terraform will give the following output :
The plan is misleading. It does not rename the first attribute into the second attribute. Otherwise, there should be inconsistencies with the data after the apply (second attribute should end up with the first attribute data) if the plan was accurate. But, it actually remove the first attribute as expected on CommerceTools.
Expected behavior
I would expect the same behaviour as we remove the last attribute of the file. Here is an example of the output we get when we remove the last attribute :
The text was updated successfully, but these errors were encountered: