{% load i18n sizeformat %}
{% load url from future %}

<h3>{% trans "Instance Overview" %}</h3>

<div class="status row detail">
  <h4>{% trans "Info" %}</h4>
  <hr class="header_rule">
  <dl>
    <dt>{% trans "Name" %}</dt>
    <dd>{{ instance.name }}</dd>
    <dt>{% trans "ID" %}</dt>
    <dd>{{ instance.id }}</dd>
    <dt>{% trans "Status" %}</dt>
    <dd>{{ instance.status|title }}</dd>
    <dt>{% trans "Availability Zone" %}</dt>
    <dd>{{ instance.availability_zone|default:"-" }}</dd>
    <dt>{% trans "Created" %}</dt>
    <dd>{{ instance.created|parse_isotime }}</dd>
    <dt>{% trans "Uptime" %}</dt>
    <dd>{{ instance.created|parse_isotime|timesince }}</dd>
  </dl>
</div>

{% if instance.fault %}
<div class="status row detail">
  <h4>{% trans "Fault" %}</h4>
  <hr class="header_rule">
  <dl>
    <dt>{% trans "Message" %}</dt>
    <dd>{{ instance.fault.message }}</dd>
    <dt>{% trans "Code" %}</dt>
    <dd>{{ instance.fault.code }}</dd>
    <dt>{% trans "Details" %}</dt>
    <dd>{{ instance.fault.details }}</dd>
    <dt>{% trans "Created" %}</dt>
    <dd>{{ instance.fault.created|parse_isotime }}</dd>
  </dl>
</div>
{% endif %}

<div class="specs row detail">
  <h4>{% trans "Specs" %}</h4>
  <hr class="header_rule">
  <dl>
    <dt>{% trans "Flavor" %}</dt>
    <dd>{{ instance.full_flavor.name }}</dd>
    <dt>{% trans "RAM" %}</dt>
    <dd>{{ instance.full_flavor.ram|mbformat }}</dd>
    <dt>{% trans "VCPUs" %}</dt>
    <dd>{{ instance.full_flavor.vcpus }} {% trans "VCPU" %}</dd>
    <dt>{% trans "Disk" %}</dt>
    <dd>{{ instance.full_flavor.disk }}{% trans "GB" %}</dd>
    {% if instance.full_flavor.ephemeral %}
    <dt>{% trans "Ephemeral Disk" %}</dt>
    <dd>{{ instance.full_flavor.ephemeral }}{% trans "GB" %}</dd>
    {% endif %}
  </dl>
</div>

<div class="addresses row detail">
  <h4>{% trans "IP Addresses" %}</h4>
  <hr class="header_rule">
  <dl>
    {% for network, ip_list in instance.addresses.items %}
    <dt>{{ network|title }}</dt>
    <dd>
      {% for ip in ip_list %}
        {% if not forloop.last %}{{ ip.addr}},&nbsp;{% else %}{{ip.addr}}{% endif %}
      {% endfor %}
    </dd>
    {% endfor %}
  </dl>
</div>

<div class="security_groups row detail">
  <h4>{% trans "Security Groups" %}</h4>
  <hr class="header_rule">
  <dl>
  {% for group in instance.security_groups %}
    <dt>{{ group.name }}</dt>
    <dd>
      <ul>
      {% for rule in group.rules %}
        <li>{{ rule }}</li>
        {% empty %}
        <li><em>{% trans "No rules defined." %}</em></li>
      {% endfor %}
      </ul>
    </dd>
  {% endfor %}
  </dl>
</div>

<div class="meta row detail">
  <h4>{% trans "Meta" %}</h4>
  <hr class="header_rule">
  <dl>
    <dt>{% trans "Key Name" %}</dt>
    {% with default_key_name="<em>"|add:_("None")|add:"</em>" %}
    <dd>{{ instance.key_name|default:default_key_name }}</dd>
    {% endwith %}
    {% url 'horizon:project:images:images:detail' instance.image.id as image_url %}
    <dt>{% trans "Image Name" %}</dt>
    <dd>
      {% if instance.image %}
        <a href="{{ image_url }}">{{ instance.image_name }}</a>
      {% else %}
        <em>{% trans "None" %}</em>
      {% endif %}
    </dd>
    {% with default_item_value="<em>"|add:_("N/A")|add:"</em>" %}
    {% for key, value in instance.metadata.items %}
    <dt>{{ key|force_escape }}</dt>
    <dd>{{ value|force_escape|default:default_item_value }}</dd>
    {% endfor%}
    {% endwith %}
  </dl>
</div>

<div class="volumes row detail">
    <h4>{% trans "Volumes Attached" %}</h4>
    <hr class="header_rule">
    <dl>
    {% for volume in instance.volumes %}
        <dt>{% trans "Attached To" %}</dt>
        <dd>
            <a href="{% url 'horizon:project:volumes:volumes:detail' volume.id %}">
            {% if volume.name %}
                {{ volume.name }}
            {%  else %}
                {{ volume.id }}
            {% endif %}
            </a>
            <span> {% trans "on" %} {{ volume.device }}</span>
        </dd>
        {% empty %}
        <dt>{% trans "Volume" %}</dt>
        <dd><em>{% trans "No volumes attached." %}</em></dd>
    {% endfor %}
    </dl>
</div>
