{# Imaging floor rows. Rendered standalone by /imaging/tiles for the SSE refresh, and included by imaging.html and the Overview for first paint. Receives `sessions` (already in floor order, each with floor_state), and optionally `compact` / `more` from the Overview. One line per PC; everything else is in the row's expandable body. #} {% import '_ui.html' as ui %} {% set stage_labels = { 1: ('Booting from PXE', 'WinPE loaded - applying Windows image to disk.'), 2: ('Configuring Windows', 'First boot. Running shopfloor setup baseline scripts.'), 3: ('Installing apps', 'Type-specific app installs (eDNC, UDC, NTLARS, etc).'), 4: ('Apps installed', 'Type-specific scripts complete. Preparing for Intune enrollment.'), 5: ('Enrolling in Intune', 'PPKG installing - device joining Azure AD + Intune. ~5-10 min, reboot to follow.'), 6: ('Waiting on first Intune sync','Post-PPKG settle (~120s). Triggering Schedule #3 sync repeatedly.'), 7: ('Registered - assign category', 'Phase 1 (Intune Registration) complete. Click "set category" in the Intune portal to drop the bay into the right config-profile group.'), 8: ('Imaging complete', 'Lockdown applied. Bay rebooted into ShopFloor session. Ready for production.') } %} {# Blancco Drive Eraser sessions (source/pctype "blancco"), posted by blancco-init.sh and blancco-progress.py; stage_total 7. #} {% set blancco_stage_labels = { 1: ('Downloading Blancco', 'PXE boot: loading the Blancco image into RAM.'), 2: ('Starting Blancco', 'Blancco is starting up.'), 3: ('Licensing', 'Waiting for the Blancco cloud licence (WiFi INTERNETACCESS).'), 4: ('Erasing', 'Drive erasure in progress. Do not power off.'), 5: ('Erasure finished', 'Report saved on the PC.'), 6: ('Report sent', 'Report uploaded to the Blancco cloud; a copy goes to the share.'), 7: ('Wipe complete', 'Erasure succeeded. Report is on the Blancco reports share.') } %} {% set inferred_stage_labels = { 'stage_0_dhcp': ('DHCP lease issued', 'Client got a DHCP lease but has not fetched the bootloader yet.'), 'stage_0_tftp_bios': ('TFTP bootloader (BIOS)','Client fetched undionly.kpxe via TFTP. Booting iPXE.'), 'stage_0_tftp_uefi': ('TFTP bootloader (UEFI)','Client fetched ipxe.efi via TFTP. Booting iPXE.'), 'stage_0_menu': ('Boot menu loaded', 'Client loaded the iPXE menu. Waiting on selection or auto-boot.'), 'stage_0_boot_pre': ('Pre-boot fetch', 'Client downloading WinPE boot files from HTTP.'), 'stage_1_wim_get': ('Downloading boot.wim', 'Client pulling WinPE image. No /imaging/status push yet.'), 'stage_2_smb_winpe': ('WinPE running (no push)','Client has opened SMB shares - WinPE is up but startnet has not pushed status.'), } %} {% set state_chip = { 'failed': ('Failed', 'fail'), 'action': ('Needs action', 'act'), 'running': ('In progress', 'run'), 'done': ('Done', 'ok'), 'logs': ('Seen in logs', 'off'), } %} {% set track_kind = {'failed': 'fail', 'action': 'act', 'running': 'run', 'done': 'ok'} %} {% macro floor_row(s) %} {% set is_inferred = (s.source == 'inferred') %} {% set is_blancco = (s.source == 'blancco' or s.pctype == 'blancco') %} {% set stage_idx = (s.stage_index or 0) | int(0) %} {% set stage_total = (s.stage_total or 0) | int(0) %} {% set state = s.floor_state or 'running' %} {% set drive_pct = None %} {% if is_blancco and stage_idx == 4 and s.current_stage and '%]' in s.current_stage %} {% set drive_pct = s.current_stage.split('[')[-1].split('%')[0] | int(0) %} {% endif %} {% set warn = False %} {% if is_inferred %} {% set friendly = inferred_stage_labels.get(s.current_stage, ('Inferred from logs', s.current_stage or '')) %} {% elif is_blancco %} {% if s.status == 'failed' %} {% set friendly = ('Erasure FAILED', 'Blancco reported a failed erasure step. Check the log tail and the report.') %} {% else %} {% set friendly = blancco_stage_labels.get(stage_idx, ('Stage ' ~ stage_idx, '')) %} {% endif %} {% if stage_idx == 4 and s.status != 'failed' %}{% set warn = True %}{% endif %} {% else %} {% set friendly = stage_labels.get(stage_idx, ('Stage ' ~ stage_idx, '')) %} {% if stage_idx == 1 and s.current_stage and 'bios' in s.current_stage|lower %} {% set friendly = ('Updating BIOS: do not power off', 'WinPE detected a firmware update for this model. Do NOT power off until the next reboot. Imaging continues afterward.') %} {% set warn = True %} {% endif %} {% if stage_idx == 7 and s.current_stage %} {% set _cs = s.current_stage|lower %} {% if 'ready for lockdown' in _cs or 'request lockdown' in _cs %} {% set friendly = ('Ready - request lockdown', 'Phase 1-4 all complete (Registration, Device Config, Software Deploy, Credentials). Click "ARTS request" to initiate the lockdown workflow.') %} {% elif 'credentials' in _cs or 'phase 4' in _cs %} {% set friendly = ('Phase 3 / 4 - DSC + credentials', 'SFLD policy delivered, DSC pulling device-config.yaml + running per-app wrappers. SFLD share creds populating.') %} {% elif 'sfld policy' in _cs or 'phase 2' in _cs or 'device configuration' in _cs %} {% set friendly = ('Phase 2 - device configuration', 'Category was assigned in Intune. SFLD ConfigurationProfile (Function + SasToken) has delivered. DSC kicking off next.') %} {% endif %} {% endif %} {% endif %} {% set label = friendly[0] %} {% if drive_pct is not none and s.status != 'failed' %}{% set label = 'Erasing: ' ~ drive_pct ~ '%' %}{% endif %} {% set card_key = s.serial or ('mac-' ~ (s.mac or 'unknown') ~ '-' ~ (s.ip or '')) %} {% set ident = [] %} {% if s.machinenumber %}{% set _ = ident.append('Machine ' ~ s.machinenumber) %}{% endif %} {% if s.hostname_target and s.serial %}{% set _ = ident.append(s.hostname_target) %}{% endif %} {% if s.ip %}{% set _ = ident.append(s.ip) %}{% endif %} {% set title = s.serial or s.hostname_target or s.mac or s.ip or '(unknown bay)' %} {% set kind = 'Blancco wipe' if is_blancco else (s.pctype or '') %}
{{ friendly[1] }}
{% endif %} {% if s.error %}{% for line in s.log_tail %}{{ line }}
{% endfor %}