{% extends "base.html" %} {% from "_macros.html" import no_data with context %} {% block title %}Diff{% endblock %} {% macro delta(n) -%} {{ '%+d' % n }} {%- endmacro %} {% block content %}

Diff

{% if not snap %} {{ no_data() }} {% elif choices | length < 2 %}
The diff needs two successful snapshots of this account: Refresh again later, or set a scheduled refresh in Settings.
{% else %}
{% for name, label, current in (('old', 'From (older)', old_id), ('new', 'To (newer)', new_id)) %}
{% endfor %}
Default: the latest snapshot against the previous one. ENIs are matched by id, IPs by address; the active scope applies.
{% if error %}
{{ error }}
{% endif %} {% if result %} {% set t = result.totals %}
Snapshot #{{ result.old_id }} ({{ taken[result.old_id] | localtime }}) → #{{ result.new_id }} ({{ taken[result.new_id] | localtime }}): ENIs +{{ t.enis_added }} added −{{ t.enis_removed }} removed {{ t.enis_changed }} changed · IPs +{{ t.ips_added }} added −{{ t.ips_removed }} removed {{ t.ips_changed }} changed · net {{ delta(t.ip_delta) }} IPs

Net IP delta per subnet

{% for d in result.subnets %} {% else %}{% endfor %}
SubnetNameCIDRBeforeAfterΔ
{{ d.subnet_id }}{{ d.name }}{{ d.cidr }} {{ d.old }}{{ d.new }}{{ delta(d.delta) }}
No subnets

Top consumers

Resources whose IP count grew the most.

{% for c in result.consumers %} {% else %}{% endfor %}
ResourceTypeBeforeAfterΔ
{{ c.resource }}{{ c.type_label }}{{ c.old }}{{ c.new }}{{ delta(c.delta) }}
No resource grew.

Changes by owner type, ownership and environment

{% for g in result.groups %}
{{ g.type_label }} · {{ g.owner }} · env {{ g.env or not_set }} · ENIs +{{ g.count('enis', 'added') }} / −{{ g.count('enis', 'removed') }} / ~{{ g.count('enis', 'changed') }} · IPs +{{ g.count('ips', 'added') }} / −{{ g.count('ips', 'removed') }} / ~{{ g.count('ips', 'changed') }} · net {{ delta(g.ip_delta) }} {% if g.enis %} {% for e in g.enis %} {% endfor %}
ChangeENIResourceSubnetDetails
{{ e.kind }} {{ e.eni_id }}{{ e.resource }}{{ e.subnet_id }} {% if e.kind == 'added' %}{{ e.new_ips | join(', ') }}{% elif e.kind == 'removed' %}{{ e.old_ips | join(', ') }}{% else %}{{ e.details | join('; ') }}{% endif %}
{% endif %} {% if g.ips %} {% for i in g.ips %} {% endfor %}
ChangeIPResourceSubnetENI
{{ i.kind }} {{ i.ip }}{{ i.resource }}{{ i.subnet_id }} {{ i.detail or i.new_eni or i.old_eni }}
{% endif %}
{% else %}
No ENI or IP changes between these snapshots.
{% endfor %} {% endif %} {% endif %} {% endblock %}