5555 "aggregator_port" : "9800" ,
5656 "aggregator_secret" : "" ,
5757 "aggregator_secure" : False ,
58+ "ignore_version_error" : False ,
5859 "local_aggregator" : True ,
5960}
6061# Local aggregator database
@@ -129,6 +130,7 @@ class PersistentData(JsonData):
129130 "aggregator_port" : 443 ,
130131 "aggregator_secure" : True ,
131132 "aggregator_secret" : "" ,
133+ "ignore_version_error" : False ,
132134 "uods" : [],
133135 "local_aggregator" : False ,
134136 }
@@ -241,15 +243,16 @@ async def run_engine(loop: asyncio.EventLoop):
241243 logging .getLogger (name ).addHandler (self .log_handler )
242244 logging .getLogger (name ).addHandler (file_handler )
243245 # Figure out if we are using local aggregator
244- data_source = local_aggregator_data if self .persistent_data [' local_aggregator' ] else self .persistent_data
246+ data_source = local_aggregator_data if self .persistent_data [" local_aggregator" ] else self .persistent_data
245247 # Actually start engine
246248 try :
247249 uod = create_uod (uod_filename )
248250 except Exception as ex :
249251 log .error (f"Failed to create uod: { ex } " )
250252 return
251253 engine = Engine (uod , enable_archiver = True )
252- dispatcher = EngineDispatcher (f"{ data_source ['aggregator_hostname' ]} :{ data_source ['aggregator_port' ]} " , data_source ['aggregator_secure' ], uod .options , data_source ["aggregator_secret" ])
254+ message_builder = EngineMessageBuilder (engine , data_source ["aggregator_secret" ], data_source ["ignore_version_error" ])
255+ dispatcher = EngineDispatcher (message_builder , f"{ data_source ['aggregator_hostname' ]} :{ data_source ['aggregator_port' ]} " , data_source ["aggregator_secure" ], uod .options )
253256 if len (uod .required_roles ) > 0 and not dispatcher .is_aggregator_authentication_enabled ():
254257 log .warning ('"with_required_roles" specified in ' +
255258 f'"{ uod_filename } " but aggregator does ' +
@@ -275,7 +278,6 @@ async def run_engine(loop: asyncio.EventLoop):
275278 ErrorRecoveryConfig (),
276279 connection_status_tag
277280 )
278- message_builder = EngineMessageBuilder (engine )
279281 # create runner that orchestrates the error recovery mechanism
280282 runner = EngineRunner (
281283 dispatcher ,
@@ -516,20 +518,27 @@ def start(self):
516518 window .attributes ('-topmost' , True )
517519 local_ag_value = tk .BooleanVar ()
518520 ag_ssl_value = tk .BooleanVar ()
521+ ignore_version_error_value = tk .BooleanVar ()
519522 local_ag_value .set (self .persistent_data ["local_aggregator" ])
523+ ignore_version_error_value .set (self .persistent_data ["ignore_version_error" ])
520524
521525 # Create GUI elements
522526 label_local_ag = tk .Label (window , text = "Local aggregator" )
523527 label_ag_hostname = tk .Label (window , text = "Aggregator Hostname" )
524528 label_ag_port = tk .Label (window , text = "Aggregator Port" )
525529 label_ag_ssl = tk .Label (window , text = "Aggregator SSL" )
526530 label_ag_secret = tk .Label (window , text = "Aggregator Secret" )
531+ label_ignore_version_error = tk .Label (window , text = "Ignore aggregator/engine version deviation" )
527532 entry_ag_hostname = tk .Entry (window )
528533 entry_ag_port = tk .Entry (window )
529534 checkbox_ag_ssl = tk .Checkbutton (
530535 window ,
531536 variable = ag_ssl_value ,
532537 )
538+ checkbox_ignore_version_error = tk .Checkbutton (
539+ window ,
540+ variable = ignore_version_error_value ,
541+ )
533542 entry_ag_secret = tk .Entry (window )
534543
535544 def populate_input_widget_values ():
@@ -539,6 +548,7 @@ def populate_input_widget_values():
539548 entry_ag_port ,
540549 checkbox_ag_ssl ,
541550 entry_ag_secret ,
551+ checkbox_ignore_version_error ,
542552 ]
543553 # Select local aggregator data or latest saved data
544554 data_source = local_aggregator_data if local_ag_value .get () else self .persistent_data
@@ -579,6 +589,7 @@ def populate_input_widget_values():
579589 [label_ag_port , entry_ag_port ],
580590 [label_ag_ssl , checkbox_ag_ssl ],
581591 [label_ag_secret , entry_ag_secret ],
592+ [label_ignore_version_error , checkbox_ignore_version_error ],
582593 ]
583594 row_number = 0
584595 for row_number , (label , input_widget ) in enumerate (layout ):
@@ -619,6 +630,7 @@ def verify_connection_and_save():
619630 aggregator_port = entry_ag_port .get (),
620631 aggregator_secure = ag_ssl_value .get (),
621632 aggregator_secret = entry_ag_secret .get (),
633+ ignore_version_error = ignore_version_error_value .get (),
622634 local_aggregator = False ,
623635 ))
624636 except httpx .HTTPError :
0 commit comments