{% extends "base.html" %} {% import '_ui.html' as ui %} {% block title %}{{ filename }} - Blancco Report{% endblock %} {% set meta = data.meta or {} %} {% set company = data.company or {} %} {% set hw = data.hardware or {} %} {% set sysinfo = hw.system or {} %} {% set bios = hw.bios or {} %} {% set memsum = hw.memory or {} %} {# Bytes to GB / TB in decimal units, as drive makers and the reports list use. #} {% macro hbytes(n) -%} {%- set n = (n | int) -%} {%- if n >= 1000000000000 -%} {{ "%.2f"|format(n / 1000000000000) }} TB {%- elif n >= 1000000000 -%} {{ "%.0f"|format(n / 1000000000) }} GB {%- elif n >= 1000000 -%} {{ "%.0f"|format(n / 1000000) }} MB {%- else -%} {{ n }} B {%- endif -%} {%- endmacro %} {% block extra_head %} {% endblock %} {% block content %} {% set n_drives = outcomes | length %} {% set n_ok = outcomes.values() | selectattr('ok') | list | length %} {% set standards = outcomes.values() | selectattr('ok') | map(attribute='standard') | reject('equalto', '') | unique | list %} {% set first = (data.erasures or [{}])[0] %}
Blancco reports{% if when %} / {{ when.strftime('%B %Y') }}{% endif %}

{{ sysinfo.serial or filename }} {{ sysinfo.model }} {% if result == 'Successful' %}{{ ui.chip('Successful', 'ok') }}{% elif result == 'Failed' %}{{ ui.chip('Failed', 'fail') }}{% else %}{{ ui.chip('No erasure recorded', 'off') }}{% endif %}

Download XML {% if note %}{% endif %}
{% if failed and not destroyed %}
{% for e in failed %}{{ (e.target or {}).model }} {{ (e.target or {}).serial }}{{ ', ' if not loop.last }}{% endfor %} {{ 'was' if failed | length == 1 else 'were' }} not erased. Remove and destroy it, record the Certificate of Destruction on the RITM, then mark it on the to-do.
{% elif failed and destroyed %}
Certificate of Destruction recorded {{ destroyed.ts | local_dt }}.
{% endif %}
Result
{% if n_drives %}{{ n_ok }} of {{ n_drives }} drive{{ 's' if n_drives != 1 }} wiped{% else %}No erasure{% endif %}
Erased
{{ when.strftime('%d %b %Y') if when else '-' }}
{{ when.strftime('%-I:%M %p %Z') if when else (meta.date or '') }}
Standard
{{ standards | join(', ') if standards else (first.erasure_standard_name or '-') }}
Blancco cloud
{{ 'Sent' if cloud == 'sent' else ('Not sent' if cloud == 'failed' else 'No status') }}
ServiceNow
{{ 'Ticked' if ticked else 'To tick' }}
{{ '"Blancco Wipe failed"' if note else '"Wiped"' }}{% if ticked %}, {{ ticked | local_dt }}{% endif %}
{% set groups = {} %} {% for er in data.erasures %}{% set t = er.target or {} %}{% set _ = groups.setdefault(t.serial or ('#' ~ loop.index0), []).append(er) %}{% endfor %} {% for key, ers in groups.items() %} {% set t = ers[0].target or {} %} {% set ok = ers | selectattr('state', 'equalto', 'Successful') | list | length > 0 %}

{{ t.vendor or '' }} {{ t.model or 'Drive' }} {{ t.serial }}

{{ ui.chip('Erased' if ok else 'Not erased', 'ok' if ok else 'fail') }}
{{ hbytes(t.capacity or 0) }}{% if t.interface_type %} | {{ t.interface_type }}{% endif %}{% if t.health %} | health {{ t.health }}{% endif %}
{% for er in ers %} {% set steps = (er.steps or {}).step %} {% if steps is not iterable or steps is string or steps is mapping %}{% set steps = [steps] if steps else [] %}{% endif %} {% set good = (er.state or '') | lower == 'successful' %}
Attempt {{ loop.index }}{{ er.erasure_standard_name or '-' }}{{ er.elapsed_time or '' }} {{ ui.chip(er.state or 'Unknown', 'ok' if good else 'fail') }}
{% if steps %} {% endif %} {% if not good %}
{{ blancco_failure_reason(er) }}
{% endif %}
Steps and error counts {% if steps %} {% for st in steps %}{% endfor %}
#StepPatternStateElapsedErrors
{{ st.number or loop.index }}{{ st.type or '-' }}{{ st.pattern or '-' }} {{ st.state or '-' }}{{ st.elapsed_time or '-' }}{{ st.errors or 0 }}
{% endif %}
Errors
total {{ er.total_errors or 0 }}, read {{ er.read_errors or 0 }}, mismatch {{ er.mismatch_errors or 0 }}
Sectors
{{ er.processed_sectors or '-' }} of {{ t.sectors or '-' }}
Started
{{ er.start_time or '-' }}
Ended
{{ er.end_time or '-' }}
{% endfor %}
{% else %}
This report has no erasure entries.
{% endfor %}

System

Manufacturer
{{ sysinfo.manufacturer or '-' }}
Model
{{ sysinfo.model or '-' }}
Serial
{{ sysinfo.serial or '-' }}
Chassis
{{ sysinfo.chassis_type or '-' }}
BIOS
{{ bios.vendor or '-' }} {{ bios.version or '' }}
Boot
{{ sysinfo.bios_mode or '-' }}{% if sysinfo.secure_boot_state %}, Secure Boot {{ sysinfo.secure_boot_state }}{% endif %}

Customer

Business
{{ company.business_name or '-' }}
Location
{{ company.business_location or '-' }}
Licence
{{ company.customer_license or '-' }}
{% for k, v in company.items() if k not in ['business_name', 'business_location', 'customer_license'] %}
{{ k | replace('_', ' ') | capitalize }}
{{ v }}
{% endfor %}
Provenance
Document
{{ meta.document_id or '-' }}{% if meta.document_id %} {% endif %}
Product
{{ meta.product_name }} {{ meta.product_version }}{% if meta.product_revision %} ({{ meta.product_revision }}){% endif %}
Generated
{{ meta.date or '-' }}
{% if data.license_consumption_ids %}
Licence IDs
{{ data.license_consumption_ids | join(', ') }}
{% endif %}
File
{{ filename }}
Integrity
{{ meta.integrity or '-' }} {% if meta.integrity %}{% endif %}
{% endblock %}