Source code for exasol.ansible.inventory

from dataclasses import dataclass
from pathlib import Path

INVENTORY_GROUP = "arw_inventory"


[docs] @dataclass(frozen=True) class Host: name: str ssh_private_key: Path | None = None @property def rendered(self) -> str: """Renders the current Host for inventory file.""" if key := self.ssh_private_key: return f"{self.name} ansible_ssh_private_key_file={key}" return self.name
def render(hosts: tuple[Host, ...]) -> str: header = f"[{INVENTORY_GROUP}]\n\n" if not hosts: return header body = "\n".join(host.rendered for host in hosts) return f"{header}{body}\n\n"