Files
computer-playbook/plugins/action/stack_host_template.py
T
kevinveenbirkenbachandClaude Opus 5 3ea989a713 style: delete the comments the policy rejects across the tree
121 lines of restated code, step narration, section banners and rationale
prose, in workflow YAML, compose overrides, group_vars, lookup and action
plugins, role tasks, shell scripts and tests.

Three lines go the other way: where a reason has to survive it is now a
registered nocheck directive carrying it, not free prose. Two of them point at
an invariant further down the same file, the third records why an end-of-life
object store keeps no Playwright surface.

Scope was decided per line rather than per file. Classifying by "no additions"
would have swept roles/web-app-erpnext/tasks along with it, where the removed
lines are delegate_to, environment and cmd — a behaviour change that has no
business in a comment commit.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-10-03 01:23:08 +02:00

32 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python3
from __future__ import annotations
from typing import Any
from ansible.module_utils.parsing.convert_bool import boolean as _to_bool
from ansible.plugins.action.template import ActionModule as TemplateActionModule
from ansible.template import trust_as_template
_IS_STACK_HOST_EXPR = trust_as_template("{{ IS_STACK_HOST | bool }}")
class ActionModule(TemplateActionModule):
def run(
self, tmp: Any = None, task_vars: dict[str, Any] | None = None
) -> dict[str, Any]:
if task_vars is None:
task_vars = {}
self._templar.available_variables = task_vars
if not _to_bool(self._templar.template(_IS_STACK_HOST_EXPR)):
return {
"changed": False,
"skipped": True,
"skip_reason": "IS_STACK_HOST is false; this host does not own the destination",
}
self._task.args.setdefault("mode", "0644")
if str(self._task.args.get("src", "")).endswith("compose.yml.j2"):
self._task.args.setdefault("lstrip_blocks", True)
return super().run(tmp=tmp, task_vars=task_vars)