blob: 75cc5cc9b0eb3ca640ee5d4fa7ebd4accd3406d4 [file] [log] [blame]
Masayoshi Kobayashifc5e2372013-02-27 20:21:28 +00001function controller_status(data_source){
2/* var data = [{name:'onos9vpc', onos: 1, cassandra: 1},
3 {name:'onos10vpc', onos: 0, cassandra: 1},
4 {name:'onos11vpc', onos: 1, cassandra: 1},
5 {name:'onos12vpc', onos: 0, cassandra: 1}] */
6
7 var barWidth = 100;
8 var width = (barWidth + 10) * 4
9 var height = 50;
10
Masayoshi Kobayashifc5e2372013-02-27 20:21:28 +000011 var Servers = d3.select("#servers").
12 append("svg:svg").
13 attr("width", 800).
14 attr("height", 30);
15
16 var ContStatus = d3.select("#onos-status").
17 append("svg:svg").
18 attr("width", 800).
19 attr("height", 50);
20
21 var CassandraStatus = d3.select("#cassandra-status").
22 append("svg:svg").
23 attr("width", 800).
24 attr("height", 50);
25
26 d3.json(data_source, draw);
27
28 function draw(json){
29// var data = json.data;
30 var data = json;
31 var server = Servers.selectAll("text").data(data);
32 var controller_rect = ContStatus.selectAll("rect").data(data);
33 var controller_text = ContStatus.selectAll("text").data(data);
34 var cassandra_rect = CassandraStatus.selectAll("rect").data(data);
35 var cassandra_text = CassandraStatus.selectAll("text").data(data);
36
37 var x = d3.scale.linear().domain([0, data.length]).range([0, width]);
38 var y = d3.scale.linear().domain([0, d3.max(data, function(datum) { return datum.onos; })]).rangeRound([0, height]);
39 var y2 = d3.scale.linear().domain([0, d3.max(data, function(datum) { return datum.cassandra; })]).rangeRound([0, height]);
40
41 console.log(data)
42 server.
43 enter().
44 append("svg:text").
45 attr("x", function(datum, index) { return x(index); }).
46 attr("y", function(datum) { return 20; }).
Ubuntuc016ba12013-02-27 21:53:41 +000047 attr("fill", function(datum, index) {
48 if (index == 0){
49 return "red"
50 }else if (index == 1){
51 return "blue"
52 }else if (index == 2){
53 return "green"
54 }else if (index == 3){
55 return "orange"
56 }else{
57 return "black"
58 }
59 }).
Masayoshi Kobayashifc5e2372013-02-27 20:21:28 +000060 text(function(datum) { return datum.name; });
61
62 controller_rect.
63 enter().
64 append("svg:rect").
65 attr("x", function(datum, index) { return x(index); }).
66 attr("y", function(datum) { return height - y(datum.onos); }).
67 attr("height", function(datum) { return y(datum.onos); }).
68 attr("width", barWidth).
Ubuntuc016ba12013-02-27 21:53:41 +000069 attr("fill", function(datum, index) {
70 if (index == 0){
71 return "red"
72 }else if (index == 1){
73 return "blue"
74 }else if (index == 2){
75 return "green"
76 }else if (index == 3){
77 return "orange"
78 }else{
79 return "black"
80 }
81 });
Masayoshi Kobayashifc5e2372013-02-27 20:21:28 +000082
83 controller_text.
84 enter().
85 append("svg:text").
86 text(function(){return "ONOS"}).
87 attr("x", function(datum, index) { return x(index)+10; }).
88 attr("y", function(datum) { return 30 ; }).
89 attr("height", function(datum) { return y(datum.onos); }).
90 attr("width", barWidth).
91 attr('fill', 'white');
92
93 cassandra_rect.
94 enter().
95 append("svg:rect").
96 attr("x", function(datum, index) { return x(index); }).
97 attr("y", function(datum) { return height - y2(datum.cassandra); }).
98 attr("height", function(datum) { return y2(datum.cassandra); }).
99 attr("width", barWidth).
100 attr("fill", "#aa0000");
101
102 cassandra_text.
103 enter().
104 append("svg:text").
105 text(function(){return "Cassandra"}).
106 attr("x", function(datum, index) { return x(index); }).
107 attr("y", function(datum) { return 30 ; }).
108 attr("height", function(datum) { return y(datum.onos); }).
109 attr("width", barWidth).
110 attr('fill', 'white');
111
Ubuntuc016ba12013-02-27 21:53:41 +0000112
Masayoshi Kobayashifc5e2372013-02-27 20:21:28 +0000113 controller_rect.
114 attr("x", function(datum, index) { return x(index); }).
115 attr("y", function(datum) { return height - y(datum.onos); }).
116 attr("height", function(datum) { return y(datum.onos); }).
117 attr("width", barWidth).
Ubuntuc016ba12013-02-27 21:53:41 +0000118 attr("fill", function(datum, index) {
119 if (index == 0){
120 return "red"
121 }else if (index == 1){
122 return "blue"
123 }else if (index == 2){
124 return "green"
125 }else if (index == 3){
126 return "orange"
127 }else{
128 return "black"
129 }
130 });
Masayoshi Kobayashifc5e2372013-02-27 20:21:28 +0000131
132 controller_text.
133 text(function(){return "ONOS"}).
134 attr("x", function(datum, index) { return x(index)+10; }).
135 attr("y", function(datum) { return 30 ; }).
136 attr("height", function(datum) { return y(datum.onos); }).
137 attr("width", barWidth).
138 attr('fill', 'white');
139
140 cassandra_rect.
141 attr("x", function(datum, index) { return x(index); }).
142 attr("y", function(datum) { return height - y2(datum.cassandra); }).
143 attr("height", function(datum) { return y2(datum.cassandra); }).
144 attr("width", barWidth).
145 attr("fill", "#aa0000");
146
147 cassandra_text.
148 text(function(){return "Cassandra"}).
149 attr("x", function(datum, index) { return x(index); }).
150 attr("y", function(datum) { return 30 ; }).
151 attr("height", function(datum) { return y(datum.cassandra); }).
152 attr("width", barWidth).
153 attr('fill', 'white');
154
155
156 server.exit().remove();
157 controller_rect.exit().remove();
158 controller_text.exit().remove();
159 cassandra_rect.exit().remove();
160 cassandra_text.exit().remove();
Ubuntuc016ba12013-02-27 21:53:41 +0000161
162 setInterval(function() {
163 $.ajax({
164 url: data_source,
165 success: function(json) {
166 draw(json)
167 },
168 dataType: "json"
169 });
170 }, 3000);
Masayoshi Kobayashifc5e2372013-02-27 20:21:28 +0000171 }
Ubuntuc016ba12013-02-27 21:53:41 +0000172/*
Masayoshi Kobayashifc5e2372013-02-27 20:21:28 +0000173 $("#more").click( function() {
174 $.ajax({
175 url: 'http://gui.onlab.us:8080/controller_status1',
176 success: function(json) {
177 draw(json);
178 },
179 dataType: "json"
180 });
181 });
182 $("#less").click( function() {
183 $.ajax({
184 url: 'http://gui.onlab.us:8080/controller_status2',
185 success: function(json) {
186 draw(json);
187 },
188 dataType: "json"
189 });
190 });
Ubuntuc016ba12013-02-27 21:53:41 +0000191*/
Masayoshi Kobayashifc5e2372013-02-27 20:21:28 +0000192}
193