surok/surok/system.py

63 lines
1.4 KiB
Python
Raw Normal View History

2016-08-01 15:24:13 +03:00
import os
2016-08-17 12:13:02 +03:00
import logging
2016-08-01 15:24:13 +03:00
2016-08-01 16:09:07 +03:00
2016-08-17 12:13:02 +03:00
# Get old configuration
2016-08-01 16:09:07 +03:00
def get_old(name, service_conf):
2016-08-17 12:13:02 +03:00
2016-08-01 16:09:07 +03:00
try:
path = '/var/tmp/surok.' + name
f = open(path, 'r')
old = f.read()
f.close()
except Exception as e:
print(str(e))
return 0
if old == service_conf:
return 1
else:
return 0
2016-08-17 12:13:02 +03:00
2016-08-01 16:09:07 +03:00
def write_lock(name, service_conf):
path = '/var/tmp/surok.' + name
f = open(path, 'w')
2016-08-01 15:24:13 +03:00
f.write(service_conf)
f.close()
2016-08-01 16:09:07 +03:00
def do_reload(service_conf, app_conf):
2016-08-17 12:13:02 +03:00
logging.warning('Write new configuration of ' + app_conf['conf_name'])
2016-08-01 16:09:07 +03:00
f = open(app_conf['dest'], 'w')
f.write(service_conf)
f.close()
2016-08-01 16:09:07 +03:00
write_lock(app_conf['conf_name'], service_conf)
2016-08-01 16:09:07 +03:00
# Reload conf
stdout = os.popen(app_conf['reload_cmd']).read()
return stdout
2016-08-17 12:13:02 +03:00
def reload_conf(service_conf, app_conf, first, conf):
# Check first loop
2016-08-17 12:13:02 +03:00
if first is True:
stdout = do_reload(service_conf, app_conf)
first = False
2016-08-17 12:13:02 +03:00
logging.info(stdout)
return first
if get_old(app_conf['conf_name'], service_conf) != 1:
stdout = do_reload(service_conf, app_conf)
2016-08-17 12:13:02 +03:00
logging.info(stdout)
return first
2016-08-01 16:09:07 +03:00
else:
2016-08-17 12:13:02 +03:00
if conf['loglevel'] == 'debug':
logging.debug('Same config ' +
app_conf['conf_name'] +
' Skip reload')
return first