4 * Copyright 2016 RIFT.IO Inc
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
19 require('./launchpad-fleet-card-params.html');
20 var React
= require('react');
21 var LaunchpadCard
= require('./launchpadCard.jsx');
22 // var LaunchpadCard = require('../../components/dashboard_card/dashboard_card.jsx');
23 angular
.module('launchpad')
24 .directive('fleetCard', function($state
, $stateParams
) {
28 template
: '<div></div>',
37 bindToController
: true,
39 link: function(scope
, element
, attributes
) {
42 controller: function($timeout
, $interval
, $scope
, $rootScope
, $element
) {
45 console
.log(self
.fleet
)
46 $scope
.$watch(function() {
47 return self
.fleet
}, reactRender
)
48 function reactRender() {
49 console
.log('rendering', self
.fleet
)
51 React
.createElement(LaunchpadCard
, {className
:'launchpadCard'}
60 // //Remove for testing only
61 // $scope.$watch(function() {
65 // // var fleetChannel = $rw.radio.channel('fleetChannel');
66 // var FleetStore = require('../launchpadFleetStore.js');
67 // self.valueFormat = {
71 // self.federationID = $stateParams.id;
72 // //if this is true, set gauges to start
73 // if (require('utils/rw.js').getSearchParams(window.location).api_server) {
74 // self.fleet.started = true;
76 // self.apiServer = require('utils/rw.js').getSearchParams(window.location).api_server;
77 // self.isNoisy = false;
78 // var rateChanged = function(rate) {
80 // fleetChannel.command('fleet:change:rate', rate)
82 // var packetSizeChanged = function(packetSize) {
83 // self.packetSize = packetSize
84 // fleetChannel.command('fleet:change:packetSize', packetSize)
86 // self.openFleet = function(index) {
87 // var params = require('utils/rw.js').getSearchParams(window.location);
88 // if (params.api_server) {
89 // if (params.api_server == "http://10.0.201.25:5000") {
90 // var newLoc = window.location.origin + window.location.pathname + '?config=' + params.config + '&api_server=' + 'http://10.0.201.25:5050' + '#/wag';
91 // window.open(newLoc);
94 // if (self.fleet.api == "10.0.117.22") self.fleet.api = "10.0.117.17";
95 // var newLoc = window.location.origin + window.location.pathname + '?config=' + params.config + '&api_server=' + 'http://' + self.fleet.api + ':5050' + '&name=' + self.fleet.name + '&env_id=' + self.fleet.id + '#/dashboard/' + $stateParams.id + '/' + index;;
96 // console.log('Opening new window at: %s', newLoc)
97 // window.open(newLoc);
99 // if (self.fleet.id == 'wag-fleet') {
100 // var newLoc = window.location.origin + window.location.pathname + '?config=' + params.config + '#/wag';
101 // window.open(newLoc);
103 // window.open('#/dashboard/' + $stateParams.id + '/' + index);
106 // self.openConsole = function(index) {
107 // console.log(self);
108 // var params = require('utils/rw.js').getSearchParams(window.location);
109 // if (params.api_server) {
110 // if (self.fleet.api == "10.0.117.22") self.fleet.api = "10.0.117.17";
111 // var newLoc = self.apiServer + '/api/environments/' + self.fleet.id + '/console';
112 // window.open(newLoc);
114 // window.open('#/dashboard/' + $stateParams.id + '/' + index);
119 // self.noisyToggle = function() {
121 // if (self.isNoisy) {
123 // self.isNoisy = false;
126 // self.isNoisy = true;
129 // url: "http://" + self.fleet.api + ':5050/api/operations/' + action + '-stream',
132 // "Content-Type": "application/vnd.yang.operation+json"
135 // data: JSON.stringify({
143 // self.toggleStatus = function() {
145 // var status = self.fleet.status;
146 // console.log(self.fleet)
147 // if (status == "starting" || status == "stopping") {
150 // if (status == "active") {
151 // state = "inactive";
155 // self.fleet.status = state;
156 // FleetStore.setFleetState(self.fleet.id, state);
158 // //CAT + NOISY NEIGHBOR ONLY
160 // self.catStarted = false;
161 // self.catToggle = function() {
163 // if (self.catStarted) {
165 // self.catStarted = false;
168 // self.catStarted = true;
171 // url: "http://" + self.fleet.api + ':5050/api/operations/' + action + '-cat',
174 // "Content-Type": "application/vnd.yang.operation+json"
177 // data: JSON.stringify({
185 // self.deleteFleet = function() {
186 // if (confirm("Do you really want to delete this fleet?")) {
187 // // if (confirm("Seriously, you REALLY want to delete this?")) {
188 // // fleetChannel.request('fleet:delete', self.fleet);
189 // FleetStore.deleteFleet(self.fleet.id)
198 // // var wagChannel = $rw.radio.channel('wag');
200 // //If Wag page Offline
201 // if (!self.apiServer && self.fleet.id == 'wag-fleet') {
202 // self.offline = setInterval(function() {
203 // if (self.fleet.started) {
204 // self.fleet.wagpage.clientsim['traffic-gen']['rx-pps'] = 100 * (Math.random() - .5) + 200;
205 // self.fleet.wagpage.clientsim['traffic-gen']['tx-pps'] = 100 * (Math.random() - .5) + 200;
210 // // If Wag page Online
211 // if (self.fleet.template_name == 'Wireless Access Gateway') {
212 // wagChannel.command('wag-poll');
213 // wagChannel.on('wag-update', function(data) {
214 // $timeout(function() {
215 // self.fleet.wagpage = {};
216 // self.fleet.wagpage.clientsim = data.clientsim
217 // // self.data.clientsim['traffic-sink']['rx-pps'] / 1000000;
218 // self.isOn = data.clientsim['traffic-gen-status'].running;
223 // $rootScope.$on('$stateChangeStart', function() {
224 // wagChannel.command('wag-poll:kill');
236 .directive('launchpadFleetCardParams', function() {
240 templateUrl
: '/modules/launchpad/launchpad_card/launchpad-fleet-card-params.html',
241 controllerAs
: 'params',
248 bindToController
: true,
249 controller: function($scope
, $stateParams
, $timeout
, $interval
, $rootScope
) {
251 $scope
.$watch(function() {
252 return self
.cardData
;
255 var apiServer
= require('utils/rw.js').getSearchParams(window
.location
).api_server
;
256 self
.apiServer
= apiServer
;
257 // self.refs = refsDB;
260 // var LaunchpadFleetActions = require('../launchpadFleetActions.js');
261 // var LaunchpadFleetStore = require('../launchpadFleetStore.js');
262 //var LaunchpadFleetActions = require('./launchpadFleetActions.js');
265 self
.packetSize
= 256;
266 self
.refParam
= $rw
.refParams
;
269 this.visible
= 'default';
270 if (self
.cardData
.id
== "wag-fleet") {
271 self
.cardData
.started
= self
.cardData
.wagpage
.clientsim
['traffic-gen-status'].running
;
275 self
.selectedNFVI
= 0;
276 self
.selectedSLAParam
= {};
277 self
.refPools
= $rw
.refPools
;
281 self
.load = function(panel
) {
282 self
.visible
= panel
;
284 self
.filterSLA = function(ref
) {
285 // fleetChannel.command('filter:SLAParams', ref);
286 FleetActions
.filterSLAParams(ref
);
288 self
.filterNFVI = function(ref
) {
289 FleetActions
.filterNfviMetrics(ref
)
290 // fleetChannel.command('filter:NFVIMetrics', ref);
292 self
.serviceToggle = function(fleet
, control
) {
294 var vnfrChannel
= $rw
.radio
.channel('vnfr');
295 switch (control
.ref
) {
297 var action
= (control
.started
) ? 'stop' : 'start';
298 vnfrChannel
.command("vnf:command", action
, control
.data
.api
, "http://" + fleet
.api
+ ':5050');
301 var action
= (control
.started
) ? 'stop' : 'start';
302 vnfrChannel
.command("vnf:command", action
, control
.data
.api
, "http://" + fleet
.api
+ ':5050');
306 fleetChannel
.command('fleet:start', $stateParams
.id
, self
.$index
);
307 if ($stateParams
.id
== 'wag-federation') {
308 if (!self
.cardData
.wagpage
.clientsim
['traffic-gen-status']) {
309 self
.cardData
.wagpage
.clientsim
['traffic-gen-status'] = {};
311 self
.cardData
.wagpage
.clientsim
['traffic-gen-status'].running
= !self
.cardData
.wagpage
.clientsim
['traffic-gen-status'].running
;
320 if (self
.apiServer
== "http://10.0.201.25:5000") {
323 self
.toggleOn = function(e
) {
324 // self.setPacket(e, self.packetSize);
325 // self.setRate(e, self.rate);
326 // self.setSubscribers(e, self.subscribers);
327 // self.setAP(e, self.ap);
329 if (self
.apiServer
) {
333 url
: "http://10.0.201.25:5050/api/running/stop-device-group/",
334 success
: (function() {
335 console
.log('stahp post sent')
340 url
: "http://10.0.201.25:5050/api/running/stop-sink-server/",
341 success
: (function() {
342 console
.log('stahp post sent')
348 url
: "http://10.0.201.25:5050/api/running/start-sink-server/",
349 success
: (function() {
350 console
.log('start post sent')
355 url
: "http://10.0.201.25:5050/api/running/start-device-group/",
356 success
: (function() {
357 console
.log('start post sent')
362 self
.isOn
= !self
.isOn
;
368 link: function(s
, e
, a
) {}