@@ -12,16 +12,16 @@ import {
12
12
getWebSocket
13
13
} from './utils/request' ;
14
14
15
- var STARTED = 0 ;
15
+ let STARTED = 0 ;
16
16
17
- let SINGLETON ,
18
- CURRENT_SERVICES_URIS ;
17
+ let SINGLETON ;
18
+ let CURRENT_SERVICES_URIS ;
19
19
20
20
let PHYSICAL_STRUCT ;
21
21
22
- function tutumEventHandler ( e ) {
22
+ let tutumEventHandler = ( e ) => {
23
23
console . log ( e ) ;
24
- }
24
+ } ;
25
25
26
26
let nodeOrContainerExists = ( arr , value ) => {
27
27
@@ -40,16 +40,18 @@ let strToHash = (str) => {
40
40
return hash ;
41
41
} ;
42
42
43
- let stringToColour = ( str ) => {
44
- let hash = strToHash ( str ) ;
45
-
46
- // int/hash to hex
47
- let colour = "#" ;
43
+ let hashToHexColor = ( hash ) => {
44
+ let color = "#" ;
48
45
for ( var i = 0 ; i < 3 ; ) {
49
- colour += ( "00" + ( ( hash >> i ++ * 8 ) & 0xFF ) . toString ( 16 ) ) . slice ( - 2 ) ;
46
+ color += ( "00" + ( ( hash >> i ++ * 8 ) & 0xFF ) . toString ( 16 ) ) . slice ( - 2 ) ;
50
47
}
48
+ return color ;
49
+ }
51
50
52
- return colour ;
51
+ let stringToColor = ( str ) => {
52
+ let hash = strToHash ( str ) ;
53
+ let color = hashToHexColor ( hash ) ;
54
+ return color ;
53
55
} ;
54
56
55
57
let physicalStructProvider = ( [ initialNodes , initialContainers ] ) => {
@@ -65,23 +67,25 @@ let physicalStructProvider = ([initialNodes, initialContainers]) => {
65
67
var node = _ . find ( cluster . children , { ID :NodeID } ) ;
66
68
if ( ! node ) return ;
67
69
var dt = new Date ( cloned . UpdatedAt ) ;
68
- var color = stringToColour ( cloned . ServiceID ) ;
70
+ var color = stringToColor ( cloned . ServiceID ) ;
69
71
let tagName = cloned . Spec . ContainerSpec . Image . split ( ':' ) [ 1 ] ;
70
- if ( ! tagName ) {
71
- tagName = "latest" ;
72
- }
73
-
74
- let imageTag = "<span style='color:" + color + "; font-weight: bold;font-size: 12px'>" + cloned . Spec . ContainerSpec . Image . split ( ':' ) [ 0 ] + "</span>" +
75
- "<br/> tag : " + tagName +
76
- "<br/>" + ( cloned . Spec . ContainerSpec . Args ?" cmd : " + cloned . Spec . ContainerSpec . Args :"" ) +
77
- "<br/> updated : " + dt . getDate ( ) + "/" + ( dt . getMonth ( ) + 1 ) + " " + dt . getHours ( ) + ":" + dt . getMinutes ( ) +
78
- "<br/> ID : " + cloned . Status . ContainerStatus . ContainerID +
79
- "<br/>" ;
72
+ let dateStamp = dt . getDate ( ) + "/" + ( dt . getMonth ( ) + 1 ) + " " + dt . getHours ( ) + ":" + dt . getMinutes ( ) ;
73
+
74
+ let imageTag = "<div style='height: 100%; padding: 5px 5px 5px 5px; border: 1px solid " + color + "'>" +
75
+ "<span style='color: white; font-weight: bold;font-size: 12px'>" + cloned . Spec . ContainerSpec . Image . split ( ':' ) [ 0 ] + "</span>" +
76
+ "<br/> tag : " + ( tagName ? tagName : "latest" ) +
77
+ "<br/>" + ( cloned . Spec . ContainerSpec . Args ?" cmd : " + cloned . Spec . ContainerSpec . Args :"" ) +
78
+ "<br/> updated : " + dateStamp +
79
+ "<br/> ID : " + cloned . Status . ContainerStatus . ContainerID +
80
+ "<br/>" +
81
+ "</div>" ;
82
+
80
83
cloned . tag = imageTag ;
81
84
node . children . push ( cloned ) ;
82
85
return true ;
83
86
} ) ;
84
87
} ,
88
+
85
89
updateContainer = ( container ) => {
86
90
let { uuid, node} = container ;
87
91
let [ nodeUuid ] = uuidRegExp . exec ( node ) ;
@@ -96,6 +100,7 @@ let physicalStructProvider = ([initialNodes, initialContainers]) => {
96
100
return true ;
97
101
} ) ;
98
102
} ,
103
+
99
104
data = ( ) => {
100
105
let clone = _ . cloneDeep ( root ) ;
101
106
_ . remove ( clone , ( { uuid, children} ) => {
@@ -104,19 +109,23 @@ let physicalStructProvider = ([initialNodes, initialContainers]) => {
104
109
105
110
return { root : clone } ;
106
111
} ,
112
+
107
113
addNodeCluster = ( nodeCluster ) => {
108
114
var cloned = Object . assign ( { } , nodeCluster ) ;
109
115
cloned . children = [ ] ;
110
116
console . log ( cloned ) ;
111
117
root . push ( cloned ) ;
112
118
} ,
119
+
113
120
removeNodeCluster = ( nodeCluster ) => {
114
121
_ . remove ( root , { uuid : nodeCluster . uuid } ) ;
115
122
} ,
123
+
116
124
updateNodeCluster = ( nodeCluster ) => {
117
125
var currentCluster = _ . findWhere ( root , { uuid : nodeCluster . uuid } ) ;
118
126
Object . assign ( currentCluster , nodeCluster ) ;
119
127
} ,
128
+
120
129
addNode = ( node ) => {
121
130
let cloned = Object . assign ( { } , node ) ;
122
131
cloned . children = [ ] ;
@@ -206,15 +215,12 @@ let physicalStructProvider = ([initialNodes, initialContainers]) => {
206
215
} ;
207
216
}
208
217
209
-
210
-
211
218
class DataProvider extends EventEmitter {
212
- constructor ( ) {
219
+ constructor ( ) {
213
220
super ( )
214
-
215
221
}
216
222
217
- start ( ) {
223
+ start ( ) {
218
224
STARTED = 1 ;
219
225
//console.log(STARTED);
220
226
var clusterInit = Promise . all ( [
@@ -226,16 +232,18 @@ class DataProvider extends EventEmitter {
226
232
return resources ;
227
233
} ) ;
228
234
229
- Promise . all ( [ clusterInit ] )
235
+ Promise . all ( [ clusterInit ] )
230
236
. then ( ( [ resources ] ) => {
231
- PHYSICAL_STRUCT = physicalStructProvider ( resources ) ;
232
- this . emit ( 'infrastructure-data' , PHYSICAL_STRUCT . data ( ) ) ;
233
- this . emit ( 'start-reload' ) ;
237
+ PHYSICAL_STRUCT = physicalStructProvider ( resources ) ;
238
+ this . emit ( 'infrastructure-data' , PHYSICAL_STRUCT . data ( ) ) ;
239
+ this . emit ( 'start-reload' ) ;
234
240
} ) ;
235
241
}
242
+
236
243
reload ( ) {
237
- if ( STARTED == 0 ) return ;
244
+ if ( STARTED == 0 ) return ;
238
245
STARTED ++ ;
246
+
239
247
// console.log(STARTED);
240
248
var clusterInit = Promise . all ( [
241
249
getAllNodes ( ) ,
@@ -246,13 +254,12 @@ class DataProvider extends EventEmitter {
246
254
return resources ;
247
255
} ) ;
248
256
249
- Promise . all ( [ clusterInit ] )
250
- . then ( ( [ resources ] ) => {
257
+ Promise . all ( [ clusterInit ] )
258
+ . then ( ( [ resources ] ) => {
251
259
PHYSICAL_STRUCT . updateData ( resources ) ;
252
- this . emit ( 'infrastructure-data' , PHYSICAL_STRUCT . data ( ) ) ;
260
+ this . emit ( 'infrastructure-data' , PHYSICAL_STRUCT . data ( ) ) ;
253
261
} ) ;
254
262
}
255
-
256
263
}
257
264
258
265
export default SINGLETON = new DataProvider ( ) ;
0 commit comments