mirror of
https://github.com/valitydev/salt.git
synced 2024-11-06 16:45:27 +00:00
105 lines
3.6 KiB
Python
105 lines
3.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
'''
|
|
unittests for terraform roster
|
|
'''
|
|
# Import Python libs
|
|
from __future__ import absolute_import
|
|
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)
|