Fix nat_router validation when variable is null#2153
Fix nat_router validation when variable is null#2153nacholiya wants to merge 1 commit intomysticaltech:masterfrom
Conversation
Summary of ChangesHello @nacholiya, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request resolves a critical validation error that occurred when the Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
The pull request correctly addresses the "Attempt to get attribute from null value" error when nat_router is null by introducing null-safe attribute access using try(). This ensures that the validation logic only executes when the object is present. I have suggested a more concise way to write this validation using a single try() wrapper, which is more idiomatic in Terraform and handles potential null values within the object attributes more robustly. Additionally, please note that the nat_router_hcloud_token variable validation (lines 188-191) likely suffers from the same issue and should be updated for consistency.
|
|
||
| validation { | ||
| condition = var.nat_router == null || !var.nat_router.enable_redundancy || var.nat_router.standby_location != "" | ||
| condition = var.nat_router == null || !try(var.nat_router.enable_redundancy, false) || try(var.nat_router.standby_location, "") != "" |
There was a problem hiding this comment.
While the use of try() fixes the reported issue, the condition can be simplified for better readability. Using a single try() wrapper around the logic is more idiomatic in Terraform and avoids redundant checks. This approach also handles cases where attributes might be null more gracefully.
condition = try(!var.nat_router.enable_redundancy || var.nat_router.standby_location != "", true)
When
nat_routeris set to null, the validation block attempted to accessattributes like
enable_redundancyandstandby_location, causing:"Attempt to get attribute from null value"
This change makes the validation null-safe using
try()while preservingthe original redundancy validation logic.
Closes #2152