12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- # -*- coding: utf-8 -*-
- """
- Test AnsibleGate State Module
- """
- from __future__ import absolute_import, print_function, unicode_literals
- import os
- import shutil
- import tempfile
- import pytest
- import salt.utils.files
- import salt.utils.path
- import yaml
- from tests.support.case import ModuleCase
- from tests.support.helpers import requires_sshd_server
- from tests.support.mixins import SaltReturnAssertsMixin
- from tests.support.runtests import RUNTIME_VARS
- @pytest.mark.destructive_test
- @requires_sshd_server
- @pytest.mark.skipif(
- not salt.utils.path.which("ansible-playbook"),
- reason="ansible-playbook is not installed",
- )
- @pytest.mark.skipif(
- "grains['os_family'] == 'RedHat' and grains.get('osmajorrelease') == 6",
- reason="This test hangs the test suite on RedHat 6. Skipping for now.",
- )
- class AnsiblePlaybooksTestCase(ModuleCase, SaltReturnAssertsMixin):
- """
- Test ansible.playbooks states
- """
- def setUp(self):
- priv_file = os.path.join(RUNTIME_VARS.TMP_CONF_DIR, "key_test")
- data = {
- "all": {
- "hosts": {
- "localhost": {
- "ansible_host": "127.0.0.1",
- "ansible_port": 2827,
- "ansible_user": RUNTIME_VARS.RUNNING_TESTS_USER,
- "ansible_ssh_private_key_file": priv_file,
- "ansible_ssh_extra_args": (
- "-o StrictHostKeyChecking=false "
- "-o UserKnownHostsFile=/dev/null "
- ),
- },
- },
- },
- }
- self.tempdir = tempfile.mkdtemp()
- self.inventory = self.tempdir + "inventory"
- with salt.utils.files.fopen(self.inventory, "w") as yaml_file:
- yaml.dump(data, yaml_file, default_flow_style=False)
- def tearDown(self):
- shutil.rmtree(self.tempdir)
- delattr(self, "tempdir")
- delattr(self, "inventory")
- @pytest.mark.flaky(max_runs=4)
- def test_ansible_playbook(self):
- ret = self.run_state(
- "ansible.playbooks",
- name="remove.yml",
- git_repo="git://github.com/gtmanfred/playbooks.git",
- ansible_kwargs={"inventory": self.inventory},
- )
- self.assertSaltTrueReturn(ret)
- ret = self.run_state(
- "ansible.playbooks",
- name="install.yml",
- git_repo="git://github.com/gtmanfred/playbooks.git",
- ansible_kwargs={"inventory": self.inventory},
- )
- self.assertSaltTrueReturn(ret)
|