1
0
Fork 0
docker-easy-haproxy/swarm.py
2019-07-17 22:12:04 -05:00

53 lines
1.7 KiB
Python

import os
import json
from easymapping import HaproxyConfigGenerator
# path = os.path.dirname(os.path.realpath(__file__))
with open("/tmp/.docker_data", 'r') as content_file:
lineList = content_file.readlines()
result = {
"easymapping": []
}
if os.getenv("HAPROXY_USERNAME"):
result["stats"] = {
"username": os.getenv("HAPROXY_USERNAME"),
"password": os.getenv("HAPROXY_PASSWORD"),
"port": os.getenv("HAPROXY_STATS_PORT"),
}
for line in lineList:
line = line.strip()
i = line.find("=")
container = line[:i]
jsonStr = line[i+1:]
d = json.loads(jsonStr)
if "com.byjg.easyhaproxy.definitions" in d.keys():
definitions = d["com.byjg.easyhaproxy.definitions"].split(",")
for definition in definitions:
port = d["com.byjg.easyhaproxy.port." + definition] if "com.byjg.easyhaproxy.port." + definition in d else "80"
data = {
"port": port,
"hosts": dict(),
"redirect": dict(),
# "ssl_cert": ""
}
data["hosts"][d["com.byjg.easyhaproxy.host." + definition] if "com.byjg.easyhaproxy.host." + definition in d else ""] = container + ":" + (d["com.byjg.easyhaproxy.localport." + definition] if "com.byjg.easyhaproxy.localport." + definition in d else "80")
redirect = d["com.byjg.easyhaproxy.redirect." + definition] if "com.byjg.easyhaproxy.redirect." + definition in d else ""
for r in redirect.split(","):
r_parts = r.split("--")
data["redirect"][r_parts[0]] = r_parts[1]
result["easymapping"].append(data)
cfg = HaproxyConfigGenerator(result)
print(cfg.generate())
# print(jsonStr)