@@ -52,7 +52,6 @@ impl NodeStatusUpdater {
52
52
let nodes = self . store_context . node_store . get_nodes ( ) ;
53
53
for node in nodes {
54
54
if node. status == NodeStatus :: Dead {
55
- println ! ( "Node is dead, checking if we need to remove from chain" ) ;
56
55
let node_in_pool: bool = match self
57
56
. contracts
58
57
. compute_pool
@@ -98,8 +97,17 @@ impl NodeStatusUpdater {
98
97
. heartbeat_store
99
98
. get_unhealthy_counter ( & node. address ) ;
100
99
match heartbeat {
101
- Some ( _ ) => {
100
+ Some ( beat ) => {
102
101
// We have a heartbeat
102
+ if let Some ( version) = & beat. version {
103
+ if node. version . as_ref ( ) != Some ( version) {
104
+ let _: ( ) = self
105
+ . store_context
106
+ . node_store
107
+ . update_node_version ( & node. address , version) ;
108
+ }
109
+ }
110
+
103
111
if node. status == NodeStatus :: Unhealthy
104
112
|| node. status == NodeStatus :: WaitingForHeartbeat
105
113
{
@@ -181,6 +189,7 @@ mod tests {
181
189
status : NodeStatus :: WaitingForHeartbeat ,
182
190
task_id : None ,
183
191
task_state : None ,
192
+ version : None ,
184
193
} ;
185
194
186
195
let _: ( ) = app_state. store_context . node_store . add_node ( node. clone ( ) ) ;
@@ -189,6 +198,7 @@ mod tests {
189
198
task_id : None ,
190
199
task_state : None ,
191
200
metrics : None ,
201
+ version : Some ( env ! ( "CARGO_PKG_VERSION" ) . to_string ( ) ) ,
192
202
} ;
193
203
let _: ( ) = app_state. store_context . heartbeat_store . beat ( & heartbeat) ;
194
204
@@ -228,6 +238,7 @@ mod tests {
228
238
status : NodeStatus :: Healthy ,
229
239
task_id : None ,
230
240
task_state : None ,
241
+ version : None ,
231
242
} ;
232
243
233
244
let _: ( ) = app_state. store_context . node_store . add_node ( node. clone ( ) ) ;
@@ -267,6 +278,7 @@ mod tests {
267
278
status : NodeStatus :: Unhealthy ,
268
279
task_id : None ,
269
280
task_state : None ,
281
+ version : None ,
270
282
} ;
271
283
272
284
let _: ( ) = app_state. store_context . node_store . add_node ( node. clone ( ) ) ;
@@ -311,6 +323,7 @@ mod tests {
311
323
status : NodeStatus :: Unhealthy ,
312
324
task_id : None ,
313
325
task_state : None ,
326
+ version : None ,
314
327
} ;
315
328
316
329
let _: ( ) = app_state. store_context . node_store . add_node ( node. clone ( ) ) ;
@@ -355,6 +368,7 @@ mod tests {
355
368
status : NodeStatus :: Unhealthy ,
356
369
task_id : None ,
357
370
task_state : None ,
371
+ version : None ,
358
372
} ;
359
373
let _: ( ) = app_state
360
374
. store_context
@@ -366,6 +380,7 @@ mod tests {
366
380
task_id : None ,
367
381
task_state : None ,
368
382
metrics : None ,
383
+ version : Some ( env ! ( "CARGO_PKG_VERSION" ) . to_string ( ) ) ,
369
384
} ;
370
385
let _: ( ) = app_state. store_context . heartbeat_store . beat ( & heartbeat) ;
371
386
let _: ( ) = app_state. store_context . node_store . add_node ( node. clone ( ) ) ;
@@ -412,6 +427,7 @@ mod tests {
412
427
status : NodeStatus :: Unhealthy ,
413
428
task_id : None ,
414
429
task_state : None ,
430
+ version : None ,
415
431
} ;
416
432
let _: ( ) = app_state
417
433
. store_context
@@ -426,6 +442,7 @@ mod tests {
426
442
status : NodeStatus :: Healthy ,
427
443
task_id : None ,
428
444
task_state : None ,
445
+ version : None ,
429
446
} ;
430
447
431
448
let _: ( ) = app_state. store_context . node_store . add_node ( node2. clone ( ) ) ;
@@ -483,6 +500,7 @@ mod tests {
483
500
status : NodeStatus :: Unhealthy ,
484
501
task_id : None ,
485
502
task_state : None ,
503
+ version : None ,
486
504
} ;
487
505
488
506
let _: ( ) = app_state. store_context . node_store . add_node ( node. clone ( ) ) ;
@@ -519,6 +537,7 @@ mod tests {
519
537
task_id : None ,
520
538
task_state : None ,
521
539
metrics : None ,
540
+ version : Some ( env ! ( "CARGO_PKG_VERSION" ) . to_string ( ) ) ,
522
541
} ;
523
542
let _: ( ) = app_state. store_context . heartbeat_store . beat ( & heartbeat) ;
524
543
0 commit comments