diff options
Diffstat (limited to 'func/driver.py')
-rw-r--r-- | func/driver.py | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/func/driver.py b/func/driver.py index f26f63db..859e7f34 100644 --- a/func/driver.py +++ b/func/driver.py @@ -6,9 +6,8 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -import os -import json import logging +from func.ansible_api import AnsibleApi class Driver: @@ -30,14 +29,15 @@ class Driver: z.update(y) return z - def get_common_var_json(self, benchmark_fname, benchmark_detail, pip_dict, proxy_info): + def get_common_var_json(self, installer_type, pwd, benchmark_fname, + benchmark_detail, pip_dict, proxy_info): common_json = {'Dest_dir': 'results', 'ip1': '', 'ip2': '', - 'installer': str(os.environ['INSTALLER_TYPE']), - 'workingdir': str(os.environ['PWD']), + 'installer': str(installer_type), + 'workingdir': str(pwd), 'fname': str(benchmark_fname), - 'username': self.installer_username[str(os.environ['INSTALLER_TYPE'])]} + 'username': self.installer_username[str(installer_type)]} common_json.update(benchmark_detail) if benchmark_detail else None common_json.update(proxy_info) if proxy_info else None return common_json @@ -54,18 +54,19 @@ 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, + def drive_bench(self, installer_type, pwd, benchmark, roles, benchmark_fname, benchmark_detail=None, pip_dict=None, proxy_info=None): roles = sorted(roles) pip_dict = sorted(pip_dict) - var_json = self.get_common_var_json(benchmark_fname, benchmark_detail, pip_dict, proxy_info) + var_json = self.get_common_var_json(installer_type, pwd, benchmark_fname, + benchmark_detail, pip_dict, proxy_info) map(lambda role: self.run_ansible_playbook (benchmark, self.merge_two_dicts(var_json, self.get_special_var_json(role, roles, |