Exemplo n.º 1
0
    def status(self):
        from supervisor.medusa.util import english_bytes

        def nice_bytes(n):
            return ''.join(english_bytes(n))

        handler_stats = [_f for _f in map(maybe_status, self.handlers) if _f]

        if self.total_clients:
            ratio = self.total_requests.as_long() / float(
                self.total_clients.as_long())
        else:
            ratio = 0.0

        return producers.composite_producer([
            producers.lines_producer([
                '<h2>%s</h2>' % self.SERVER_IDENT,
                '<br>Listening on: <b>Host:</b> %s' % self.server_name,
                '<b>Port:</b> %d' % self.port,
                '<p><ul>'
                '<li>Total <b>Clients:</b> %s' % self.total_clients,
                '<b>Requests:</b> %s' % self.total_requests,
                '<b>Requests/Client:</b> %.1f' % ratio,
                '<li>Total <b>Bytes In:</b> %s' %
                (nice_bytes(self.bytes_in.as_long())),
                '<b>Bytes Out:</b> %s' %
                (nice_bytes(self.bytes_out.as_long())),
                '<li>Total <b>Exceptions:</b> %s' % self.exceptions,
                '</ul><p>'
                '<b>Extension List</b><ul>',
            ])
        ] + handler_stats + [producers.simple_producer('</ul>')])
Exemplo n.º 2
0
    def status (self):
        from supervisor.medusa.status_handler import english_bytes
        def nice_bytes (n):
            return ''.join(english_bytes (n))

        handler_stats = [_f for _f in map (maybe_status, self.handlers) if _f]

        if self.total_clients:
            ratio = self.total_requests.as_long() / float(self.total_clients.as_long())
        else:
            ratio = 0.0

        return producers.composite_producer (
                [producers.lines_producer (
                        ['<h2>%s</h2>'                                                  % self.SERVER_IDENT,
                        '<br>Listening on: <b>Host:</b> %s'             % self.server_name,
                        '<b>Port:</b> %d'                                               % self.port,
                         '<p><ul>'
                         '<li>Total <b>Clients:</b> %s'                 % self.total_clients,
                         '<b>Requests:</b> %s'                                  % self.total_requests,
                         '<b>Requests/Client:</b> %.1f'                 % ratio,
                         '<li>Total <b>Bytes In:</b> %s'        % (nice_bytes (self.bytes_in.as_long())),
                         '<b>Bytes Out:</b> %s'                         % (nice_bytes (self.bytes_out.as_long())),
                         '<li>Total <b>Exceptions:</b> %s'              % self.exceptions,
                         '</ul><p>'
                         '<b>Extension List</b><ul>',
                         ])] + handler_stats + [producers.simple_producer('</ul>')]
                )
Exemplo n.º 3
0
 def cmd_help (self, line):
     """give help information"""
     # find all the methods that match 'cmd_xxxx',
     # use their docstrings for the help response.
     attrs = dir(self.__class__)
     help_lines = []
     for attr in attrs:
         if attr[:4] == 'cmd_':
             x = getattr (self, attr)
             if type(x) == type(self.cmd_help):
                 if x.__doc__:
                     help_lines.append ('\t%s\t%s' % (attr[4:], x.__doc__))
     if help_lines:
         self.push ('214-The following commands are recognized\r\n')
         self.push_with_producer (producers.lines_producer (help_lines))
         self.push ('214\r\n')
     else:
         self.push ('214-\r\n\tHelp Unavailable\r\n214\r\n')
Exemplo n.º 4
0
    def status(self):
        def nice_bytes(n):
            return ''.join(status_handler.english_bytes(n))

        return producers.lines_producer([
            '<h2>%s</h2>' % self.SERVER_IDENT,
            '<br>Listening on <b>Host:</b> %s' % self.hostname,
            '<b>Port:</b> %d' % self.port,
            '<br>Sessions',
            '<b>Total:</b> %s' % self.total_sessions,
            '<b>Current:</b> %d' %
            (self.total_sessions.as_long() - self.closed_sessions.as_long()),
            '<br>Files',
            '<b>Sent:</b> %s' % self.total_files_out,
            '<b>Received:</b> %s' % self.total_files_in,
            '<br>Bytes',
            '<b>Sent:</b> %s' % nice_bytes(self.total_bytes_out.as_long()),
            '<b>Received:</b> %s' % nice_bytes(self.total_bytes_in.as_long()),
            '<br>Exceptions: %s' % self.total_exceptions,
        ])
Exemplo n.º 5
0
    def status (self):

        def nice_bytes (n):
            return ''.join(status_handler.english_bytes(n))

        return producers.lines_producer (
                ['<h2>%s</h2>'                          % self.SERVER_IDENT,
                 '<br>Listening on <b>Host:</b> %s' % self.hostname,
                 '<b>Port:</b> %d'                      % self.port,
                 '<br>Sessions',
                 '<b>Total:</b> %s'                     % self.total_sessions,
                 '<b>Current:</b> %d'           % (self.total_sessions.as_long() - self.closed_sessions.as_long()),
                 '<br>Files',
                 '<b>Sent:</b> %s'                      % self.total_files_out,
                 '<b>Received:</b> %s'          % self.total_files_in,
                 '<br>Bytes',
                 '<b>Sent:</b> %s'                      % nice_bytes (self.total_bytes_out.as_long()),
                 '<b>Received:</b> %s'          % nice_bytes (self.total_bytes_in.as_long()),
                 '<br>Exceptions: %s'           % self.total_exceptions,
                 ]
                )
Exemplo n.º 6
0
 def check_composite (self):
     p1 = producers.simple_producer('a'*66, buffer_size = 5)
     p2 = producers.lines_producer(['b']*65)
     p = producers.composite_producer([p1, p2])
     self._check_all(p, 'a'*66 + 'b\r\n'*65)
Exemplo n.º 7
0
 def check_lines (self):
     p = producers.lines_producer(['a']* 65)
     self._check_all(p, 'a\r\n'*65)
Exemplo n.º 8
0
 def check_composite (self):
     p1 = producers.simple_producer('a'*66, buffer_size = 5)
     p2 = producers.lines_producer(['b']*65)
     p = producers.composite_producer([p1, p2])
     self._check_all(p, 'a'*66 + 'b\r\n'*65)
Exemplo n.º 9
0
 def check_lines (self):
     p = producers.lines_producer(['a']* 65)
     self._check_all(p, 'a\r\n'*65)