Exemple #1
0
 def run(self):
     diff = time() - self.last_ack
     if self.max_idle < diff:
         diff = timedelta(seconds=diff)
         self.error("Stop %s: no answer since %s" % (self, fuzzyTimedelta(diff)))
         self.stop()
         return
     try:
         result = self.callService()
         result.addCallback(self.sendData)
         result.addErrback(self.sendError)
         return result
     except Exception, err:
         self.writeError(err, "Error in %s" % self)
         self.stop()
Exemple #2
0
    def fill(self):
        sessions = self.client.call('session', 'list')
        cookie = self.client.getCookie()
        self.checkboxes = []
        self.sessions = [session for session in sessions
            if ('cookie' not in session) or (session['cookie'] != cookie)]
        if not sessions:
            return False
        self.sessions.sort(key=lambda session: session['idle'])

        table = self.ui.session_table
        table.setRowCount(len(self.sessions))
        for row, session in enumerate(self.sessions):
            user = session['user']
            creation = fuzzyDatetime(parseDatetime(session['creation']))
            idle = timedelta(seconds=session['idle'])
            idle = fuzzyTimedelta(idle)
            if 'login' in user:
                login = user['login']
            else:
                login = u"<%s>" % tr("anonymous")
            application = user['client_name']
            application = APPLICATION_NAME.get(application, application)
            if 'client_release' in user:
                application += ' (%s)' % (user['client_release'],)
            columns = (
                login,
                user['host'],
                application,
                creation,
                idle)
            checkbox = QCheckBox(self)
            if 'cookie' not in session:
                checkbox.setEnabled(False)
            self.connect(checkbox, SIGNAL("toggled(bool)"), self.toggleSession)
            table.setCellWidget(row, 0, checkbox)
            self.checkboxes.append(checkbox)
            for column, text in enumerate(columns):
                table.setItem(row, 1 + column, QTableWidgetItem(text))
        table.resizeColumnsToContents()
        self.ui.destroy_button.setEnabled(False)