Skip to content

Commit 89854fd

Browse files
committed
Adapt to new "ignore_version_error" API
1 parent 602b967 commit 89854fd

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

openpectus_engine_manager_gui/__init__.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
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:

openpectus_engine_manager_gui/test.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def test_read_write_persistent_data(self):
2323
"aggregator_port",
2424
"aggregator_secure",
2525
"aggregator_secret",
26+
"ignore_version_error",
2627
"uods",
2728
"local_aggregator",
2829
]
@@ -41,6 +42,7 @@ def engine_manager_factory(uods: List[str]) -> openpectus_engine_manager_gui.Eng
4142
aggregator_port=443,
4243
aggregator_secure=True,
4344
aggregator_secret="",
45+
ignore_version_error=False,
4446
local_aggregator=False,
4547
uods=[demo_uod.__file__],
4648
),

0 commit comments

Comments
 (0)