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")
|
||||
def enrollment():
|
||||
packages = []
|
||||
if os.path.isdir(config.ENROLLMENT_SHARE):
|
||||
for f in sorted(os.listdir(config.ENROLLMENT_SHARE)):
|
||||
fpath = os.path.join(config.ENROLLMENT_SHARE, f)
|
||||
if os.path.isdir(config.ENROLLMENT_PPKG_DIR):
|
||||
for f in sorted(os.listdir(config.ENROLLMENT_PPKG_DIR)):
|
||||
fpath = os.path.join(config.ENROLLMENT_PPKG_DIR, f)
|
||||
if os.path.isfile(fpath) and f.lower().endswith(".ppkg"):
|
||||
stat = os.stat(fpath)
|
||||
packages.append({
|
||||
@@ -444,8 +444,8 @@ def enrollment_upload():
|
||||
flash("Only .ppkg files are accepted.", "danger")
|
||||
return redirect(url_for("enrollment"))
|
||||
|
||||
os.makedirs(config.ENROLLMENT_SHARE, exist_ok=True)
|
||||
dest = os.path.join(config.ENROLLMENT_SHARE, filename)
|
||||
os.makedirs(config.ENROLLMENT_PPKG_DIR, exist_ok=True)
|
||||
dest = os.path.join(config.ENROLLMENT_PPKG_DIR, filename)
|
||||
f.save(dest)
|
||||
audit("ENROLLMENT_UPLOAD", filename)
|
||||
flash(f"Uploaded {filename} successfully.", "success")
|
||||
@@ -455,7 +455,7 @@ def enrollment_upload():
|
||||
@app.route("/enrollment/download/<filename>")
|
||||
def enrollment_download(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):
|
||||
flash(f"Package not found: {filename}", "danger")
|
||||
return redirect(url_for("enrollment"))
|
||||
@@ -465,7 +465,7 @@ def enrollment_download(filename):
|
||||
@app.route("/enrollment/delete/<filename>", methods=["POST"])
|
||||
def enrollment_delete(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):
|
||||
os.remove(fpath)
|
||||
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")
|
||||
BLANCCO_REPORTS = os.environ.get("BLANCCO_REPORTS", "/srv/samba/blancco-reports")
|
||||
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")
|
||||
SHARED_DIR = os.path.join(SAMBA_SHARE, "_shared")
|
||||
WEB_ROOT = os.environ.get("WEB_ROOT", "/var/www/html")
|
||||
|
||||
Reference in New Issue
Block a user