123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- # -*- coding: utf-8 -*-
- '''
- unittests for terraform roster
- '''
- # Import Python libs
- from __future__ import absolute_import, unicode_literals
- import os.path
- # Import Salt Testing Libs
- from tests.support.mixins import LoaderModuleMockMixin
- from tests.support.unit import TestCase, skipIf
- from tests.support.runtests import RUNTIME_VARS
- from tests.support.mock import (
- patch,
- NO_MOCK,
- NO_MOCK_REASON
- )
- # Import Salt Libs
- import salt.config
- import salt.loader
- from salt.roster import terraform
- @skipIf(NO_MOCK, NO_MOCK_REASON)
- class TerraformTestCase(TestCase, LoaderModuleMockMixin):
- '''
- Test cases for salt.roster.terraform
- '''
- def setup_loader_modules(self):
- opts = salt.config.master_config(os.path.join(RUNTIME_VARS.TMP_CONF_DIR, 'master'))
- utils = salt.loader.utils(opts, whitelist=['roster_matcher'])
- return {
- terraform: {
- '__utils__': utils,
- '__opts__': {},
- }
- }
- def test_default_output(self):
- '''
- Test the output of a fixture tfstate file wich contains libvirt
- resources.
- '''
- tfstate = os.path.join(os.path.dirname(__file__), 'terraform.data', 'terraform.tfstate')
- pki_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'terraform.data'))
- with patch.dict(terraform.__opts__, {'roster_file': tfstate, 'pki_dir': pki_dir}):
- expected_result = {
- 'db0': {
- 'host': '192.168.122.174',
- 'user': 'root',
- 'passwd': 'dbpw',
- 'tty': True,
- 'priv': os.path.join(pki_dir, 'ssh', 'salt-ssh.rsa')},
- 'db1': {
- 'host': '192.168.122.190',
- 'user': 'root',
- 'passwd': 'dbpw',
- 'tty': True,
- 'priv': os.path.join(pki_dir, 'ssh', 'salt-ssh.rsa')},
- 'web0': {
- 'host': '192.168.122.106',
- 'user': 'root',
- 'passwd': 'linux',
- 'timeout': 22,
- 'priv': os.path.join(pki_dir, 'ssh', 'salt-ssh.rsa')},
- 'web1': {
- 'host': '192.168.122.235',
- 'user': 'root',
- 'passwd': 'linux',
- 'timeout': 22,
- 'priv': os.path.join(pki_dir, 'ssh', 'salt-ssh.rsa')}
- }
- ret = terraform.targets('*')
- self.assertDictEqual(expected_result, ret)
- def test_default_matching(self):
- '''
- Test the output of a fixture tfstate file wich contains libvirt
- resources using matching
- '''
- tfstate = os.path.join(os.path.dirname(__file__), 'terraform.data', 'terraform.tfstate')
- pki_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'terraform.data'))
- with patch.dict(terraform.__opts__, {'roster_file': tfstate, 'pki_dir': pki_dir}):
- expected_result = {
- 'web0': {
- 'host': '192.168.122.106',
- 'user': 'root',
- 'passwd': 'linux',
- 'timeout': 22,
- 'priv': os.path.join(pki_dir, 'ssh', 'salt-ssh.rsa')},
- 'web1': {
- 'host': '192.168.122.235',
- 'user': 'root',
- 'passwd': 'linux',
- 'timeout': 22,
- 'priv': os.path.join(pki_dir, 'ssh', 'salt-ssh.rsa')}
- }
- ret = terraform.targets('*web*')
- self.assertDictEqual(expected_result, ret)
|