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'])