Ensure Media.tag exists for all images after import and via cron

Webapp now creates Deploy/Control/Media.tag after every image import.
Cron updated to create (not just touch) Media.tag for any image
directory that has Deploy/Control/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
cproudlock
2026-02-12 16:58:39 -05:00
parent 0da52cb083
commit 57a53381f2
2 changed files with 11 additions and 2 deletions

View File

@@ -391,9 +391,12 @@
force: no force: no
loop: "{{ image_types }}" loop: "{{ image_types }}"
- name: "Daily cron to refresh Media.tag (PESetup.exe 30-day expiry check)" - name: "Daily cron to create/refresh Media.tag for all images"
copy: copy:
content: "@reboot root find {{ samba_share }}/*/Deploy/Control -name Media.tag -exec touch {} +\n0 0 * * * root find {{ samba_share }}/*/Deploy/Control -name Media.tag -exec touch {} +\n" content: |
# Create Media.tag in any image with Deploy/Control/ and refresh existing ones
@reboot root for d in {{ samba_share }}/*/Deploy/Control; do [ -d "$d" ] && touch "$d/Media.tag"; done
0 0 * * * root for d in {{ samba_share }}/*/Deploy/Control; do [ -d "$d" ] && touch "$d/Media.tag"; done
dest: /etc/cron.d/media-tag-refresh dest: /etc/cron.d/media-tag-refresh
mode: '0644' mode: '0644'

View File

@@ -717,6 +717,12 @@ def images_import():
# Flat layout: treat source as Deploy contents # Flat layout: treat source as Deploy contents
_import_deploy(source, dest, target, move=use_move) _import_deploy(source, dest, target, move=use_move)
# Ensure Media.tag exists (FlatSetupLoader.exe drive detection)
control_dir = os.path.join(dest, "Control")
os.makedirs(control_dir, exist_ok=True)
media_tag = os.path.join(control_dir, "Media.tag")
Path(media_tag).touch()
audit("IMAGE_IMPORT", f"{source} -> {target}") audit("IMAGE_IMPORT", f"{source} -> {target}")
flash( flash(
f"Successfully imported content to {FRIENDLY_NAMES.get(target, target)}.", f"Successfully imported content to {FRIENDLY_NAMES.get(target, target)}.",