Support virtual network resource without bindings; Improve config version constraints #919
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.
This PR started life as the simple (HA!) task of dropping the requirement for VN bindings with Apstra 5.0.0.
Then things got hairy.
The full scope of the damage:
null
binding set is only valid with Apstra 5.x. The existing config validation scheme relies onConstraints
from thegithub.com/hashicorp/go-version
package... Which don't work with Apstra's non-semver versioning strategy. The config validation scheme has been migrated from theapiversions
package to thecompatibility
package, and now usesConstraints
from thegithubub.com/chrismarget-j/version-constraints
package.bindings
attribute has been changed fromRequired
toOptional
. ASizeAtLeast(1)
validator remains, so it's not permitted to specify an empty binding set.Read()
. We prevent state churn by wiping out those bindings when none are present in the state. This required exporting theVnBinding.AttrTypes()
method.apstra_datacenter_virtual_network
has been rewritten to current style.Tests are passing with 4.2.0, 4.2.1, 4.2.1.1, 4.2.2, 5.0.0
Closes #912
Closes #920