{% extends "base.html" %} {% block title %}VPC Atlas · {{ tr('History') }}{% endblock %} {% block body %} {% macro resource_groups(label, key, groups) %} {% if groups %}

{{ label }} {{ groups|sum(attribute='count') }}

{% for group in groups %}
{{ group.type }} {{ group.count }}
{% if key == 'changed' %}{% endif %}{% if key == 'unverified' %}{% endif %} {% for row in group.rows %} {% if key == 'changed' %} {% endif %} {% if key == 'unverified' %} {% endif %} {% endfor %}
{{ tr('Name') }}{{ tr('Id') }}{{ tr('Account') }}{{ tr('Region') }}{{ tr('What changed') }}{{ tr('Reason') }}
{{ row.name or '—' }} {{ row.id }} {{ row.account }} {{ row.region }} {% for field in row.fields %}
{{ field.field }}{% if field.valued %}: {{ field.before }} → {{ field.after }}{% endif %}
{% endfor %}
{% if row.not_read_in == 'older' %}{{ tr('not read in the older scan') }}{% else %}{{ tr('not read in the newer scan') }}{% endif %}
{% endfor %} {% endif %} {% endmacro %} {% macro link_changes(label, key, rows) %} {% if rows %}

{{ label }} {{ rows|length }}

{% for row in rows %} {% endfor %}
{{ tr('Source') }}{{ tr('Kind') }}{{ tr('Target') }}
{% if row.source_label %}{{ row.source_label }}
{% endif %}{{ row.source }}
{{ row.kind }} {% if row.target_label %}{{ row.target_label }}
{% endif %}{{ row.target }}
{% if row.cross_account %}{{ tr('cross-account') }}{% endif %}
{% endif %} {% endmacro %}

VPC Atlas

v{{ version }}
{{ tr('History') }} {{ trn('{count} snapshot', '{count} snapshots', rows|length) }}
{{ tr('Diagrams') }}
{% if problem %} {% endif %}

{{ tr('Timeline') }}

{% if rows|length > 1 %} {% set from_id = selected_from or rows[1].snapshot_id %} {% set to_id = selected_to or rows[0].snapshot_id %}
{% endif %}
{% if rows %}
    {% for row in rows %} {% set c = row.counts %}
  1. {{ row.snapshot_id }} {% if loop.first %}{{ tr('latest') }}{% endif %}
    {% if c %} +{{ c.added }} −{{ c.removed }} ~{{ c.changed }} {{ tr('links +{added} −{removed}', added=c.edges_added, removed=c.edges_removed) }} {% if c.unverified %}{{ tr('{count} not verified', count=c.unverified) }}{% endif %} {% else %} {{ tr('First snapshot in the history: nothing to compare it with.') }} {% endif %}
    {% if row.previous_id %} {{ tr('Compare with previous') }} {{ tr('View changes on diagram') }} {% endif %}
  2. {% endfor %}
{% else %}

{{ tr('No snapshots yet. Each scan is kept here as soon as it finishes.') }}

{% endif %}

{{ tr('Changes') }}

{% if compare %} {% endif %}
{% if compare %}

{{ tr('From') }} ({{ compare.older.snapshot_id }}) {{ tr('to') }} ({{ compare.newer.snapshot_id }})

{% set n = view.counts %}
+{{ n.added }}
{{ tr('Resources added') }}
−{{ n.removed }}
{{ tr('Resources removed') }}
~{{ n.changed }}
{{ tr('Resources changed') }}
+{{ n.edges_added }} −{{ n.edges_removed }}
{{ tr('Links added and removed') }}
{{ tr('Cross-account links changed') }}
{% if n.unverified or n.edges_unverified %}
{{ n.unverified }}
{{ tr('Not verified') }}
{% endif %}
{% if compare.is_empty %}

{{ tr('These two snapshots describe the same network: nothing was added, removed or changed.') }}

{% endif %} {{ resource_groups(tr('Resources added'), 'added', view.added) }} {{ resource_groups(tr('Resources removed'), 'removed', view.removed) }} {{ resource_groups(tr('Resources changed'), 'changed', view.changed) }} {{ link_changes(tr('Links added'), 'edges_added', view.edges_added) }} {{ link_changes(tr('Links removed'), 'edges_removed', view.edges_removed) }} {% if view.unverified or view.edges_unverified %}

{{ tr('These resources were in one scan and could not be read in the other: a call for their service was denied, throttled or failed. They are not counted as added or removed.') }}

{% endif %} {{ resource_groups(tr('Not verified'), 'unverified', view.unverified) }} {{ link_changes(tr('Links not verified'), 'edges_unverified', view.edges_unverified) }} {% elif rows|length > 1 %}

{{ tr('Pick two snapshots above to see what changed between them.') }}

{% elif rows %}

{{ tr('The history holds a single snapshot, so there is nothing to compare yet. The next scan will be compared with it.') }}

{% else %}

{{ tr('Nothing to compare yet.') }}

{% endif %}
{% endblock %}