consumer_id = None
agreement_id = None
enforcements = {}
+ violations = {}
filter_ = None
form = FilterForm(request.GET)
filter_ = _get_filter_from_form(form)
consumer_id = _get_consumer_id(request)
-
+
agreements = _get_agreements(agreement_id, consumer_id=consumer_id, filter_=filter_)
-
+
for agreement in agreements:
enf = _get_enforcement(agreement.agreement_id)
- enforcements[agreement.agreement_id] = enf.enabled
-
- for key, value in enforcements.items():
- print key + ": " + value
+ if enf.enabled == 'true':
+ enforcements[agreement.agreement_id] = "ACTIVE"
+ else:
+ enforcements[agreement.agreement_id] = "UNACTIVE"
+ violations_list = _get_agreement_violations(agreement.agreement_id, "GT_Performance")
+
+ if len(violations_list):
+ violations[agreement.agreement_id] = float(violations_list[0]["actualValue"])*100
+ else:
+ violations[agreement.agreement_id] = 100
template_env = {}
# write something of our own instead
template_env['username'] = request.user
template_env['slicename'] = slicename
template_env['enforcements'] = enforcements
+ template_env['last_violation_list'] = violations
# the prelude object in page contains a summary of the requirements() for all plugins
# define {js,css}_{files,chunks}
# If page is out of range (e.g. 9999), deliver first page.
violation_page = paginator.page(1)
+ print "\n******************"
+ print violations[-1]
+ print "******************\n"
+
context = {
'agreement_id': agreement_id,
'guarantee_term': agreement.guaranteeterms[guarantee_name],
'violations': violation_page,
'agreement': agreement,
'slicename': slicename,
+ 'last_violation': violations[-1].actual_value
}
context.update(prelude_env)
<div class="col-md-2">
</div>
- <div class="col-md-8">
+ <div class="col-md-9">
<div class="row" id="agreements">
<table class="table dataTable" id="sla_table" >
<thead>
<dd>{{ a.agreement_id|default:" " }}</dd>
<dt>Provider</dt>
<dd>{{ a.context.provider|default:" " }}</dd>
- <dt>Consumer</dt>
+ <dt>Experimenter</dt>
<dd>{{ a.context.consumer|default:" " }}</dd>
<dt>Service</dt>
<dd>Testbed guarantees 0.99 Uptime rate for 0.99 rate of the resources during the sliver lifetime</dd>
<dt>Testbed</dt>
<dd>{{ a.context.testbed_formatted }}</dd>
<dt>Accepted on:</dt>
- <dd>{{ a.context.expirationtime|default:" " }}</dd>
+ <dd>{{ a.context.time_formatted|default:" " }}</dd>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<tr>
{% if a.guaranteestatus == "VIOLATED" %}
<td class="glyphicon glyphicon-remove-sign" style="color:red;"></td>
- {% else %}
+ {% elif a.guaranteestatus == "FULFILLED" %}
<td class="glyphicon glyphicon-ok-sign" style="color:green;"></td>
+ {% else %}
+ <td></td>
{% endif %}
- <td>{{ a.context.template_id }}</td>
- <td>{{ a.context.expirationtime }}</td>
- <td>
- {% with a.agreement_id as key %}
- {% if enforcements.key == false %}
- Disabled
- {% else %}
- Enabled
- {% endif %}
- {% endwith %}
- </td>
- <!-- <td>{{slicename}}</td> -->
- <td>
- <!-- <a class="agreement-detail" href="{% url "agreement_details" a.agreement_id %}" data-toggle="modal" data-target="#agreementModal">View Agreement</a> -->
- <!-- <a class="agreement-detail" href="#" data-agreement="{{ a.agreement_id }}">View Agreement</a> -->
- <a class="agreement-detail" data-toggle="modal" data-target="#agreementModal{{a.agreement_id}}">View Agreement</a>
- </td>
+ <td>{{ a.context.template_id }}</td>
+ <td>{{ a.context.time_formatted }}</td>
+
+ {% with a.agreement_id as key %}
+
+ <td>
+ <!-- <a class="agreement-detail" href="{% url "agreement_details" a.agreement_id %}" data-toggle="modal" data-target="#agreementModal">View Agreement</a> -->
+ <!-- <a class="agreement-detail" href="#" data-agreement="{{ a.agreement_id }}">View Agreement</a> -->
+ <a class="agreement-detail" data-toggle="modal" data-target="#agreementModal{{a.agreement_id}}">View Agreement</a>
+ </td>
+
+ {% for k,v in enforcements.items %}
+ {% if key == k %}
+ <td>
+ {% if v == "ACTIVE" %}
+ In progress
+ {% elif v == "UNACTIVE" %}
+ Disabled
+ {% endif %}
+ </td>
+
+ {% if a.guaranteestatus == "VIOLATED" and v == "UNACTIVE" %}
+ <td style="font-weight: bold">
+ Result: 99% uptime for
+ {% for vi, value in last_violation_list.items %}
+ {% if a.agreement_id == vi %}
+ {{ value }}%
+ {% endif %}
+ {% endfor %}
+ resources
+ </td>
+ {% elif a.guaranteestatus == "FULFILLED" and v == "UNACTIVE" %}
+ <td style="font-weight: bold">
+ Result: 99% uptime for
+ {% for vi, value in last_violation_list.items %}
+ {% if a.agreement_id == vi %}
+ {{ value }}%
+ {% endif %}
+ {% endfor %}
+ resources
+ </td>
+ {% endif %}
+ {% endif %}
- {% for tname,t in a.guaranteeterms.items %}
+ {% endfor %}
+
+ <!-- <td>{{slicename}}</td> -->
+
+
+
+
+
+
+ {% endwith %}
+ <!-- {% for tname,t in a.guaranteeterms.items %}
<td> {{ t.servicelevelobjective.kpiname }}</td>
<td>
{% if t.status == "VIOLATED" %}
- <!-- <a class="violation-detail" href="{% url "agreement_term_violations" a.agreement_id t.name %}" data-toggle="modal" data-target="#violationModal">View Violations</a>
+ <a class="violation-detail" href="{% url "agreement_term_violations" a.agreement_id t.name %}" data-toggle="modal" data-target="#violationModal">View Violations</a>
<a class="violation-detail" href="#"
data-agreement="{{ a.agreement_id }}"
- data-violation="{{ t.name }}">View Violations</a> -->
- <a class="violation-detail" href="#" data-agreement="{{ a.agreement_id }}" data-violation="{{ t.name }}">View Violations</a>
+ data-violation="{{ t.name }}">View Violations</a>
+ <a class="violation-detail" href="#" data-agreement="{{ a.agreement_id }}" data-violation="{{ t.name }}">{{last_violation_list}}</a>
+ {{ t.name }}
{% endif %}
</td>
<td id="status" style="display:none;">
{{ a.statusclass }}
</td>
- {% endfor %}
+ {% endfor %} -->
+
+
+
</tr>
- {% empty %}
+
{% endfor %}
</tbody>