mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-10 12:47:04 +00:00
The discovery SPOT (cli.meta.ci.query) now runs one query shape per mode: compose and host stay whole-role with variants packed into bundles, swarm ranks and budget-cuts on per-variant rows and emits role#variant tokens through apps.sh into variant_bundles, so the cut can pick a subset of a role's variants and the --matrix view is the selection priority. Replace the --unique flag with visible dna/clone columns (heaviest role per dna cluster stays ahead of the cut), add the integrated column and sort, count host bundles like compose, and give the deploy plan an id counter, per-variant weights and display-width-aware alignment matching the matrix renderer. Add i8ma*/i8pa* inspection aliases per mode. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Shared Utilities (utils/)
This directory contains shared Python helpers used by custom modules and plugins.
Purpose
Use utils/ for reusable code that should not be duplicated across:
library/modules,plugins/action/,plugins/filter/,plugins/lookup/.
Typical shared utilities:
- API clients,
- validation/conversion helpers,
- path and configuration helpers,
- cross-plugin/module domain logic.
- Shared HTTP(S) connection handler for multiple modules.
- Common validation or transformation functions for user input.
- Utility functions for interacting with Docker, LDAP, etc.
- Grouped helper packages such as
utils/domains/for related domain logic.
Design Guidelines
- Keep helpers focused and composable.
- Avoid side effects during import.
- Prefer explicit function/class APIs over implicit globals.
- Keep dependencies minimal so modules/plugins stay lightweight.
Example Import
from utils.domains.primary_domain import get_primary_domain
What Does Not Belong Here
- Standalone executable modules (put in
library/). - Ansible plugin entrypoints (put in
plugins/*).
References
- Module utilities: https://docs.ansible.com/ansible/latest/dev_guide/developing_module_utilities.html
- Plugin development: https://docs.ansible.com/ansible/latest/dev_guide/developing_plugins.html