1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
(function( app ) {
var services = app.ns("services");
var ux = app.ns("ux");
services.ClusterState = ux.Observable.extend({
defaults: {
cluster: null
},
init: function() {
this._super();
this.cluster = this.config.cluster;
this.clusterState = null;
this.status = null;
this.nodeStats = null;
this.clusterNodes = null;
},
refresh: function() {
var self = this, clusterState, status, nodeStats, clusterNodes, clusterHealth;
function updateModel() {
if( clusterState && status && nodeStats && clusterNodes && clusterHealth ) {
this.clusterState = clusterState;
this.status = status;
this.nodeStats = nodeStats;
this.clusterNodes = clusterNodes;
this.clusterHealth = clusterHealth;
this.fire( "data", this );
}
}
this.cluster.get("_cluster/state", function( data ) {
clusterState = data;
updateModel.call( self );
});
this.cluster.get("_stats", function( data ) {
status = data;
updateModel.call( self );
});
this.cluster.get("_nodes/stats", function( data ) {
nodeStats = data;
updateModel.call( self );
});
this.cluster.get("_nodes", function( data ) {
clusterNodes = data;
updateModel.call( self );
});
this.cluster.get("_cluster/health", function( data ) {
clusterHealth = data;
updateModel.call( self );
});
},
_clusterState_handler: function(state) {
this.clusterState = state;
this.redraw("clusterState");
},
_status_handler: function(status) {
this.status = status;
this.redraw("status");
},
_clusterNodeStats_handler: function(stats) {
this.nodeStats = stats;
this.redraw("nodeStats");
},
_clusterNodes_handler: function(nodes) {
this.clusterNodes = nodes;
this.redraw("clusterNodes");
},
_clusterHealth_handler: function(health) {
this.clusterHealth = health;
this.redraw("status");
}
});
})( this.app );
|