mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 17:09:03 +00:00
86 lines
2.1 KiB
Python
86 lines
2.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
# Import Python libs
|
|
from __future__ import absolute_import
|
|
import collections
|
|
|
|
# Import Salt Testing Libs
|
|
from tests.support import mock
|
|
from tests.support import mixins
|
|
from tests.support.unit import skipIf, TestCase
|
|
|
|
# Import Salt Libs
|
|
import salt.roster.sshconfig as sshconfig
|
|
|
|
_SAMPLE_SSH_CONFIG = """
|
|
Host *
|
|
User user.mcuserface
|
|
|
|
Host abc*
|
|
IdentityFile ~/.ssh/id_rsa_abc
|
|
|
|
Host def*
|
|
IdentityFile ~/.ssh/id_rsa_def
|
|
|
|
Host abc.asdfgfdhgjkl.com
|
|
HostName 123.123.123.123
|
|
|
|
Host abc123.asdfgfdhgjkl.com
|
|
HostName 123.123.123.124
|
|
|
|
Host def.asdfgfdhgjkl.com
|
|
HostName 234.234.234.234
|
|
"""
|
|
|
|
_TARGET_ABC = collections.OrderedDict([
|
|
('user', 'user.mcuserface'),
|
|
('priv', '~/.ssh/id_rsa_abc'),
|
|
('host', 'abc.asdfgfdhgjkl.com')
|
|
])
|
|
|
|
_TARGET_ABC123 = collections.OrderedDict([
|
|
('user', 'user.mcuserface'),
|
|
('priv', '~/.ssh/id_rsa_abc'),
|
|
('host', 'abc123.asdfgfdhgjkl.com')
|
|
])
|
|
|
|
_TARGET_DEF = collections.OrderedDict([
|
|
('user', 'user.mcuserface'),
|
|
('priv', '~/.ssh/id_rsa_def'),
|
|
('host', 'def.asdfgfdhgjkl.com')
|
|
])
|
|
|
|
_ALL = {
|
|
'abc.asdfgfdhgjkl.com': _TARGET_ABC,
|
|
'abc123.asdfgfdhgjkl.com': _TARGET_ABC123,
|
|
'def.asdfgfdhgjkl.com': _TARGET_DEF
|
|
}
|
|
|
|
_ABC_GLOB = {
|
|
'abc.asdfgfdhgjkl.com': _TARGET_ABC,
|
|
'abc123.asdfgfdhgjkl.com': _TARGET_ABC123
|
|
}
|
|
|
|
|
|
@skipIf(mock.NO_MOCK, mock.NO_MOCK_REASON)
|
|
class SSHConfigRosterTestCase(TestCase, mixins.LoaderModuleMockMixin):
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
cls.mock_fp = mock_fp = mock.mock_open(read_data=_SAMPLE_SSH_CONFIG)
|
|
|
|
def setup_loader_modules(self):
|
|
return {sshconfig: {}}
|
|
|
|
def test_all(self):
|
|
with mock.patch('salt.utils.files.fopen', self.mock_fp):
|
|
with mock.patch('salt.roster.sshconfig._get_ssh_config_file'):
|
|
targets = sshconfig.targets('*')
|
|
self.assertEqual(targets, _ALL)
|
|
|
|
def test_abc_glob(self):
|
|
with mock.patch('salt.utils.files.fopen', self.mock_fp):
|
|
with mock.patch('salt.roster.sshconfig._get_ssh_config_file'):
|
|
targets = sshconfig.targets('abc*')
|
|
self.assertEqual(targets, _ABC_GLOB)
|