From d06f505a8403f8415c37670f83ef986c654f03ed Mon Sep 17 00:00:00 2001 From: 2Shirt <2xShirt@gmail.com> Date: Fri, 17 May 2019 15:07:33 -0600 Subject: [PATCH] Post report to osTicket * Addresses issue #62 --- .bin/Scripts/functions/ddrescue.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/.bin/Scripts/functions/ddrescue.py b/.bin/Scripts/functions/ddrescue.py index 92137d05..a9f59e82 100644 --- a/.bin/Scripts/functions/ddrescue.py +++ b/.bin/Scripts/functions/ddrescue.py @@ -273,6 +273,8 @@ class RecoveryState(): self.resumed = False self.started = False self.status = 'Inactive' + self.ticket_id = None + self.ticket_name = None self.timezone = pytz.timezone(LINUX_TIME_ZONE) self.total_size = 0 if mode not in ('clone', 'image'): @@ -577,8 +579,6 @@ class RecoveryState(): map_dir = '{}/{}'.format(MAP_DIR, global_vars['Date-Time']) # Get Ticket ID - self.ticket_id = None - self.ticket_name = None if not self.ost.disabled: try: self.ticket_id, self.ticket_name = self.ost.get_ticket_details() @@ -861,6 +861,7 @@ def is_writable_filesystem(dir_obj): def menu_ddrescue(source_path, dest_path, run_mode): + # pylint: disable=too-many-branches """ddrescue menu.""" source = None dest = None @@ -910,8 +911,18 @@ def menu_ddrescue(source_path, dest_path, run_mode): # Post results if ask('Post results to osTicket?'): - # TODO - pass + if not state.ticket_id: + # (Re)enable osTicket + state.ost.disabled = False + try: + state.ticket_id, state.ticket_name = state.ost.get_ticket_details() + except TypeError: + # Happens if connection fails and retry is not attempted + pass + + # Post + if state.ticket_id: + state.ost.post_response(state.generate_report(), state.ticket_id) # Done run_program(['tmux', 'kill-window'])