Skip to content

Commit

Permalink
Adds a debug command to view error log
Browse files Browse the repository at this point in the history
  • Loading branch information
DaveYesland committed Jun 4, 2024
1 parent 04a5de1 commit 823f062
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions pacu/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ def display_pacu_help():
to solve this problem
console/open_console Generate a URL that will log the current user/role in to
the AWS web console
debug Display the contents of the error log file
""")


Expand Down Expand Up @@ -179,7 +180,7 @@ class Main:
'assume_role', 'aws', 'console', 'data', 'delete_session', 'exec', 'exit', 'export_keys', 'help',
'import_keys', 'list', 'list_sessions', 'load_commands_file', 'ls', 'open_console', 'quit', 'regions',
'run', 'search', 'services', 'sessions', 'set_keys', 'set_regions', 'set_ua_suffix', 'swap_keys',
'swap_session', 'unset_ua_suffix', 'update_regions', 'use', 'whoami'
'swap_session', 'unset_ua_suffix', 'update_regions', 'use', 'whoami', 'debug'
]

def __init__(self):
Expand Down Expand Up @@ -211,7 +212,7 @@ def log_error(self, text, exception_info=None, session=None, local_data=None, gl
log_file_path = '{}/global_error_log.txt'.format(session_dir())

print('\n[{}] Pacu encountered an error while running the previous command. Check {} for technical '
'details. [LOG LEVEL: {}]\n\n {}\n'.format(timestamp, log_file_path,
'details, or use the debug command. [LOG LEVEL: {}]\n\n {}\n'.format(timestamp, log_file_path,
settings.ERROR_LOG_VERBOSITY.upper(), exception_info))

log_file_directory = os.path.dirname(log_file_path)
Expand Down Expand Up @@ -255,6 +256,14 @@ def log_error(self, text, exception_info=None, session=None, local_data=None, gl
print('Error while saving exception information. This means the exception was not added to any error log '
'and should most likely be provided to the developers.\n Exception raised: {}'.format(str(error)))
raise

def read_log_file(self):
log_file_path = '{}/error_log.txt'.format(session_dir())
if os.path.exists(log_file_path):
with open(log_file_path, 'r') as log_file:
print(log_file.read())
else:
print('No error log file found.')

# @message: String - message to print and/or write to file
# @output: String - where to output the message: both, file, or screen
Expand Down Expand Up @@ -619,6 +628,8 @@ def parse_command(self, command):
self.unset_user_agent_suffix()
elif command[0] == 'whoami':
self.print_key_info()
elif command[0] == 'debug':
self.read_log_file()
elif command[0] == 'exit' or command[0] == 'quit':
self.exit()
else:
Expand Down

0 comments on commit 823f062

Please sign in to comment.