Compare firewall descriptions after converting unicode + HTML entities #758
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For a while now, I've noticed that we have an occasional flapping test
in our internal test suite where "example 'string'" is attempting to
trigger an update despite not actually doing anything. Diving further
into this, I found that the Cloudflare API returns unicode + HTML
entities for the descriptions.
However most people (ok, no one) is actually wanting to write the
description that way. Instead, they are using the single characters such
as an apostrophe (
'
).This means that Terraform constantly thinks that it needs to update the
value when it doesn't really.
To combat this, I've added a
DiffSuppressFunc
to the descriptionswhich ensure the string values are compared after being processed by
html.UnescapeString
. This accounts for the differences in the stringsand will still ensure we aren't missing updates -- even if someone
decides to actually use entities in their descriptions.