diff options
-rwxr-xr-x | data/qtip_creds.sh | 4 | ||||
-rw-r--r-- | func/driver.py | 14 | ||||
-rw-r--r-- | tests/driver_test.py | 15 |
3 files changed, 15 insertions, 18 deletions
diff --git a/data/qtip_creds.sh b/data/qtip_creds.sh index 6f19305a..beb4659f 100755 --- a/data/qtip_creds.sh +++ b/data/qtip_creds.sh @@ -3,7 +3,7 @@ DEST_IP=$1 echo $INSTALLER_TYPE echo $INSTALLER_IP -sshoptions="-o StrictHostKeyChecking=no" +sshoptions="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" case "$INSTALLER_TYPE" in apex) scp $sshoptions -i $APEX_KEY ./data/QtipKey.pub stack@$INSTALLER_IP:/home/stack @@ -14,7 +14,7 @@ case "$INSTALLER_TYPE" in PSWD="r00tme" sshpass -p $PSWD scp $sshoptions ./data/QtipKey.pub root@$INSTALLER_IP:/root sshpass -p $PSWD scp $sshoptions ./data/QtipKey root@$INSTALLER_IP:/root - sshpass -p $PSWD ssh $sshoptions root@$INSTALLER_IP "grep -q '\-F /dev/null ' /usr/bin/ssh-copy-id || sed -i 's/\(ssh -i.*$\)/\1\n -F \/dev\/null \\\/g' `which ssh-copy-id`" + sshpass -p $PSWD ssh $sshoptions root@$INSTALLER_IP "grep -q '\-F /dev/null ' /usr/bin/ssh-copy-id || sed -i 's/\(ssh -i.*$\)/\1\n -F \/dev\/null \\\/g' `which ssh-copy-id`" sshpass -p $PSWD ssh $sshoptions root@$INSTALLER_IP "ssh-copy-id $sshoptions -i /root/QtipKey root@$DEST_IP && rm -rf /root/QtipKey && rm -rf /root/QtipKey.pub" ;; compass) diff --git a/func/driver.py b/func/driver.py index f26f63db..4ce402a4 100644 --- a/func/driver.py +++ b/func/driver.py @@ -7,8 +7,8 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## import os -import json import logging +from func.ansible_api import AnsibleApi class Driver: @@ -54,12 +54,12 @@ class Driver: return special_json def run_ansible_playbook(self, benchmark, extra_vars): - extra_vars_json = json.dumps(dict(extra_vars.items())) - logging.info(extra_vars_json) - run_play = 'ansible-playbook ./benchmarks/playbooks/{0}.yaml' \ - '--private-key=./data/QtipKey -i ./data/hosts --extra-vars \'{1}\'' \ - .format(benchmark, extra_vars_json) - os.system(run_play) + logging.info(extra_vars) + ansible_api = AnsibleApi() + ansible_api.execute_playbook('./data/hosts', + './benchmarks/playbooks/{0}.yaml'.format(benchmark), + './data/QtipKey', extra_vars) + return ansible_api.get_detail_playbook_stats() def drive_bench(self, benchmark, roles, benchmark_fname, benchmark_detail=None, pip_dict=None, proxy_info=None): diff --git a/tests/driver_test.py b/tests/driver_test.py index a5b13588..9517d26d 100644 --- a/tests/driver_test.py +++ b/tests/driver_test.py @@ -1,7 +1,6 @@ import pytest import mock import os -import json from func.driver import Driver @@ -61,18 +60,16 @@ class TestClass: 'bandwidthGbps': 0, "role": "2-host"}]) ]) - @mock.patch('func.driver.os.system') - def test_driver_success(self, mock_system, test_input, expected): - mock_system.return_value = True + @mock.patch('func.driver.AnsibleApi') + def test_driver_success(self, mock_ansible, test_input, expected): + mock_ansible.execute_playbook.return_value = True k = mock.patch.dict(os.environ, {'INSTALLER_TYPE': test_input[6], 'PWD': '/home'}) k.start() dri = Driver() dri.drive_bench(test_input[0], test_input[1], test_input[2], test_input[3], test_input[4], test_input[5]) - call_list = mock_system.call_args_list + call_list = mock_ansible.execute_playbook.call_args_list k.stop() - print call_list for call in call_list: call_args, call_kwargs = call - real_call = call_args[0].split('extra-vars \'')[1] - real_call = real_call[0: len(real_call) - 1] - assert json.loads(real_call) == json.loads(json.dumps(expected[call_list.index(call)])) + real_call = call_args[3] + assert real_call == expected[call_list.index(call)] |