Changed integration tests to use autosign_file to authenticate minions

This commit is contained in:
Benedikt Werner 2017-10-19 00:03:06 +02:00
parent 6db9143f08
commit 64e30ac0b2
No known key found for this signature in database
GPG Key ID: 1DBFF0F8E9E121EB
5 changed files with 43 additions and 39 deletions

View File

@ -848,6 +848,12 @@ class TestDaemon(object):
)
opts_dict['extension_modules'] = os.path.join(opts_dict['root_dir'], 'extension_modules')
# Copy the autosign_file to the new master root_dir
shutil.copyfile(
os.path.join(INTEGRATION_TEST_DIR, 'files', 'autosign_file'),
os.path.join(opts_dict['root_dir'], 'autosign_file')
)
# Point the config values to the correct temporary paths
for name in ('hosts', 'aliases'):
optname = '{0}.file'.format(name)

View File

@ -7,6 +7,7 @@ import shutil
# Import Salt Testing libs
from tests.support.case import ShellCase
from tests.support.paths import TMP, INTEGRATION_TEST_DIR
# Import 3rd-party libs
@ -19,53 +20,45 @@ class AutosignGrainsTest(ShellCase):
Test autosigning minions based on grain values.
'''
def test_autosign_grains_accept(self):
def setUp(self):
shutil.copyfile(
os.path.join(INTEGRATION_TEST_DIR, 'files', 'autosign_grains', 'autosign_file'),
os.path.join(TMP, 'root_dir', 'autosign_file')
)
self.run_key('-d minion -y')
self.run_call('test.ping') # get minon to try to authenticate itself again
try:
self.assertEqual(self.run_key('-l acc'), ['Accepted Keys:', 'sub_minion'])
self.assertEqual(self.run_key('-l un'), ['Unaccepted Keys:', 'minion'])
except AssertionError:
self.run_key('-a minion -y')
raise
if 'minion' in self.run_key('-l acc'):
self.skipTest('Could not deauthorize minion')
if 'minion' not in self.run_key('-l un'):
self.skipTest('minion did not try to authenticate itself')
autosign_grains_dir = os.path.join(self.master_opts['autosign_grains_dir'])
if not os.path.isdir(autosign_grains_dir):
os.makedirs(autosign_grains_dir)
with salt.utils.files.fopen(os.path.join(autosign_grains_dir, 'test_grain'), 'w') as f:
self.autosign_grains_dir = os.path.join(self.master_opts['autosign_grains_dir'])
if not os.path.isdir(self.autosign_grains_dir):
os.makedirs(self.autosign_grains_dir)
def tearDown(self):
shutil.copyfile(
os.path.join(INTEGRATION_TEST_DIR, 'files', 'autosign_file'),
os.path.join(TMP, 'root_dir', 'autosign_file')
)
self.run_call('test.ping') # get minon to try to authenticate itself again
self.run_key('-a minion -y')
if os.path.isdir(self.autosign_grains_dir):
shutil.rmtree(self.autosign_grains_dir)
def test_autosign_grains_accept(self):
with salt.utils.files.fopen(os.path.join(self.autosign_grains_dir, 'test_grain'), 'w') as f:
f.write('#invalid_value\ncheese')
self.run_call('test.ping') # get minon to try to authenticate itself again
try:
self.assertEqual(self.run_key('-l acc'), ['Accepted Keys:', 'minion', 'sub_minion'])
finally:
self.run_key('-a minion -y')
if os.path.isdir(autosign_grains_dir):
shutil.rmtree(autosign_grains_dir)
self.assertIn('minion', self.run_key('-l acc'))
def test_autosign_grains_fail(self):
self.run_key('-d minion -y')
self.run_call('test.ping') # get minon to try to authenticate itself again
try:
self.assertEqual(self.run_key('-l acc'), ['Accepted Keys:', 'sub_minion'])
self.assertEqual(self.run_key('-l un'), ['Unaccepted Keys:', 'minion'])
except AssertionError:
self.run_key('-a minion -y')
raise
autosign_grains_dir = os.path.join(self.master_opts['autosign_grains_dir'])
if not os.path.isdir(autosign_grains_dir):
os.makedirs(autosign_grains_dir)
with salt.utils.files.fopen(os.path.join(autosign_grains_dir, 'test_grain'), 'w') as f:
with salt.utils.files.fopen(os.path.join(self.autosign_grains_dir, 'test_grain'), 'w') as f:
f.write('#cheese\ninvalid_value')
self.run_call('test.ping') # get minon to try to authenticate itself again
try:
self.assertEqual(self.run_key('-l acc'), ['Accepted Keys:', 'sub_minion'])
self.assertEqual(self.run_key('-l un'), ['Unaccepted Keys:', 'minion'])
finally:
self.run_key('-a minion -y')
if os.path.isdir(autosign_grains_dir):
shutil.rmtree(autosign_grains_dir)
self.assertNotIn('minion', self.run_key('-l acc'))
self.assertIn('minion', self.run_key('-l un'))

View File

@ -0,0 +1,3 @@
minion
sub_minion
syndic

View File

@ -0,0 +1,2 @@
sub_minion
syndic

View File

@ -8,7 +8,6 @@ worker_threads: 3
pidfile: master.pid
sock_dir: master_sock
timeout: 12
open_mode: True
fileserver_list_cache_time: 0
file_buffer_size: 8192
file_recv: True
@ -99,3 +98,4 @@ libcloud_dns:
shopper_id: 12345
autosign_grains_dir: autosign_grains
autosign_file: autosign_file