Skip to content

Fixes #38060 - Ignore empty Ansible variable files - #115

Open
jakduch wants to merge 1 commit into
theforeman:masterfrom
jakduch:fix/38060
Open

Fixes #38060 - Ignore empty Ansible variable files#115
jakduch wants to merge 1 commit into
theforeman:masterfrom
jakduch:fix/38060

Conversation

@jakduch

@jakduch jakduch commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes #38060.

Ansible roles commonly contain an empty defaults/main.yml. Depending on the Psych version, loading such a file returns nil or false; the variables extractor treated either value as invalid YAML data and raised ReadVariablesException. During role import this caused the same roles to be retried and substantially delayed the import dialog.

Treat an empty file as a role with no variables. Malformed YAML and non-empty YAML documents that are not mappings still raise the existing exception.

Add a regression fixture and test for an empty defaults file.

Testing

  • test/variables_extractor_test.rb: 3 runs, 6 assertions, 0 failures, 0 errors
  • Verified the empty-file behavior on Ruby 2.6 and Ruby 4.0/Psych variants

AI usage disclosure

Per the community discussion on AI policy, the issue was investigated and the changes, tests, and PR wording were prepared with the assistance of Codex 5.6 Sol High. The resulting changes were reviewed before submitting. The commit also includes an Assisted-By trailer.

Treat empty role defaults files as having no variables while keeping malformed and non-mapping YAML as errors.

Assisted-By: Codex 5.6 Sol High
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant