2014-07-09 21:41:18 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
'''
|
|
|
|
:codeauthor: :email:`Nicole Thomas <nicole@saltstack.com>`
|
|
|
|
'''
|
2014-11-21 19:05:13 +00:00
|
|
|
# Import Python libs
|
|
|
|
from __future__ import absolute_import
|
2014-07-09 21:41:18 +00:00
|
|
|
|
|
|
|
# Import Salt Libs
|
|
|
|
import integration
|
|
|
|
|
|
|
|
# Import Salt Testing Libs
|
|
|
|
from salttesting.helpers import ensure_in_syspath
|
|
|
|
|
|
|
|
ensure_in_syspath('../../')
|
|
|
|
|
|
|
|
|
|
|
|
class BatchTest(integration.ShellCase):
|
|
|
|
'''
|
|
|
|
Integration tests for the salt.cli.batch module
|
|
|
|
'''
|
|
|
|
|
|
|
|
def test_batch_run(self):
|
|
|
|
'''
|
|
|
|
Tests executing a simple batch command to help catch regressions
|
|
|
|
'''
|
2015-01-05 17:04:15 +00:00
|
|
|
ret = ['',
|
2014-07-09 21:41:18 +00:00
|
|
|
"Executing run on ['sub_minion']",
|
|
|
|
'',
|
|
|
|
'sub_minion:',
|
2014-12-15 19:04:35 +00:00
|
|
|
'retcode:',
|
|
|
|
' 0',
|
2014-07-09 21:41:18 +00:00
|
|
|
' batch testing',
|
|
|
|
'',
|
|
|
|
"Executing run on ['minion']",
|
|
|
|
'',
|
|
|
|
'minion:',
|
2014-12-15 19:04:35 +00:00
|
|
|
'retcode:',
|
|
|
|
' 0',
|
2014-07-09 21:41:18 +00:00
|
|
|
' batch testing']
|
2014-07-10 04:00:41 +00:00
|
|
|
ret = sorted(ret)
|
|
|
|
cmd = sorted(self.run_salt('\'*\' test.echo \'batch testing\' -b 50%'))
|
|
|
|
self.assertListEqual(cmd, ret)
|
2014-07-10 04:31:54 +00:00
|
|
|
|
2016-06-15 19:41:00 +00:00
|
|
|
def test_batch_run_number(self):
|
|
|
|
'''
|
|
|
|
Tests executing a simple batch command using a number division instead of
|
|
|
|
a percentage with full batch CLI call.
|
|
|
|
'''
|
|
|
|
ret = ['',
|
|
|
|
"Executing run on ['sub_minion', 'minion']",
|
|
|
|
'',
|
|
|
|
'retcode:',
|
|
|
|
' 0',
|
|
|
|
'sub_minion:',
|
|
|
|
' True',
|
|
|
|
'minion:',
|
|
|
|
' True',
|
|
|
|
'retcode:',
|
|
|
|
' 0']
|
|
|
|
cmd = sorted(self.run_salt('\'*\' test.ping --batch-size 2'))
|
|
|
|
self.assertListEqual(cmd, sorted(ret))
|
|
|
|
|
|
|
|
def test_batch_run_grains_targeting(self):
|
|
|
|
'''
|
|
|
|
Tests executing a batch command using a percentage divisor as well as grains
|
|
|
|
targeting.
|
|
|
|
'''
|
|
|
|
os_grain = ''
|
|
|
|
ret = ['',
|
|
|
|
"Executing run on ['sub_minion']",
|
|
|
|
'',
|
|
|
|
'retcode:',
|
|
|
|
' 0',
|
|
|
|
'sub_minion:',
|
|
|
|
' True',
|
|
|
|
'',
|
|
|
|
"Executing run on ['minion']",
|
|
|
|
'',
|
|
|
|
'minion:',
|
|
|
|
' True',
|
|
|
|
'retcode:',
|
|
|
|
' 0']
|
|
|
|
|
|
|
|
for item in self.run_salt('minion grains.get os'):
|
|
|
|
if item != 'minion':
|
|
|
|
os_grain = item
|
|
|
|
|
|
|
|
os_grain = os_grain.strip()
|
|
|
|
cmd = sorted(self.run_salt('-G \'os:{0}\' -b 25% test.ping'.format(os_grain)))
|
|
|
|
self.assertListEqual(cmd, sorted(ret))
|
|
|
|
|
2014-07-09 21:41:18 +00:00
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
from integration import run_tests
|
2014-07-09 22:22:00 +00:00
|
|
|
run_tests(BatchTest)
|