12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- # -*- coding: utf-8 -*-
- '''
- Test AnsibleGate State Module
- '''
- from __future__ import absolute_import, unicode_literals, print_function
- # Import python libraries
- import os
- import shutil
- import tempfile
- import yaml
- # Import salt libraries
- import salt.utils.files
- import salt.utils.path
- # Import testing libraries
- from tests.support.case import ModuleCase
- from tests.support.helpers import (
- destructiveTest,
- requires_sshd_server,
- requires_system_grains,
- flaky
- )
- from tests.support.mixins import SaltReturnAssertsMixin
- from tests.support.runtests import RUNTIME_VARS
- from tests.support.unit import 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
- '''
- @requires_system_grains
- def setUp(self, grains=None):
- if grains.get('os_family') == 'RedHat' and grains.get('osmajorrelease') == 6:
- self.skipTest('This test hangs the test suite on RedHat 6. Skipping for now.')
- 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)
|