Example #1
0
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,
    )
Example #2
0
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,
             ))
Example #3
0
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,
              ))
Example #4
0
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,
    )
Example #5
0
 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)
Example #6
0
 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)
Example #7
0
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,
    )
Example #8
0
    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)
Example #9
0
 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, [])))
Example #10
0
 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, [])))
Example #11
0
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,
    )
Example #12
0
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,
    )