mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 02:54:26 +00:00
Rename the meta/services.yml key across all roles, the roles_with_default_placement lookup (now roles_with_placement), the get_role_default_placement / iter_roles_with_default_placement helpers, and every consumer (swarm closure, compose_volumes filter, nfs_prep, container deploy template, constructor stage, extend_inventory) plus their tests and docs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
31 lines
822 B
Python
31 lines
822 B
Python
"""Ansible lookup wrapper around
|
|
``utils.roles.meta_lookup.iter_roles_with_placement``.
|
|
|
|
lookup('roles_with_placement', 'manager')
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
from ansible.errors import AnsibleError
|
|
from ansible.plugins.lookup import LookupBase
|
|
|
|
from utils.roles.meta_lookup import iter_roles_with_placement
|
|
|
|
|
|
class LookupModule(LookupBase):
|
|
def run(
|
|
self,
|
|
terms: list[Any] | None,
|
|
variables: dict[str, Any] | None = None,
|
|
**kwargs: Any,
|
|
) -> list[list[str]]:
|
|
terms = terms or []
|
|
if len(terms) != 1:
|
|
raise AnsibleError(
|
|
"roles_with_placement: expected exactly 1 term, "
|
|
"the placement value (e.g. 'manager')"
|
|
)
|
|
return [iter_roles_with_placement(str(terms[0]))]
|