-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathhapra.py
136 lines (116 loc) · 2.98 KB
/
hapra.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# -*- coding: utf-8 -*-
from flask import *
from haproxy.haproxy import *
from flask import jsonify
import json
from serializers import *
hc = HAProxyConfig('/home/aybuke/repo/hapra/haproxy.cfg')
def makeLink(url):
return "<a href='%s'>%s</a><br>" %(url, url)
app = Flask(__name__)
@app.route("/")
def index():
i = ""
i += makeLink('/all')
i += makeLink('/global')
i += makeLink('/defaults')
i += makeLink('/frontend/http_proxy')
i += makeLink('/backend/app')
i += makeLink('/listen/appli1-rewrite')
i += makeLink('/frontends')
i += makeLink('/backends')
i += makeLink('/listens')
return i
@app.route('/global')
def globalh():
g = hc.globalh
gj = GlobalJSON(g).json
gj = json.loads(gj)
return jsonify(status='OK', globalh=gj)
@app.route('/defaults')
def defaults():
d = hc.defaults
dj = DefaultsJSON(d).json
dj = json.loads(dj)
return jsonify(status='OK', defaults=dj)
@app.route('/frontend/<name>')
def frontend(name):
f = hc.getFrontend(name)
fj = FrontendJSON(f).json
fj = json.loads(fj)
return jsonify(status='OK', frontend=fj)
@app.route('/backend/<name>')
def backend(name):
b = hc.getBackend(name)
bj = BackendJSON(b).json
bj = json.loads(bj)
return jsonify(status='OK', backend=bj)
@app.route('/listen/<name>')
def listen(name):
l = hc.getListen(name)
lj = ListenJSON(l).json
lj = json.loads(lj)
return jsonify(status='OK', listen=lj)
@app.route('/frontends')
def frontends():
fs = hc.getFrontends()
fsa = []
for f in fs:
fj = FrontendJSON(f).json
fj = json.loads(fj)
fsa.append(fj)
return jsonify(status='OK', frontends=fsa)
@app.route('/backends')
def backends():
bs = hc.getBackends()
bsa = []
for b in bs:
bj = BackendJSON(b).json
bj = json.loads(bj)
bsa.append(bj)
return jsonify(status='OK', backends=bsa)
@app.route('/listens')
def listens():
ls = hc.getListens()
lsa = []
for l in ls:
lj = ListenJSON(l).json
lj = json.loads(lj)
lsa.append(lj)
return jsonify(status='OK', listens=lsa)
@app.route('/all')
def getall():
g = hc.globalh
gj = GlobalJSON(g).json
gj = json.loads(gj)
gson = {'global':gj}
d = hc.defaults
dj = DefaultsJSON(d).json
dj = json.loads(dj)
dson = {'defaults':dj}
fs = hc.getFrontends()
fsa = []
for f in fs:
fj = FrontendJSON(f).json
fj = json.loads(fj)
fsa.append(fj)
fson = {'frontens':fj}
bs = hc.getBackends()
bsa = []
for b in bs:
bj = BackendJSON(b).json
bj = json.loads(bj)
bsa.append(bj)
bson = {'backends':bj}
ls = hc.getListens()
lsa = []
for l in ls:
lj = ListenJSON(l).json
lj = json.loads(lj)
lsa.append(lj)
lson = {'listens':lj}
config= [gson, dson, fson, bson, lson]
return jsonify(status='OK', Config=config)
if __name__ == "__main__":
app.debug = True
app.run()