ntp fix.
[ta/infra-ansible.git] / roles / ntp-utils / library / tune_master_server_params.py
1 #!/bin/env python
2 # pylint: skip-file
3 from ansible.module_utils.basic import AnsibleModule
4 import os
5 import re
6
7 if __name__ == '__main__':
8     fields = {
9             "server_extra_params": {"required":True, "type": str},
10     }
11
12     module = AnsibleModule(argument_spec=fields)
13
14     server_extra_params = module.params['server_extra_params']
15
16     ntp_file = "/etc/ntp.conf"
17     tmp_file = "/etc/ntp.conf.mod"
18
19     try:
20         filter = re.compile('^server.*')
21         lines = []
22         with open(ntp_file, 'r') as f:
23             lines = f.readlines()
24
25         updated = []
26         if lines:
27             for line in lines:
28                 if filter.match(line) and line.find(server_extra_params) == -1:
29                     tmp = line.split('\n')[0]
30                     tmp = tmp + " " + server_extra_params + '\n'
31                     updated.append(tmp)
32                 else:
33                     updated.append(line)
34
35             with open(tmp_file, 'w') as f:
36                 for line in updated:
37                     f.write(line)
38
39             os.rename(tmp_file, ntp_file)
40
41             module.exit_json(changed=True)
42                     
43     except Exception as exp:
44         module.fail_json(msg=str(ex))