merge
This commit is contained in:
commit
082b11a47d
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +1,4 @@
|
|||||||
surok/__pycache__
|
surok/__pycache__
|
||||||
__pycache__
|
__pycache__
|
||||||
|
*.pyc
|
||||||
|
*.swp
|
||||||
|
@ -1 +0,0 @@
|
|||||||
{}
|
|
12
conf.d/selfcheck.json
Normal file
12
conf.d/selfcheck.json
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"services": [
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"group": "mesos"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"conf_name": "selfcheck",
|
||||||
|
"template": "templates/selfcheck.jj2",
|
||||||
|
"dest": "selfcheck",
|
||||||
|
"reload_cmd": "/bin/echo selfcheck ok"
|
||||||
|
}
|
@ -1,4 +1,7 @@
|
|||||||
{
|
{
|
||||||
"marathon": "10.0.1.199:8080",
|
"marathon": "TODO",
|
||||||
"confd": "conf.d"
|
"confd": "conf.d",
|
||||||
|
"domain": "marathon.mesos",
|
||||||
|
"wait_time": 20,
|
||||||
|
"lock_dir": "/var/tmp"
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,18 @@
|
|||||||
import dns.resolver
|
import dns.resolver
|
||||||
|
|
||||||
def resolve(app, conf):
|
def resolve(app, conf):
|
||||||
hosts = []
|
hosts = {}
|
||||||
|
services = app['services']
|
||||||
domain = conf['domain']
|
domain = conf['domain']
|
||||||
for rdata in dns.resolver.query('_' + app['name'] + '.' + app['group'] + '._tcp.' + domain, 'SRV'):
|
for service in services:
|
||||||
info = str(rdata).split()
|
hosts[service['name']] = []
|
||||||
server = { 'name': info[3], 'port': info[2] }
|
try:
|
||||||
hosts.append(server)
|
for rdata in dns.resolver.query('_' + service['name'] + '.' + service['group'] + '._tcp.' + domain, 'SRV'):
|
||||||
|
info = str(rdata).split()
|
||||||
|
server = { 'name': info[3], 'port': info[2] }
|
||||||
|
|
||||||
|
hosts[ service['name'] ].append(server)
|
||||||
|
except Exception as e:
|
||||||
|
print("Could not resolve " + service['name'] + '.' + service['group'] + '._tcp.' + domain)
|
||||||
|
|
||||||
return hosts
|
return hosts
|
||||||
|
@ -28,14 +28,14 @@ def write_lock(name, service_conf):
|
|||||||
def reload_conf(service_conf, app_conf):
|
def reload_conf(service_conf, app_conf):
|
||||||
|
|
||||||
# Check old config
|
# Check old config
|
||||||
if get_old(app_conf['name'], service_conf) != 1:
|
if get_old(app_conf['conf_name'], service_conf) != 1:
|
||||||
print('Write new configuration')
|
print('Write new configuration')
|
||||||
|
|
||||||
f = open(app_conf['dest'], 'w')
|
f = open(app_conf['dest'], 'w')
|
||||||
f.write(service_conf)
|
f.write(service_conf)
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
write_lock(app_conf['name'], service_conf)
|
write_lock(app_conf['conf_name'], service_conf)
|
||||||
|
|
||||||
# Reload conf
|
# Reload conf
|
||||||
stdout = os.popen(app_conf['reload_cmd']).read()
|
stdout = os.popen(app_conf['reload_cmd']).read()
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
from jinja2 import Environment, PackageLoader, Template
|
from jinja2 import Environment, PackageLoader, Template
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
# Return rendered configuration
|
# Return rendered configuration
|
||||||
@ -8,5 +9,6 @@ def gen(my, jj2):
|
|||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
template = Template(temp)
|
template = Template(temp)
|
||||||
|
my['env'] = os.environ
|
||||||
|
|
||||||
return template.render(my=my)
|
return template.render(my=my)
|
||||||
|
11
templates/nginx_proxy.jj2
Normal file
11
templates/nginx_proxy.jj2
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{% for host in my['hosts'] %}
|
||||||
|
server {{host['kioskservice']['name']}}:{{host['kioskservice']['port']}};
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 0.0.0.0:80;
|
||||||
|
server_name _;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
}
|
||||||
|
}
|
1
templates/selfcheck.jj2
Normal file
1
templates/selfcheck.jj2
Normal file
@ -0,0 +1 @@
|
|||||||
|
OK
|
Loading…
Reference in New Issue
Block a user