Bri Prebilic Cole
Committed by Gerrit Code Review

ONOS-2101 - GUI -- CSS for marching ants added. Node.js server now takes -v and …

…-v! command line arguments.

Change-Id: Ifbf1238e37cd19d96a8bd1560b7aa755e9c14808
...@@ -501,6 +501,21 @@ html[data-platform='iPad'] #topo-p-detail { ...@@ -501,6 +501,21 @@ html[data-platform='iPad'] #topo-p-detail {
501 } 501 }
502 502
503 503
504 +#ov-topo svg .link.animated {
505 + stroke-dasharray: 8 5;
506 + animation: ants 5s infinite linear;
507 + /* below line will be added via Javascript based on path */
508 + /*animation-direction: reverse;*/
509 +}
510 +@keyframes ants {
511 + from {
512 + stroke-dashoffset: 0;
513 + }
514 + to {
515 + stroke-dashoffset: 400;
516 + }
517 +}
518 +
504 #ov-topo svg .link.primary { 519 #ov-topo svg .link.primary {
505 stroke-width: 4px; 520 stroke-width: 4px;
506 } 521 }
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
4 "payload": { 4 "payload": {
5 "paths": [ 5 "paths": [
6 { 6 {
7 - "class": "primary", 7 + "class": "primary animated",
8 "links": [ 8 "links": [
9 "0E:2A:69:30:13:86/-1/0-of:0000ffffffff0003/101", 9 "0E:2A:69:30:13:86/-1/0-of:0000ffffffff0003/101",
10 "0E:2A:69:30:13:aa/-1/0-of:0000ffffffff0008/103", 10 "0E:2A:69:30:13:aa/-1/0-of:0000ffffffff0008/103",
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
19 ] 19 ]
20 }, 20 },
21 { 21 {
22 - "class": "primary optical", 22 + "class": "primary optical animated",
23 "links": [ 23 "links": [
24 "of:0000ffffffffff08/13-of:0000ffffffffff03/17", 24 "of:0000ffffffffff08/13-of:0000ffffffffff03/17",
25 "of:0000ffffffffff08/99-of:0000ffffffffff04/65535" 25 "of:0000ffffffffff08/99-of:0000ffffffffff04/65535"
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
4 "payload": { 4 "payload": {
5 "paths": [ 5 "paths": [
6 { 6 {
7 - "class": "secondary", 7 + "class": "secondary animated",
8 "links": [ 8 "links": [
9 "0E:2A:69:30:13:86/-1/0-of:0000ffffffff0003/101", 9 "0E:2A:69:30:13:86/-1/0-of:0000ffffffff0003/101",
10 "0E:2A:69:30:13:aa/-1/0-of:0000ffffffff0008/103", 10 "0E:2A:69:30:13:aa/-1/0-of:0000ffffffff0008/103",
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
19 ] 19 ]
20 }, 20 },
21 { 21 {
22 - "class": "secondary optical", 22 + "class": "secondary optical animated",
23 "links": [ 23 "links": [
24 "of:0000ffffffffff08/13-of:0000ffffffffff03/17", 24 "of:0000ffffffffff08/13-of:0000ffffffffff03/17",
25 "of:0000ffffffffff08/99-of:0000ffffffffff04/65535" 25 "of:0000ffffffffff08/99-of:0000ffffffffff04/65535"
......
...@@ -4,14 +4,14 @@ ...@@ -4,14 +4,14 @@
4 "payload": { 4 "payload": {
5 "paths": [ 5 "paths": [
6 { 6 {
7 - "class": "primary", 7 + "class": "primary animated",
8 "links": [ 8 "links": [
9 "of:0000ffffffff0008/21-of:0000ffffffff0003/1" 9 "of:0000ffffffff0008/21-of:0000ffffffff0003/1"
10 ], 10 ],
11 "labels": ["primary"] 11 "labels": ["primary"]
12 }, 12 },
13 { 13 {
14 - "class": "secondary", 14 + "class": "secondary animated",
15 "links": [ 15 "links": [
16 "of:0000ffffffff0003/9-of:0000ffffffff0007/2", 16 "of:0000ffffffff0003/9-of:0000ffffffff0007/2",
17 "of:0000ffffffff0008/4-of:0000ffffffff0007/3", 17 "of:0000ffffffff0008/4-of:0000ffffffff0007/3",
...@@ -21,14 +21,14 @@ ...@@ -21,14 +21,14 @@
21 "labels": ["secondary", "secondo", "deux", "zwei"] 21 "labels": ["secondary", "secondo", "deux", "zwei"]
22 }, 22 },
23 { 23 {
24 - "class": "secondary optical", 24 + "class": "secondary optical animated",
25 "links": [ 25 "links": [
26 "of:0000ffffffffff08/99-of:0000ffffffffff04/65535" 26 "of:0000ffffffffff08/99-of:0000ffffffffff04/65535"
27 ], 27 ],
28 "labels": ["secondary optical"] 28 "labels": ["secondary optical"]
29 }, 29 },
30 { 30 {
31 - "class": "primary optical", 31 + "class": "primary optical animated",
32 "links": [ 32 "links": [
33 "of:0000ffffffffff08/13-of:0000ffffffffff03/17" 33 "of:0000ffffffffff08/13-of:0000ffffffffff03/17"
34 ], 34 ],
......
...@@ -7,7 +7,9 @@ var fs = require('fs'), ...@@ -7,7 +7,9 @@ var fs = require('fs'),
7 http = require('http'), 7 http = require('http'),
8 WebSocketServer = require('websocket').server, 8 WebSocketServer = require('websocket').server,
9 port = 8123, 9 port = 8123,
10 - scenarioRoot = 'ev/'; 10 + scenarioRoot = 'ev/',
11 + verbose = false, // show received messages from client
12 + extraVerbose = false; // show ALL received messages from client
11 13
12 var lastcmd, // last command executed 14 var lastcmd, // last command executed
13 lastargs, // arguments to last command 15 lastargs, // arguments to last command
...@@ -23,8 +25,19 @@ var lastcmd, // last command executed ...@@ -23,8 +25,19 @@ var lastcmd, // last command executed
23 evdata; // event data 25 evdata; // event data
24 26
25 27
28 +process.argv.forEach(function (val) {
29 + switch (val) {
30 + case '-v': verbose = true; break;
31 + case '-v!': extraVerbose = true; break;
32 + }
33 +});
34 +
26 var scFiles = fs.readdirSync(scenarioRoot); 35 var scFiles = fs.readdirSync(scenarioRoot);
36 +console.log();
27 console.log('Mock Server v1.0'); 37 console.log('Mock Server v1.0');
38 +if (verbose || extraVerbose) {
39 + console.log('Verbose=' + verbose, 'ExtraVerbose=' + extraVerbose);
40 +}
28 console.log('================'); 41 console.log('================');
29 listScenarios(); 42 listScenarios();
30 43
...@@ -62,6 +75,15 @@ function originIsAllowed(origin) { ...@@ -62,6 +75,15 @@ function originIsAllowed(origin) {
62 return true; 75 return true;
63 } 76 }
64 77
78 +// displays the message if our arguments say we should
79 +function displayMsg(msg) {
80 + var ev = JSON.parse(msg);
81 + switch (ev.event) {
82 + case 'topoHeartbeat': return extraVerbose;
83 + default: return true;
84 + }
85 +}
86 +
65 wsServer.on('request', function(request) { 87 wsServer.on('request', function(request) {
66 console.log(); // newline after prompt 88 console.log(); // newline after prompt
67 console.log("Origin: ", request.origin); 89 console.log("Origin: ", request.origin);
...@@ -81,15 +103,19 @@ wsServer.on('request', function(request) { ...@@ -81,15 +103,19 @@ wsServer.on('request', function(request) {
81 rl.prompt(); 103 rl.prompt();
82 104
83 connection.on('message', function(message) { 105 connection.on('message', function(message) {
84 - if (message.type === 'utf8') { 106 + if (verbose || extraVerbose) {
85 - console.log(); // newline after prompt 107 + if (message.type === 'utf8') {
86 - console.log('Received Message: ' + message.utf8Data); 108 + if (displayMsg(message.utf8Data)) {
87 - //connection.sendUTF(message.utf8Data); 109 + console.log(); // newline after prompt
88 - rl.prompt(); 110 + console.log('Received Message: ' + message.utf8Data);
89 - } 111 + }
90 - else if (message.type === 'binary') { 112 + //connection.sendUTF(message.utf8Data);
91 - console.log('Received Binary Message of ' + message.binaryData.length + ' bytes'); 113 + rl.prompt();
92 - //connection.sendBytes(message.binaryData); 114 + }
115 + else if (message.type === 'binary') {
116 + console.log('Received Binary Message of ' + message.binaryData.length + ' bytes');
117 + //connection.sendBytes(message.binaryData);
118 + }
93 } 119 }
94 }); 120 });
95 connection.on('close', function(reasonCode, description) { 121 connection.on('close', function(reasonCode, description) {
......