webapp: scan ppkgs subdir for enrollment packages, not share root
The playbook deploys SFLD provisioning packages to
/srv/samba/enrollment/ppkgs/ but the /enrollment route scanned the
share root. Result: every visit reported "no enrollment packages
found" even though three .ppkg files were present.
Add ENROLLMENT_PPKG_DIR (defaults to {ENROLLMENT_SHARE}/ppkgs,
overridable via env var) and point all four enrollment routes at it
(list, upload, download, delete).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -410,9 +410,9 @@ def blancco_delete_report(filename):
|
|||||||
@app.route("/enrollment")
|
@app.route("/enrollment")
|
||||||
def enrollment():
|
def enrollment():
|
||||||
packages = []
|
packages = []
|
||||||
if os.path.isdir(config.ENROLLMENT_SHARE):
|
if os.path.isdir(config.ENROLLMENT_PPKG_DIR):
|
||||||
for f in sorted(os.listdir(config.ENROLLMENT_SHARE)):
|
for f in sorted(os.listdir(config.ENROLLMENT_PPKG_DIR)):
|
||||||
fpath = os.path.join(config.ENROLLMENT_SHARE, f)
|
fpath = os.path.join(config.ENROLLMENT_PPKG_DIR, f)
|
||||||
if os.path.isfile(fpath) and f.lower().endswith(".ppkg"):
|
if os.path.isfile(fpath) and f.lower().endswith(".ppkg"):
|
||||||
stat = os.stat(fpath)
|
stat = os.stat(fpath)
|
||||||
packages.append({
|
packages.append({
|
||||||
@@ -444,8 +444,8 @@ def enrollment_upload():
|
|||||||
flash("Only .ppkg files are accepted.", "danger")
|
flash("Only .ppkg files are accepted.", "danger")
|
||||||
return redirect(url_for("enrollment"))
|
return redirect(url_for("enrollment"))
|
||||||
|
|
||||||
os.makedirs(config.ENROLLMENT_SHARE, exist_ok=True)
|
os.makedirs(config.ENROLLMENT_PPKG_DIR, exist_ok=True)
|
||||||
dest = os.path.join(config.ENROLLMENT_SHARE, filename)
|
dest = os.path.join(config.ENROLLMENT_PPKG_DIR, filename)
|
||||||
f.save(dest)
|
f.save(dest)
|
||||||
audit("ENROLLMENT_UPLOAD", filename)
|
audit("ENROLLMENT_UPLOAD", filename)
|
||||||
flash(f"Uploaded {filename} successfully.", "success")
|
flash(f"Uploaded {filename} successfully.", "success")
|
||||||
@@ -455,7 +455,7 @@ def enrollment_upload():
|
|||||||
@app.route("/enrollment/download/<filename>")
|
@app.route("/enrollment/download/<filename>")
|
||||||
def enrollment_download(filename):
|
def enrollment_download(filename):
|
||||||
filename = secure_filename(filename)
|
filename = secure_filename(filename)
|
||||||
fpath = os.path.join(config.ENROLLMENT_SHARE, filename)
|
fpath = os.path.join(config.ENROLLMENT_PPKG_DIR, filename)
|
||||||
if not os.path.isfile(fpath):
|
if not os.path.isfile(fpath):
|
||||||
flash(f"Package not found: {filename}", "danger")
|
flash(f"Package not found: {filename}", "danger")
|
||||||
return redirect(url_for("enrollment"))
|
return redirect(url_for("enrollment"))
|
||||||
@@ -465,7 +465,7 @@ def enrollment_download(filename):
|
|||||||
@app.route("/enrollment/delete/<filename>", methods=["POST"])
|
@app.route("/enrollment/delete/<filename>", methods=["POST"])
|
||||||
def enrollment_delete(filename):
|
def enrollment_delete(filename):
|
||||||
filename = secure_filename(filename)
|
filename = secure_filename(filename)
|
||||||
fpath = os.path.join(config.ENROLLMENT_SHARE, filename)
|
fpath = os.path.join(config.ENROLLMENT_PPKG_DIR, filename)
|
||||||
if os.path.isfile(fpath):
|
if os.path.isfile(fpath):
|
||||||
os.remove(fpath)
|
os.remove(fpath)
|
||||||
audit("ENROLLMENT_DELETE", filename)
|
audit("ENROLLMENT_DELETE", filename)
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ SAMBA_SHARE = os.environ.get("SAMBA_SHARE", "/srv/samba/winpeapps")
|
|||||||
CLONEZILLA_SHARE = os.environ.get("CLONEZILLA_SHARE", "/srv/samba/clonezilla")
|
CLONEZILLA_SHARE = os.environ.get("CLONEZILLA_SHARE", "/srv/samba/clonezilla")
|
||||||
BLANCCO_REPORTS = os.environ.get("BLANCCO_REPORTS", "/srv/samba/blancco-reports")
|
BLANCCO_REPORTS = os.environ.get("BLANCCO_REPORTS", "/srv/samba/blancco-reports")
|
||||||
ENROLLMENT_SHARE = os.environ.get("ENROLLMENT_SHARE", "/srv/samba/enrollment")
|
ENROLLMENT_SHARE = os.environ.get("ENROLLMENT_SHARE", "/srv/samba/enrollment")
|
||||||
|
ENROLLMENT_PPKG_DIR = os.environ.get(
|
||||||
|
"ENROLLMENT_PPKG_DIR", os.path.join(ENROLLMENT_SHARE, "ppkgs")
|
||||||
|
)
|
||||||
UPLOAD_DIR = os.environ.get("UPLOAD_DIR", "/home/pxe/image-upload")
|
UPLOAD_DIR = os.environ.get("UPLOAD_DIR", "/home/pxe/image-upload")
|
||||||
SHARED_DIR = os.path.join(SAMBA_SHARE, "_shared")
|
SHARED_DIR = os.path.join(SAMBA_SHARE, "_shared")
|
||||||
WEB_ROOT = os.environ.get("WEB_ROOT", "/var/www/html")
|
WEB_ROOT = os.environ.get("WEB_ROOT", "/var/www/html")
|
||||||
|
|||||||
Reference in New Issue
Block a user