| /* |
| Copyright 2012 IBM |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| */ |
| |
| window.Host = Backbone.Model.extend({ |
| |
| defaults: { |
| // vlan: -1, |
| lastSeen: 'never', |
| ip: ' ', |
| swport: ' ', |
| }, |
| |
| // initialize:function () {} |
| |
| }); |
| |
| window.HostCollection = Backbone.Collection.extend({ |
| |
| model:Host, |
| |
| fetch:function () { |
| var self = this; |
| //console.log("fetching host list") |
| $.ajax({ |
| url:hackBase + "/wm/floodlight/device/", |
| dataType:"json", |
| success:function (data) { |
| //console.log("fetched host list: " + data.length); |
| // console.log(data); |
| // data is a list of device hashes |
| var old_ids = self.pluck('id'); |
| //console.log("old_ids" + old_ids); |
| _.each(data, function(h) { |
| h.id = h.mac[0]; |
| old_ids = _.without(old_ids, h.id); |
| if (h['attachmentPoint'].length > 0) { |
| h.swport = _.reduce(h['attachmentPoint'], function(memo, ap) { |
| return memo + ap.switchDPID + "-" + ap.port + " "}, ""); |
| //console.log(h.swport); |
| h.lastSeen = new Date(h.lastSeen).toLocaleString(); |
| self.add(h, {silent: true}); |
| } |
| }); |
| // old_ids now holds hosts that no longer exist; remove them |
| //console.log("old_ids" + old_ids); |
| _.each(old_ids, function(h) { |
| console.log("---removing host " + h); |
| self.remove({id:h}); |
| }); |
| self.trigger('add'); // batch redraws |
| } |
| }); |
| |
| }, |
| |
| /* |
| * findByName:function (key) { // TODO: Modify service to include firstName |
| * in search var url = (key == '') ? '/host/' : "/host/search/" + key; |
| * console.log('findByName: ' + key); var self = this; $.ajax({ url:url, |
| * dataType:"json", success:function (data) { console.log("search success: " + |
| * data.length); self.reset(data); } }); } |
| */ |
| |
| }); |