From 26b2d32f6132a3e619f47411adeccfa693b71162 Mon Sep 17 00:00:00 2001 From: Javier Garcia Date: Thu, 17 Sep 2015 10:33:45 +0200 Subject: [PATCH] SLA plugin: template integration with SLA Dashboard --- manifoldapi/static/js/manifold.js | 8 +- plugins/sladialog/static/js/sladialog.js | 206 +++++++++------------ plugins/sladialog/templates/sladialog.html | 73 +------- sla/slaclient/restclient.py | 4 +- sla/slicetabsla.py | Bin 15185 -> 15876 bytes sla/urls.py | 2 + 6 files changed, 95 insertions(+), 198 deletions(-) diff --git a/manifoldapi/static/js/manifold.js b/manifoldapi/static/js/manifold.js index d6f09320..7b2d54c1 100644 --- a/manifoldapi/static/js/manifold.js +++ b/manifoldapi/static/js/manifold.js @@ -1690,6 +1690,8 @@ case TYPE_LIST_OF_VALUES: query = query_ext.query; + var testbeds_with_sla = localStorage.getItem("sla_testbeds").split(","); + switch(query.object) { case 'resource': @@ -1735,9 +1737,9 @@ case TYPE_LIST_OF_VALUES: } } - /*var urn_regexp = /\+(.*?)\+/; + var urn_regexp = /\+(.*?)\+/; var testbed_urn = urn_regexp.exec(record.urn)[1]; - var has_sla = $.inArray(testbed_urn, localStorage.getItem("sla_testbeds").split(",")) != -1; + var has_sla = $.inArray(testbed_urn, testbeds_with_sla) != -1; if (has_sla) { // var warnings = manifold.query_store.get_record_state(query.query_uuid, record_key, STATE_WARNINGS); @@ -1748,7 +1750,7 @@ case TYPE_LIST_OF_VALUES: } else { delete warnings[CONSTRAINT_SLA]; } - }*/ + } manifold.query_store.set_record_state(query.query_uuid, record_key, STATE_WARNINGS, warnings); // Signal the change to plugins (even if the constraint does not apply, so that the plugin can display a checkmark) diff --git a/plugins/sladialog/static/js/sladialog.js b/plugins/sladialog/static/js/sladialog.js index 2773df09..8ea38dc5 100644 --- a/plugins/sladialog/static/js/sladialog.js +++ b/plugins/sladialog/static/js/sladialog.js @@ -1,13 +1,10 @@ /** - * MyPlugin: demonstration plugin - * Version: 0.1 - * Description: Template for writing new plugins and illustrating the different - * possibilities of the plugin API. - * This file is part of the Manifold project + * SlaDialog + * Description: Plugin to allow SLA acceptance and creation to MySlice portal + * in Fed4FIRE * Requires: js/plugin.js - * URL: http://www.myslice.info - * Author: Jordan Augé - * Copyright: Copyright 2012-2013 UPMC Sorbonne Universités + * Author: Javier García Lloreda + * Copyright: Copyright Atos Spain S.A. * License: GPLv3 */ @@ -18,17 +15,8 @@ accepted_slas: {}, queries: [], - /** XXX to check - * @brief Plugin constructor - * @param options : an associative array of setting values - * @param element : - * @return : a jQuery collection of objects on which the plugin is - * applied, which allows to maintain chainability of calls - */ init: function(options, element) { - // for debugging tools - this.classname="SlaDialog"; - // Call the parent constructor, see FAQ when forgotten + this.classname = "SlaDialog"; this._super(options, element); /* Member variables */ @@ -36,22 +24,19 @@ /* Plugin events */ /* Setup query and record handlers */ - - // Explain this will allow query events to be handled - // What happens when we don't define some events ? - // Some can be less efficient this.listen_query(options.query_uuid); /* GUI setup and event binding */ + // call function this.button_binding(); // Get testbeds with sla and store them in localStorage - //this.get_testbeds_with_sla(); - + this.get_testbeds_with_sla(); }, get_testbeds_with_sla: function () { + var self = this; return $.get('/sla/testbeds/', function(data) { if (typeof(Storage) !== "undefined") { if (!localStorage.getItem("sla_testbeds")) { @@ -59,24 +44,44 @@ localStorage.setItem("sla_testbeds", testbeds); } } + }).done(function(data) { + self.get_sla_templates(data); + alert("sla templates recovered: " + data); }); }, - find_row: function(key) - { - // key in third position, column id = 2 - var KEY_POS = 2; + get_sla_templates: function (testbeds) { - var cols = $.grep(this.table.fnSettings().aoData, function(col) { - return (col._aData[KEY_POS] == key); - } ); + testbeds.forEach(function(testbed, index, array) { - if (cols.length == 0) - return null; - if (cols.length > 1) - throw "Too many same-key rows in ResourceSelected plugin"; + if(testbed!="omf:netmode") { return } // TODO: remove - return cols[0]; + $.get('/sla/agreements/templates/' + testbed, function(slo) { + + $(".modal-body #sla_template").append(slo); + + var content = + " -
- - - - -
+
\ No newline at end of file diff --git a/sla/slaclient/restclient.py b/sla/slaclient/restclient.py index c3dc0134..4b8614be 100755 --- a/sla/slaclient/restclient.py +++ b/sla/slaclient/restclient.py @@ -343,12 +343,12 @@ class Templates(object): converter = xmlconverter.AgreementConverter() self.res = _Resource(resourceurl, converter) - def getall(self): + def getall(self, provider_id): """ Get all templates :rtype : list[wsag_model.Template] """ - return self.res.getall() + return self.res.get(path="", params={"testbed": provider_id}) def getbyid(self, provider_id): """Get a template diff --git a/sla/slicetabsla.py b/sla/slicetabsla.py index c9043f67862d6749cf0010a19555e4c578b6552e..a5b56fd23f2a7b6083e07001d1e3a88a3f67e98a 100755 GIT binary patch literal 15876 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 D=*gxd diff --git a/sla/urls.py b/sla/urls.py index 03ab14f9..87363ee1 100755 --- a/sla/urls.py +++ b/sla/urls.py @@ -13,6 +13,8 @@ urlpatterns = patterns('', slicetabsla.agreement_details, name='agreement_details'), url(r'^agreements/(?P[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})/guarantees/(?P\w+)/violations$', slicetabsla.agreement_term_violations, name='agreement_term_violations'), + url(r'^agreements/templates/(?P[^/]+)', + slicetabsla.AgreementTemplates.as_view(), name='agreement_templates'), url(r'^agreements/create/$', slicetabsla.CreateAgreement.as_view(), name="agreement_create"), # url(r'^agreements/simplecreate/?$', -- 2.43.0