12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- # -*- coding: utf-8 -*-
- """
- Test AnsibleGate State Module
- """
- from __future__ import absolute_import, print_function, unicode_literals
- # Import python libraries
- import os
- import shutil
- import tempfile
- # Import salt libraries
- import salt.utils.files
- import salt.utils.path
- import yaml
- # Import testing libraries
- from tests.support.case import ModuleCase
- from tests.support.helpers import (
- destructiveTest,
- flaky,
- requires_sshd_server,
- requires_system_grains,
- )
- from tests.support.mixins import SaltReturnAssertsMixin
- from tests.support.runtests import RUNTIME_VARS
- from tests.support.unit import SkipTest, skipIf
- @destructiveTest
- @requires_sshd_server
- @skipIf(
- not salt.utils.path.which("ansible-playbook"), "ansible-playbook is not installed"
- )
- class AnsiblePlaybooksTestCase(ModuleCase, SaltReturnAssertsMixin):
- """
- Test ansible.playbooks states
- """
- @classmethod
- @requires_system_grains
- def setUpClass(cls, grains=None): # pylint: disable=arguments-differ
- if grains.get("os_family") == "RedHat" and grains.get("osmajorrelease") == 6:
- raise SkipTest(
- "This test hangs the test suite on RedHat 6. Skipping for now."
- )
- 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")
- @flaky
- 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)
|