added path to routing
This commit is contained in:
parent
7fd2531501
commit
85e29b8734
4 changed files with 84 additions and 30 deletions
22
panel-api.py
22
panel-api.py
|
|
@ -351,11 +351,11 @@ class Handler(BaseHTTPRequestHandler):
|
|||
entry = entry.strip()
|
||||
if not entry:
|
||||
continue
|
||||
if "|" in entry:
|
||||
domain, upstream = entry.split("|", 1)
|
||||
routes.append({"domain": domain.strip(), "upstream": upstream.strip()})
|
||||
else:
|
||||
routes.append({"domain": entry.strip(), "upstream": ""})
|
||||
parts = entry.split("|", 2)
|
||||
route = {"domain": parts[0].strip(), "upstream": parts[1].strip()}
|
||||
if len(parts) > 2:
|
||||
route["path"] = parts[2].strip()
|
||||
routes.append(route)
|
||||
self._json(200, {"ok": True, "name": name, "routes": routes})
|
||||
return
|
||||
|
||||
|
|
@ -589,8 +589,12 @@ class Handler(BaseHTTPRequestHandler):
|
|||
for r in payload["routes"]:
|
||||
d = r.get("domain", "").strip()
|
||||
u = r.get("upstream", "").strip()
|
||||
p = r.get("path", "").strip()
|
||||
if d and u:
|
||||
routes_parts.append(f"{d}|{u}")
|
||||
if p:
|
||||
routes_parts.append(f"{d}|{u}|{p}")
|
||||
else:
|
||||
routes_parts.append(f"{d}|{u}")
|
||||
elif "domain" in payload and "port" in payload:
|
||||
# Backward compat: single domain + port
|
||||
domain_str = payload.get("domain", "")
|
||||
|
|
@ -813,10 +817,14 @@ class Handler(BaseHTTPRequestHandler):
|
|||
for r in route_list:
|
||||
d = r.get("domain", "").strip()
|
||||
u = r.get("upstream", "").strip()
|
||||
p = r.get("path", "").strip()
|
||||
if not d or not u:
|
||||
self._json(400, {"ok": False, "error": "each route needs 'domain' and 'upstream'"})
|
||||
return
|
||||
routes_parts.append(f"{d}|{u}")
|
||||
if p:
|
||||
routes_parts.append(f"{d}|{u}|{p}")
|
||||
else:
|
||||
routes_parts.append(f"{d}|{u}")
|
||||
routes_str = ",".join(routes_parts)
|
||||
result = run_panelctl(["set-routes", name, routes_str])
|
||||
self._json(200 if result["ok"] else 400, result)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue