summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/plugin_loader/normal/action_plugins/self_referential.py
blob: b4c895775979c5bb81b46722d6b1dfa9f49bba19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Copyright: Contributors to the Ansible project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type

from ansible.plugins.action import ActionBase

import sys

# reference our own module from sys.modules while it's being loaded to ensure the importer behaves properly
try:
    mod = sys.modules[__name__]
except KeyError:
    raise Exception(f'module {__name__} is not accessible via sys.modules, likely a pluginloader bug')


class ActionModule(ActionBase):
    TRANSFERS_FILES = False

    def run(self, tmp=None, task_vars=None):
        if task_vars is None:
            task_vars = dict()

        result = super(ActionModule, self).run(tmp, task_vars)
        del tmp  # tmp no longer has any effect

        result['changed'] = False
        result['msg'] = 'self-referential action loaded and ran successfully'
        return result