示例#1
0
from ansible.plugins.callback import CallbackBase
from ansible.executor.task_queue_manager import TaskQueueManager
from ansible.playbook.play import Play
from ansible.cli.adhoc import AdHocCLI
from pytest_ansible.logger import get_logger
from pytest_ansible.module_dispatcher.v2 import ModuleDispatcherV2
from pytest_ansible.results import AdHocResult
from pytest_ansible.errors import AnsibleConnectionFailure
from pytest_ansible.has_version import has_ansible_v28

if not has_ansible_v28:
    raise ImportError("Only supported with ansible-2.8 and newer")
else:
    from ansible.plugins.loader import module_loader

log = get_logger(__name__)


class ResultAccumulator(CallbackBase):
    """Fixme."""
    def __init__(self, *args, **kwargs):
        """Initialize object."""
        super(ResultAccumulator, self).__init__(*args, **kwargs)
        self.contacted = {}
        self.unreachable = {}

    def v2_runner_on_failed(self, result, *args, **kwargs):
        self.contacted[result._host.get_name()] = result._result

    v2_runner_on_ok = v2_runner_on_failed
示例#2
0
import ansible.constants
import ansible.utils
import ansible.errors

from ansible.runner import Runner
from pytest_ansible.logger import get_logger
from pytest_ansible.module_dispatcher import BaseModuleDispatcher
from pytest_ansible.errors import AnsibleConnectionFailure
from pytest_ansible.results import AdHocResult
from pytest_ansible.has_version import has_ansible_v1


if not has_ansible_v1:
    raise ImportError("Only supported with ansible < 2.0")

log = get_logger(__name__)


class ModuleDispatcherV1(BaseModuleDispatcher):

    """Pass."""

    required_kwargs = ('inventory', 'inventory_manager', 'host_pattern')

    def has_module(self, name):
        return ansible.utils.module_finder.has_plugin(name)

    def _run(self, *module_args, **complex_args):
        """Execute an ansible adhoc command returning the results in a AdHocResult object."""
        # Assemble module argument string
        if True: