diff options
Diffstat (limited to 'api')
-rw-r--r-- | api/resources/v1/env.py | 2 | ||||
-rw-r--r-- | api/resources/write_hosts.py | 14 |
2 files changed, 12 insertions, 4 deletions
diff --git a/api/resources/v1/env.py b/api/resources/v1/env.py index 8943db3d1..8367fa9eb 100644 --- a/api/resources/v1/env.py +++ b/api/resources/v1/env.py @@ -393,7 +393,7 @@ class V1Env(ApiResource): return result_handler(consts.API_ERROR, 'file must be provided') LOG.info('Checking file') - data = yaml.load(pod_file.read()) + data = yaml.safe_load(pod_file.read()) if not isinstance(data, collections.Mapping): return result_handler(consts.API_ERROR, 'invalid yaml file') diff --git a/api/resources/write_hosts.py b/api/resources/write_hosts.py index e4b69846b..a3025d3b0 100644 --- a/api/resources/write_hosts.py +++ b/api/resources/write_hosts.py @@ -13,11 +13,19 @@ import json def write_hosts(hosts_ip): - hosts_list = ('\n{} {}'.format(ip, host_name) + + yardstick_flag = "# SUT hosts info for Yardstick" + hosts_list = ('\n{} {} {}'.format(ip, host_name, yardstick_flag) for host_name, ip in hosts_ip.items()) - with open("/etc/hosts", 'a') as f: + + with open("/etc/hosts", 'r') as f: + origin_lines = [line for line in f if yardstick_flag not in line] + + with open("/etc/hosts", 'w') as f: + f.writelines(origin_lines) + f.write(yardstick_flag) f.writelines(hosts_list) - f.write("\n") + if __name__ == "__main__": write_hosts(json.load(sys.stdin)) |