{% extends "base.html" %} {% block title %}Violations — vmware-harden{% endblock %} {% block content %}

Violations

{% if coverage_note %}

Partial coverage — this is not a clean bill of health.

{{ coverage_note }}

{# Guarded: coverage can be partial for node reasons alone, and an empty "Rules that were not evaluated (0)" disclosure reads as a broken page. #} {% if coverage.undetermined %}
Rules that were not evaluated ({{ coverage.undetermined }})
{% endif %} {# A separate disclosure, not more rows in the one above: these rules ran. What to do about them is different — check the node's reachability and the scanning account's privileges, rather than wait for a collector. #} {% if coverage.undetermined_node_checks %}
Nodes a rule could not judge, for want of data ({{ coverage.node_checks_undetermined }})
{% endif %}
{% endif %} {% if not has_data or violations|length == 0 %}
{# Never claim compliance on an incomplete scan: "no violations" only means "nothing found among the rules that ran". #} {% if coverage and not coverage.complete %}

No violations among the checks that could be made.

{# Each figure only when it exists. An unmeasured snapshot has neither, and printing "0 of 0 rules were not evaluated" beside a warning banner states a fact where the truth is that nothing is known. #} {% if coverage.undetermined %}

{{ coverage.undetermined }} of {{ coverage.total }} rules were not evaluated.

{% endif %} {% if coverage.node_checks_undetermined %}

{{ coverage.node_checks_undetermined }} of {{ coverage.node_checks_total }} per-node checks could not be made, across {{ coverage.nodes_affected }} node(s).

{% endif %}

See above. Compliance is unknown, not confirmed.

{% else %}

No violations.

Either no scans have run, or the estate is compliant against every rule in this baseline.

{% endif %}
{% else %}
Showing {{ violations|length }} of {{ total }} violations (page {{ page }}) from latest snapshot.
{% for v in violations %} {% endfor %}
Severity Rule Node Baseline Evidence
{{ v.severity|upper }} {{ v.rule_id }}
{{ v.node_id }}
{% if v.node_name %}
{{ v.node_name }}
{% endif %}
{{ v.baseline_id }}
{% if has_prev or has_next %}
{% if has_prev %} ← Previous {% else %}{% endif %} Page {{ page }} {% if has_next %} Next → {% else %}{% endif %}
{% endif %} {% endif %} {% endblock %}