Refactor is_safe_name and read_app_info functions for improved readability
Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
parent
ce60fc8f5c
commit
3b48f38d89
1 changed files with 18 additions and 18 deletions
36
panel-api.py
36
panel-api.py
|
|
@ -407,30 +407,30 @@ INDEX_HTML = """<!doctype html>
|
|||
"""
|
||||
|
||||
|
||||
def is_safe_name(name):
|
||||
return re.match(r"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$", name) is not None
|
||||
def is_safe_name(name):
|
||||
return re.match(r"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$", name) is not None
|
||||
|
||||
|
||||
def read_app_info(name):
|
||||
if not is_safe_name(name):
|
||||
return None, {"ok": False, "error": "invalid app name"}
|
||||
def read_app_info(name):
|
||||
if not is_safe_name(name):
|
||||
return None, {"ok": False, "error": "invalid app name"}
|
||||
|
||||
result = run_panelctl(["show", name])
|
||||
if not result["ok"]:
|
||||
return None, result
|
||||
result = run_panelctl(["show", name])
|
||||
if not result["ok"]:
|
||||
return None, result
|
||||
|
||||
app = parse_env_blob(result["stdout"])
|
||||
compose_file = app.get("APP_COMPOSE_FILE", "")
|
||||
if not compose_file:
|
||||
return None, {"ok": False, "error": "missing APP_COMPOSE_FILE in manifest"}
|
||||
app = parse_env_blob(result["stdout"])
|
||||
compose_file = app.get("APP_COMPOSE_FILE", "")
|
||||
if not compose_file:
|
||||
return None, {"ok": False, "error": "missing APP_COMPOSE_FILE in manifest"}
|
||||
|
||||
base_stacks = os.path.join(BASE_DIR, "stacks") + os.sep
|
||||
norm_compose = os.path.abspath(compose_file)
|
||||
if not norm_compose.startswith(base_stacks):
|
||||
return None, {"ok": False, "error": "compose path is outside allowed base directory"}
|
||||
base_stacks = os.path.join(BASE_DIR, "stacks") + os.sep
|
||||
norm_compose = os.path.abspath(compose_file)
|
||||
if not norm_compose.startswith(base_stacks):
|
||||
return None, {"ok": False, "error": "compose path is outside allowed base directory"}
|
||||
|
||||
app["APP_COMPOSE_FILE"] = norm_compose
|
||||
return app, None
|
||||
app["APP_COMPOSE_FILE"] = norm_compose
|
||||
return app, None
|
||||
|
||||
|
||||
def run_panelctl(args):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue