summaryrefslogtreecommitdiffstats
path: root/func/driver.py
diff options
context:
space:
mode:
Diffstat (limited to 'func/driver.py')
-rw-r--r--func/driver.py29
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,