{% extends "response.xml" %}
{% block response_content %}
    <imagesSet>
        {% for image in response.template %}
        <item>
            <imageId>
                {{ image.id }}
            </imageId>
            <name>{{ image.name }}</name>
            {% if image.isready == true %}
            <imageState>available</imageState>
            {% elif image.isready == false %}
            <imageState>unavailable</imageState>
            {% endif %}
            <hypervisor>{{ image.hypervisor }}</hypervisor>
            <description>{{ image.displaytext }}</description>
        </item>
        {% endfor %}
    </imagesSet>
{% endblock %}
