Merge branch 'develop' into dependabot/npm_and_yarn/gui/develop/vite-plugin-electron-0.28.2

This commit is contained in:
DJ2LS 2024-02-19 11:45:43 +01:00 committed by GitHub
commit d95bea09a8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 24 additions and 19 deletions

View file

@ -182,7 +182,6 @@ class ARQSessionISS(arq_session.ARQSession):
self.states.setARQ(False)
self.arq_data_type_handler.failed(self.type_byte, self.data)
return None, None
def abort_transmission(self, irs_frame=None):

View file

@ -171,21 +171,27 @@ class DatabaseManagerMessages(DatabaseManager):
finally:
session.remove()
def increment_message_attempts(self, message_id):
session = self.get_thread_scoped_session()
def increment_message_attempts(self, message_id, session=None):
own_session = False
if not session:
session = self.get_thread_scoped_session()
own_session = True
try:
message = session.query(P2PMessage).filter_by(id=message_id).first()
if message:
message.attempt += 1
session.commit()
if own_session:
session.commit()
self.log(f"Incremented attempt count for message {message_id}")
else:
self.log(f"Message with ID {message_id} not found")
except Exception as e:
session.rollback()
if own_session:
session.rollback()
self.log(f"An error occurred while incrementing attempts for message {message_id}: {e}")
finally:
session.remove()
if own_session:
session.remove()
def mark_message_as_read(self, message_id):
session = self.get_thread_scoped_session()
@ -217,23 +223,21 @@ class DatabaseManagerMessages(DatabaseManager):
return
# Query for messages with the specified callsign, 'failed' status, and fewer than 10 attempts
messages = session.query(P2PMessage) \
.filter(P2PMessage.origin_callsign == callsign) \
message = session.query(P2PMessage) \
.filter(P2PMessage.destination_callsign == callsign) \
.filter(P2PMessage.status_id == failed_status.id) \
.filter(P2PMessage.attempt < 10) \
.all()
.first()
if messages:
# Update each message's status to 'queued'
for message in messages:
# Increment attempt count using the existing function
self.increment_message_attempts(message.id)
if message:
# Increment attempt count using the existing function
self.increment_message_attempts(message.id, session)
message.status_id = queued_status.id
self.log(f"Set message {message.id} to queued and incremented attempt")
message.status_id = queued_status.id
self.log(f"Set message {message.id} to queued and incremented attempt")
session.commit()
return {'status': 'success', 'message': f'{len(messages)} message(s) set to queued'}
return {'status': 'success', 'message': f'{len(message)} message(s) set to queued'}
else:
return {'status': 'failure', 'message': 'No eligible messages found'}
except Exception as e:

View file

@ -103,7 +103,7 @@ class TestARQSession(unittest.TestCase):
def waitForSession(self, q, outbound = False):
key = 'arq-transfer-outbound' if outbound else 'arq-transfer-inbound'
while True:
while True and self.channels_running:
ev = q.get()
if key in ev and ('success' in ev[key] or 'ABORTED' in ev[key]):
self.logger.info(f"[{threading.current_thread().name}] {key} session ended.")
@ -125,6 +125,7 @@ class TestARQSession(unittest.TestCase):
def waitAndCloseChannels(self):
self.waitForSession(self.iss_event_queue, True)
self.channels_running = False
self.waitForSession(self.irs_event_queue, False)
self.channels_running = False

View file

@ -108,7 +108,7 @@ class TestMessageProtocol(unittest.TestCase):
def waitForSession(self, q, outbound=False):
key = 'arq-transfer-outbound' if outbound else 'arq-transfer-inbound'
while True:
while True and self.channels_running:
ev = q.get()
if key in ev and ('success' in ev[key] or 'ABORTED' in ev[key]):
self.logger.info(f"[{threading.current_thread().name}] {key} session ended.")
@ -130,6 +130,7 @@ class TestMessageProtocol(unittest.TestCase):
def waitAndCloseChannels(self):
self.waitForSession(self.iss_event_queue, True)
self.channels_running = False
self.waitForSession(self.irs_event_queue, False)
self.channels_running = False