diff --git a/ansiblelater/rules/CheckLocalAction.py b/ansiblelater/rules/CheckLocalAction.py new file mode 100644 index 0000000..6c108b2 --- /dev/null +++ b/ansiblelater/rules/CheckLocalAction.py @@ -0,0 +1,22 @@ +# Copyright (c) 2016, Tsukinowa Inc. +# Copyright (c) 2018, Ansible Project +from ansiblelater.standard import StandardBase + + +class CheckLocalAction(StandardBase): + + sid = "ANSIBLE0024" + description = "Don't use local_action" + helptext = ("`delegate_to: localhost` should be used instead of `local_action`") + version = "0.2" + types = ["playbook", "task", "handler"] + + def check(self, candidate, settings): + yamllines, errors = self.get_normalized_yaml(candidate, settings) + + if not errors: + for i, line in yamllines: + if 'local_action' in line: + errors.append(self.Error(i, self.helptext)) + + return self.Result(candidate.path, errors) diff --git a/docs/content/included_rules/_index.md b/docs/content/included_rules/_index.md index 8955731..09cb2d2 100644 --- a/docs/content/included_rules/_index.md +++ b/docs/content/included_rules/_index.md @@ -38,3 +38,4 @@ Reviews are nothing without some rules or standards against which to review. ans | CheckMetaChangeFromDefault | ANSIBLE0021 | Roles meta/main.yml default values should be changed. | | | CheckWhenFormat | ANSIBLE0022 | Don't use Jinja2 in `when`. | | | CheckNestedJinja | ANSIBLE0023 | Don't use nested Jinja2 pattern. | | +| CheckLocalAction | ANSIBLE0024 | Don't use local_action. | |