From: javier Date: Tue, 17 Jun 2014 16:33:59 +0000 (+0200) Subject: SLA code updated and new image for SmartSantander Application Service added X-Git-Tag: myslice-1.1~64^2~11 X-Git-Url: http://git.onelab.eu/?p=unfold.git;a=commitdiff_plain;h=2644f55ba6617124d8e3c0513da020cc27ec77f9 SLA code updated and new image for SmartSantander Application Service added --- diff --git a/portal/static/img/servicedirectory/smartsantander.png b/portal/static/img/servicedirectory/smartsantander.png index 806e459e..73197627 100755 Binary files a/portal/static/img/servicedirectory/smartsantander.png and b/portal/static/img/servicedirectory/smartsantander.png differ diff --git a/sla/slaclient/restclient.py b/sla/slaclient/restclient.py index 9d1306b1..c00ca2f5 100755 --- a/sla/slaclient/restclient.py +++ b/sla/slaclient/restclient.py @@ -281,19 +281,10 @@ class Agreements(object): path = _buildpath_(agreementid, "guaranteestatus") r = self.res.client.get(path, headers={'accept': 'application/json'}) - print "---- JSON Response ----" - print r.text - json_obj = r.json() - print "-- json_obj() --" - print type(json_obj) - print json_obj status = wsag_model.AgreementStatus.json_decode(json_obj) - print "---- STATUS ----" - print status - return status, r def create(self, agreement): diff --git a/sla/slaclient/wsag_model.py b/sla/slaclient/wsag_model.py index 1c9bd41a..f141d6ad 100755 --- a/sla/slaclient/wsag_model.py +++ b/sla/slaclient/wsag_model.py @@ -30,6 +30,11 @@ class Agreement(object): def testbed_formatted(self): return self.template_id.replace('Service', ' - ') + def time_formatted(self): + import dateutil.parser + time = dateutil.parser.parse(self.expirationtime) + return time.strftime('%d-%m-%Y at %H:%M:%S') + class Property(object): def __init__(self): self.servicename = "" @@ -187,7 +192,7 @@ class Violation(object): self.contract_uuid = "" self.service_scope = "" self.metric_name = "" - self.datetime = datetime.now() + self.datetime = datetime.utcnow() self.actual_value = 0 def __repr__(self): @@ -201,6 +206,11 @@ class Violation(object): self.actual_value) ) + def format_time(self): + # return datetime.strptime(self.datetime.datetime.utcnow,'%Y-%m-%d %H:%M:%S') + # return str(datetime.fromtimestamp(self.datetime)) + return str(self.datetime) + class Provider(object): def __init__(self): diff --git a/sla/slicetabsla.py b/sla/slicetabsla.py index 6b350d41..19655404 100755 --- a/sla/slicetabsla.py +++ b/sla/slicetabsla.py @@ -92,6 +92,7 @@ class SLAView (FreeAccessView, ThemeView): consumer_id = None agreement_id = None enforcements = {} + violations = {} filter_ = None form = FilterForm(request.GET) @@ -100,15 +101,21 @@ class SLAView (FreeAccessView, ThemeView): 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 @@ -118,6 +125,7 @@ class SLAView (FreeAccessView, ThemeView): 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} @@ -224,12 +232,17 @@ def agreement_term_violations(request, agreement_id, guarantee_name): # 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) diff --git a/sla/templates/slice-tab-sla.html b/sla/templates/slice-tab-sla.html index c605b6d3..f09aa8de 100755 --- a/sla/templates/slice-tab-sla.html +++ b/sla/templates/slice-tab-sla.html @@ -2,7 +2,7 @@
-
+
@@ -48,14 +48,14 @@
{{ a.agreement_id|default:" " }}
Provider
{{ a.context.provider|default:" " }}
-
Consumer
+
Experimenter
{{ a.context.consumer|default:" " }}
Service
Testbed guarantees 0.99 Uptime rate for 0.99 rate of the resources during the sliver lifetime
Testbed
{{ a.context.testbed_formatted }}
Accepted on:
-
{{ a.context.expirationtime|default:" " }}
+
{{ a.context.time_formatted|default:" " }}
{% if a.guaranteestatus == "VIOLATED" %} - {% else %} + {% elif a.guaranteestatus == "FULFILLED" %} + {% else %} + {% endif %} - - - - - + + + + {% with a.agreement_id as key %} + + + + {% for k,v in enforcements.items %} + {% if key == k %} + + + {% if a.guaranteestatus == "VIOLATED" and v == "UNACTIVE" %} + + {% elif a.guaranteestatus == "FULFILLED" and v == "UNACTIVE" %} + + {% endif %} + {% endif %} - {% for tname,t in a.guaranteeterms.items %} + {% endfor %} + + + + + + + + + {% endwith %} + - View Violations + data-violation="{{ t.name }}">View Violations + {{last_violation_list}} + {{ t.name }} {% endif %} - {% endfor %} + {% endfor %} --> + + + - {% empty %} + {% endfor %}
{{ a.context.template_id }}{{ a.context.expirationtime }} - {% with a.agreement_id as key %} - {% if enforcements.key == false %} - Disabled - {% else %} - Enabled - {% endif %} - {% endwith %} - - - - View Agreement - {{ a.context.template_id }}{{ a.context.time_formatted }} + + + View Agreement + + {% if v == "ACTIVE" %} + In progress + {% elif v == "UNACTIVE" %} + Disabled + {% endif %} + + Result: 99% uptime for + {% for vi, value in last_violation_list.items %} + {% if a.agreement_id == vi %} + {{ value }}% + {% endif %} + {% endfor %} + resources + + Result: 99% uptime for + {% for vi, value in last_violation_list.items %} + {% if a.agreement_id == vi %} + {{ value }}% + {% endif %} + {% endfor %} + resources +