9 list.prototype.add = function(element) {
10 if (!this.has(element)) {
11 this.elements.push(element);
15 list.prototype.del = function(element) {
16 if (this.has(element)) {
17 this.elements.splice(index, 1);
21 list.prototype.has = function(element) {
22 index = $.inArray( element, this.elements );
29 list.prototype.count = function() {
30 return this.elements.length;
35 * resources, users, leases
38 function resources() {
62 function slice(name) {
64 this.resources = new resources();
65 this.users = new users();
66 this.leases = new leases();
76 this.testbeds = new list();
77 this.slices = new list();
79 for (i = 0; i < this.user.slices.length; i++) {
80 this.slices[this.user.slices[i]] = new slice(this.user.slices[i]);
84 user.prototype.slice = function(name) {
85 return this.slices[name];
88 user.prototype.list = function() {
89 for (s in this.slices) {
91 if (typeof o != 'function') {
107 if ($.isEmptyObject(this.user)) {
108 //this.login(function() { return this.user; });
109 if(localStorage.getItem('user')!='undefined'){
110 this.user = JSON.parse(localStorage.getItem('user'));
117 loadSlices: function(slices) {
118 if (typeof(slices) == "undefined"){
120 if(myslice.user != null && typeof(myslice.user.slices) != "undefined" && myslice.user.slices.length>0){
121 slices = myslice.user.slices
124 // myslice.user is in LocalStorage
125 if(typeof(slices) != "undefined"){
127 Launch queries to get the resources and leases in Manifold Cache
129 $.post("/rest/resource/", function( data ) {
131 $.post("/rest/lease/", function( data ) {
134 $.each( slices, function(i, val) {
136 Launch a Query for each slice to get resources and leases in Manifold Cache
138 $.post("/rest/slice/", { 'filters': { 'slice_hrn' : val } }, function(data) {
144 login: function(fn) {
145 user = localStorage.getItem('user');
146 if($.isEmptyObject(user)){
147 // REGISTRY ONLY TO BE REMOVED WITH MANIFOLD-V2
148 $.post("/rest/myslice:user/",{'filters':{'user_hrn':'$user_hrn'}}, function( data ) {
149 //myslice.user = new user(data[0]);
150 localStorage.setItem('user', JSON.stringify(data[0]));
151 myslice.loadSlices(data[0].slices);
155 getSlices: function(name) {
159 refreshUser: function() {
165 //$('div#loading').show();
168 //setTimeout(function(){
169 //$('div#loading').hide();
170 //window.location.href = '/resources/' + this.slice + '?message=true';
175 $.post("/rest/slice/", { 'fields': ['resource','slice_hrn'], 'filters': { 'slice_hrn' : this.slice } }, function(data) {
180 if ('resource' in data[0]) {
181 $.each(data[0].resource, function(idx, r) {
182 resources.push(r.urn);
186 console.log(myslice.pending);
187 console.log(resources);
188 $.each(resources.concat(myslice.pending), function(idx, v) {
192 $.post("/update/slice/", { 'filters': { 'slice_hrn' : myslice.slice }, 'params' : update }, function(data) {
196 console.log(this.slice);
204 // var Reflector = function(obj) {
205 // this.getProperties = function() {
206 // var properties = [];
207 // for (var prop in obj) {
208 // if (typeof obj[prop] != 'function') {
209 // properties.push(prop);
210 // console.log("prop: " + prop);
212 // console.log("func: " + prop);
215 // return properties;
218 // var reflector = new Reflector(myslice.slices[0].resources.pending);
219 // reflector.getProperties();
222 $(document).ready(function() {
223 //console.log(myslice.user().slices);
225 // $.post("/rest/user/",{'filters':{'user_hrn':'$user_hrn'}}, function(data) {
226 // myslice.user = new user(data[0]);
227 // console.log(myslice.user.slices);
228 // myslice.user.list();
230 // }).fail(function() {
231 // throw "error retreiving user data";
233 // Put the object into storage
234 //localStorage.setItem('testObject', JSON.stringify(testObject));
236 // Retrieve the object from storage
242 // add a resource to pending
244 //myslice.user.slice('ple.upmc.myslicedemo').resources.pending.add(resource);