-
-
Notifications
You must be signed in to change notification settings - Fork 71
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Version information
- terraform:
1.9.2
- terraform provider:
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
- 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.
stanislavhordiyenko and ijn-kruso
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working