You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update all modules so any Exceptions are caught in a way that is OK with Python3.x
and so it will past tests
NO:
pass
YES:
logger.error('Caught exception in module {mod}: {err}'.format(mod=module_name, err=err)
In modules, API keys are returned in Plugin.init. By doing this we have no real way to exit a module w/o raising an exception if an API key is invalid or doesn't exist. Move the API key check to one of the functions the key needs to use so we can log an error message to the user and return from the class gracefully w/o needing to raise an exception
Example:
class Plugin(object):
def __init__(self, artifact):
self.artifact = artifact
self.artifact['data']['censys'] = None
self.api_key = get_apikey('censys')
self.headers = {'User-Agent': 'OSINT Omnibus (https://github.com/InQuest/Omnibus)'}
def run(self):
if self.api_key == '':
error('API keys cannot be left blank | set all keys in etc/apikeys.json')
return
url = 'https://censys.io/api/v1/view/ipv4{0}'.format(self.artifact['name'])
try:
status, response = get(url, auth=(self.api_key['token'], self.api_key['secret']), headers=self.headers)
if status:
self.artifact['data']['censys'] = response.json()
except Exception as err:
warning('Caught exception in module {0}'.format(err)
def main(artifact):
plugin = Plugin(artifact)
plugin.run()
return plugin.artifact
The text was updated successfully, but these errors were encountered:
NO:
YES:
Example:
The text was updated successfully, but these errors were encountered: