policy: improve target block policy parsing and fix panics. #100
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.
The target block of a scaling policy is opaque to Nomad and does
not go through any validation during job registration. It can
result in malformed but valid HCL being read by the autoscaler. It
is its responsibility to parse this carefully, avoiding panics
and returning sensible errors where possible.
This fix initially targeted a panic which occurred if the name
param of a target block was blank where the block also included
a config section. When writing tests to cover this, a number of
other cases were uncovered and the scope of the change altered to
accommodate these.
Follow up issues have been raised to address other aspects of
policy parsing: #99 and #98
closes #71