def make_report(e): """ Formats a bug report. """ import platform as _platform from ajenti.plugins import manager from ajenti import platform, platform_string, platform_unmapped, installation_uid, version, debug # Finalize the reported log logging.blackbox.stop() return """Ajenti %s bug report -------------------- Detected platform: %s / %s / %s Architecture: %s Python: %s Installation: %s Debug: %s Loaded plugins: %s %s Log content: %s """ % ( version, platform, platform_unmapped, platform_string, subprocess.check_output(['uname', '-mp']), '.'.join([str(x) for x in _platform.python_version_tuple()]), installation_uid, debug, ' '.join(manager.get_order()), traceback.format_exc(e), logging.blackbox.buffer, )
def make_report(): """ Formats a bug report. """ import platform as _platform from ajenti.plugins import manager from ajenti import platform, platform_string, platform_unmapped, installation_uid, version, debug # Finalize the reported log logging.blackbox.stop() return (('Ajenti %s bug report\n' + '--------------------\n\n' + 'Detected platform: %s / %s / %s\n' + 'Python: %s\n' + 'Installation: %s\n' + 'Debug: %s\n' + 'Loaded plugins:\n%s\n\n' + '%s\n\n' 'Log:\n%s\n') % ( version, platform, platform_unmapped, platform_string, '.'.join([str(x) for x in _platform.python_version_tuple()]), installation_uid, debug, ' '.join(manager.get_order()), traceback.format_exc(), logging.blackbox.buffer, ))
def make_report(): """ Formats a bug report. """ import platform as _platform from ajenti.plugins import manager from ajenti import platform, platform_string, platform_unmapped, installation_uid, version, debug # Finalize the reported log logging.blackbox.stop() return (('Ajenti %s bug report\n' + '--------------------\n\n' + 'Detected platform: %s / %s / %s\n' + 'Python: %s\n' + 'Installation: %s\n' + 'Debug: %s\n' + 'Loaded plugins:\n%s\n\n' + '%s\n\n' 'Log:\n%s\n' ) % (version, platform, platform_unmapped, platform_string, '.'.join([str(x) for x in _platform.python_version_tuple()]), installation_uid, debug, ' '.join(manager.get_order()), traceback.format_exc(), logging.blackbox.buffer, ))
def make_report(e): """ Formats a bug report. """ import platform as _platform from ajenti.plugins import manager from ajenti import platform, platform_unmapped, platform_string, installation_uid, version, debug # Finalize the reported log logging.blackbox.stop() tb = traceback.format_exc(e) tb = '\n'.join(' ' + x for x in tb.splitlines()) log = logging.blackbox.buffer log = '\n'.join(' ' + x for x in log.splitlines()) catcher_url = None try: report = catcher.collect(e) html = catcher.formatters.HTMLFormatter().format(report, maxdepth=3) catcher_url = catcher.uploaders.AjentiOrgUploader().upload(html) except: pass return """Ajenti bug report -------------------- Info | Value ----- | ----- Ajenti | %s Platform | %s / %s / %s Architecture | %s Python | %s Installation | %s Debug | %s Catcher report | %s Loaded plugins | %s %s Log content: %s """ % ( version, platform, platform_unmapped, platform_string.strip(), subprocess.check_output(['uname', '-mp']).strip(), '.'.join([str(x) for x in _platform.python_version_tuple()]), installation_uid, debug, catcher_url or 'Failed to upload traceback', ', '.join(sorted(manager.get_order())), tb, log, )
def precache(self): from ajenti.ui import UI temp_ui = UI.new() for plugin in manager.get_order(): layout_dir = os.path.join(manager.resolve_path(plugin), 'layout') if os.path.exists(layout_dir): for layout in os.listdir(layout_dir): layout = '%s:%s' % (plugin, layout.split('.')[0]) logging.debug('Precaching layout %s' % layout) self.inflate(temp_ui, layout)
def make_report(e): """ Formats a bug report. """ import platform as _platform from ajenti.plugins import manager from ajenti import platform, platform_unmapped, platform_string, installation_uid, version, debug # Finalize the reported log logging.blackbox.stop() tb = traceback.format_exc(e) catcher_url = None try: report = catcher.collect(e) html = catcher.formatters.HTMLFormatter().format(report, maxdepth=3) catcher_url = catcher.uploaders.AjentiOrgUploader().upload(html) except: pass return """Ajenti %s bug report -------------------- Detected platform: %s / %s / %s Architecture: %s Python: %s Installation: %s Debug: %s Locale: %s Loaded plugins: %s %s %s Log content: %s """ % ( version, platform, platform_unmapped, platform_string, subprocess.check_output(['uname', '-mp']), '.'.join([str(x) for x in _platform.python_version_tuple()]), installation_uid, debug, locale.getlocale(locale.LC_MESSAGES), ' '.join(manager.get_order()), tb, catcher_url or 'Failed to upload traceback', logging.blackbox.buffer, )
def precache(self): from ajenti.ui import UI temp_ui = UI.new() for plugin in manager.get_order(): layout_dir = os.path.join(manager.resolve_path(plugin), "layout") if os.path.exists(layout_dir): for layout in os.listdir(layout_dir): layout_name = os.path.splitext(layout)[0] if layout_name: layout = "%s:%s" % (plugin, layout_name) logging.debug("Precaching layout %s" % layout) self.inflate(temp_ui, layout)
def scan(self): for plugin in manager.get_order(): pfiles = {} path = os.path.join(manager.resolve_path(plugin), 'content') if not os.path.exists(path): continue for (dp, dn, fn) in os.walk(path): for name in fn: for key in self.patterns: if re.match(self.patterns[key], name): pfiles.setdefault(key, []).append(os.path.join(dp, name)) for key in self.patterns: self.files.setdefault(key, []).extend(sorted(pfiles.setdefault(key, [])))
def make_report(e): """ Formats a bug report. """ import platform as _platform from ajenti.plugins import manager from ajenti import platform, platform_unmapped, platform_string, installation_uid, version, debug # Finalize the reported log logging.blackbox.stop() tb = traceback.format_exc(e) tb = '\n'.join(' ' + x for x in tb.splitlines()) log = logging.blackbox.buffer log = '\n'.join(' ' + x for x in log.splitlines()) catcher_url = None try: report = catcher.collect(e) html = catcher.formatters.HTMLFormatter().format(report, maxdepth=3) catcher_url = catcher.uploaders.AjentiOrgUploader().upload(html) except: pass import gevent import greenlet import reconfigure import requests import psutil return """Ajenti bug report -------------------- Info | Value ----- | ----- Ajenti | %s Platform | %s / %s / %s Architecture | %s Python | %s Installation | %s Debug | %s Catcher report | %s Loaded plugins | %s Library | Version ------- | ------- gevent | %s greenlet | %s reconfigure | %s requests | %s psutil | %s %s Log content: %s """ % ( version, platform, platform_unmapped, platform_string.strip(), subprocess.check_output(['uname', '-mp']).strip(), '.'.join([str(x) for x in _platform.python_version_tuple()]), installation_uid, debug, catcher_url or 'Failed to upload traceback', ', '.join(sorted(manager.get_order())), gevent.__version__, greenlet.__version__, reconfigure.__version__, requests.__version__, psutil.__version__, tb, log, )