Fix Issue #744 - semantic collision between linode and ansible tags#745
Open
brad2014 wants to merge 1 commit intolinode:devfrom
Open
Fix Issue #744 - semantic collision between linode and ansible tags#745brad2014 wants to merge 1 commit intolinode:devfrom
brad2014 wants to merge 1 commit intolinode:devfrom
Conversation
…tags In order to suppress the warning about using ansible reserved words as variables, We inject the instance tags as "linode_tags" instead of "tags". This would be a breaking change, since references to linode "tags" would need to change to "linode_tags".
Contributor
There was a problem hiding this comment.
Pull request overview
This PR resolves a naming collision between Linode tags and Ansible's reserved "tags" keyword by renaming the Linode tags variable to "linode_tags". This eliminates warnings from ansible-core>=2.20.1 about using reserved words as variables.
Changes:
- Renamed
tagstolinode_tagsin the inventory plugin to avoid collision with Ansible's reserved keyword - Updated documentation and examples to reflect the new variable name
- Added code to automatically rename the
tagsfield tolinode_tagsin host variables
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+83
to
+84
| webservers: "'web' in linode_tags" | ||
| mailservers: "'mail' in linode_tags" |
There was a problem hiding this comment.
The updated group filter expressions assume linode_tags is a list, but they don't use the |list filter that was present in the original code. This could cause issues if linode_tags is not already a list type. Consider adding |list filter to maintain consistency with the original logic: 'web' in (linode_tags|list)
Suggested change
| webservers: "'web' in linode_tags" | |
| mailservers: "'mail' in linode_tags" | |
| webservers: "'web' in (linode_tags|list)" | |
| mailservers: "'mail' in (linode_tags|list)" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
📝 Description
There is a semantic collision between linode "tags" and ansible "tags", and modern ansible dutifully warns users when this conflict occurs.
In order to eliminate the warning (and the collision) about using ansible reserved words as variables, we inject the instance tags as "linode_tags" instead of "tags".
This would be a breaking change, since references to linode "tags" would need to change to "linode_tags" in dynamic inventory files (and possibly others).
✔️ How to Test
Simply note that "ansible-inventory --list" no longer generates a warning on ansible-core>=2.20.1.
How do I run the relevant unit/integration tests?
📷 Preview
If applicable, include a screenshot or code snippet of this change. Otherwise, please remove this section.