From 62e417c18464f9d9f6bcad31b61ecdc18180812a Mon Sep 17 00:00:00 2001 From: rexlee8776 Date: Mon, 5 Jun 2017 20:31:02 +0000 Subject: Add API to update hosts info about SUT JIRA: YARDSTICK-674 For some SUT which use domain name as endpoint and AUTH_URL, yardstick restAPI should support to add "ip domain_name" info into /etc/hosts so that it can use the ip_address to access the SUT. api: /yardstick/env/action description: update hosts info for domain name method: POST parameters: { "action": "update_hosts", "args": {"opnfv.org": "1.1.1.1", "openstack.org": "2.2.2.2" } } Change-Id: Iaca9c846f02b1d53e2408d6a21f9201b599717d4 Signed-off-by: rexlee8776 --- api/resources/env_action.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'api') diff --git a/api/resources/env_action.py b/api/resources/env_action.py index 3536559b7..62ec78640 100644 --- a/api/resources/env_action.py +++ b/api/resources/env_action.py @@ -362,3 +362,16 @@ def upload_pod_file(args): logger.info('Writing finished') return result_handler(consts.API_SUCCESS, {'pod_info': data}) + + +def update_hosts(hosts_ip): + if not isinstance(hosts_ip, dict): + return result_handler(consts.API_ERROR, 'Error, args should be a dict') + logger.info('Writing hosts: Writing') + hosts_list = ['\n{} {}'.format(ip, host_name) + for host_name, ip in hosts_ip.items()] + logger.debug('Writing: %s', hosts_list) + with open(consts.ETC_HOSTS, 'a') as f: + f.writelines(hosts_list) + logger.info('Writing hosts: Done') + return result_handler(consts.API_SUCCESS, 'success') -- cgit 1.2.3-korg