def update_work_unit_info(self, app):
        if not self.queue:
            self.reset_work_unit_info(app)
            return

        # Get selected queue entry
        selected = self.get_selected_queue_entry(app)
        if selected is None: return
        entry = self.queue_map[selected]

        # Load info
        for name, value in entry.items():
            if name in app.queue_widgets:
                if (name in ['basecredit', 'creditestimate', 'ppd'] and \
                        float(value) == 0) or value == '<invalid>' or \
                        value == '0.00 secs':
                    value = 'Unknown'

                widget = app.queue_widgets[name]
                set_widget_str_value(widget, value)

        # Status
        status = entry['state'].title()
        color = status_to_color(status)
        status = get_span_markup(status, color)
        widget = app.queue_widgets['state']
        widget.set_markup(status)

        # PRCG
        prcg = '%s (%s, %s, %s)' % (entry['project'], entry['run'],
                                    entry['clone'], entry['gen'])
        set_widget_str_value(app.queue_widgets['prcg'], prcg)
Beispiel #2
0
    def update_work_unit_info(self, app):
        if not self.queue:
            self.reset_work_unit_info(app)
            return

        # Get selected queue entry
        selected = self.get_selected_queue_entry(app)
        if selected is None: return
        entry = self.queue_map[selected]

        # Load info
        for name, value in entry.items():
            if name in app.queue_widgets:
                if (name in ['basecredit', 'creditestimate', 'ppd'] and \
                        float(value) == 0) or value == '<invalid>' or \
                        value == '0.00 secs': value = 'Unknown'

                widget = app.queue_widgets[name]
                set_widget_str_value(widget, value)

        # Status
        status = entry['state'].title()
        color = status_to_color(status)
        status = get_span_markup(status, color)
        widget = app.queue_widgets['state']
        widget.set_markup(status)

        # PRCG
        prcg = '%s (%s, %s, %s)' % (
            entry['project'], entry['run'], entry['clone'], entry['gen'])
        set_widget_str_value(app.queue_widgets['prcg'], prcg)
Beispiel #3
0
    def update_queue_ui(self, app):
        if not self.queue:
            app.queue_list.clear()
            return

        # Save selections
        selected = self.get_selected_queue_entry(app)
        selected_row = None
        log_filter_selected = get_active_combo_column(app.log_unit, 1)
        log_filter_row = None

        # Clear queue wo/ updating log filter
        self.updating = True
        try:
            app.queue_list.clear()
        finally:
            self.updating = False

        # Reload queue list
        for values in sorted(self.queue, key=lambda x: x['id']):
            unit_id = values['unit']
            queue_id = values['id']
            status = values['state'].title()
            color = status_to_color(status)
            status = get_span_markup(status, color)
            progress = values['percentdone']
            percent = float(progress[:-1])
            eta = values['eta']
            if eta == '0.00 secs':
                eta = 'Unknown'
            credit = values['creditestimate']
            if float(credit) == 0:
                credit = 'Unknown'

            prcg = self.get_prcg(values)
            iter = app.queue_list.append([
                unit_id, queue_id, status, color, progress, percent, eta,
                credit, prcg
            ])

            if queue_id == selected:
                selected_row = iter
            if queue_id == log_filter_selected:
                log_filter_row = iter

        # Select the first item if nothing is selected
        if selected_row is None:
            selected_row = app.queue_list.get_iter_first()
        if log_filter_row is None:
            log_filter_row = app.queue_list.get_iter_first()

        # Restore selections
        app.queue_tree.get_selection().select_iter(selected_row)
        app.log_unit.set_active_iter(log_filter_row)
    def update_queue_ui(self, app):
        if not self.queue:
            app.queue_list.clear()
            return

        # Save selections
        selected = self.get_selected_queue_entry(app)
        selected_row = None
        log_filter_selected = get_active_combo_column(app.log_unit, 1)
        log_filter_row = None

        # Clear queue wo/ updating log filter
        self.updating = True
        try:
            app.queue_list.clear()
        finally:
            self.updating = False

        # Reload queue list
        for values in sorted(self.queue, lambda x, y: cmp(x['id'], y['id'])):
            unit_id = values['unit']
            queue_id = values['id']
            status = values['state'].title()
            color = status_to_color(status)
            status = get_span_markup(status, color)
            progress = values['percentdone']
            percent = float(progress[:-1])
            eta = values['eta']
            if eta == '0.00 secs': eta = 'Unknown'
            credit = values['creditestimate']
            if float(credit) == 0: credit = 'Unknown'

            prcg = self.get_prcg(values)
            iter = app.queue_list.append([unit_id, queue_id, status, color,
                                          progress, percent, eta, credit, prcg])

            if queue_id == selected: selected_row = iter
            if queue_id == log_filter_selected: log_filter_row = iter

        # Select the first item if nothing is selected
        if selected_row is None: selected_row = app.queue_list.get_iter_first()
        if log_filter_row is None:
            log_filter_row = app.queue_list.get_iter_first()

        # Restore selections
        app.queue_tree.get_selection().select_iter(selected_row)
        app.log_unit.set_active_iter(log_filter_row)
Beispiel #5
0
    def update_status_slots(self, app):
        # Save selection
        selected = get_selected_tree_column(app.slot_status_tree, 0)
        if selected is not None:
            selected = selected
        selected_row = None
        log_filter_selected = get_active_combo_column(app.log_slot, 0)
        log_filter_row = None

        # Clear list wo/ updating log filter
        self.updating = True
        try:
            app.slot_status_list.clear()
        finally:
            self.updating = False

        # Reload list
        for slot in self.slots:
            id = '%02d' % slot.id
            status = slot.status.title()
            color = status_to_color(status)
            if status == 'Paused' and slot.reason:
                status += ':' + slot.reason
            status = get_span_markup(status, color)
            description = slot.description.replace('"', '')
            iter = app.slot_status_list.append(
                (id, status, color, description))

            if id == selected:
                selected_row = iter
            if id == log_filter_selected:
                log_filter_row = iter

        # Selected the first item if nothing is selected
        if selected_row is None:
            selected_row = app.slot_status_list.get_iter_first()
            if selected_row is not None:
                app.slot_status_tree.get_selection().select_iter(selected_row)
                self.select_slot(app)
        if log_filter_row is None:
            log_filter_row = app.slot_status_list.get_iter_first()

        # Restore selections
        if selected_row is not None:
            app.slot_status_tree.get_selection().select_iter(selected_row)
        if log_filter_row is not None:
            app.log_slot.set_active_iter(log_filter_row)
    def update_work_unit_info(self, app):
        if not self.queue:
            self.reset_work_unit_info(app)
            return

        # Get selected queue entry
        selected = self.get_selected_queue_entry(app)
        if selected is None: return
        entry = self.queue_map[selected]

        # Load info
        for name, value in entry.items():
            if name in app.queue_widgets:
                if (name in ['basecredit', 'creditestimate', 'ppd'] and \
                        float(value) == 0) or value == '<invalid>' or \
                        value == '0.00 secs':
                    value = 'Unknown'

                widget = app.queue_widgets[name]
                set_widget_str_value(widget, value)

        # Status
        status = entry['state'].title()
        color = status_to_color(status)
        status = get_span_markup(status, color)
        widget = app.queue_widgets['state']
        widget.set_markup(status)

        # PRCG
        prcg = '%s (%s, %s, %s)' % (entry['project'], entry['run'],
                                    entry['clone'], entry['gen'])
        set_widget_str_value(app.queue_widgets['prcg'], prcg)

        # Links
        for name in ['cs', 'ws', 'project']:
            widget = app.queue_widgets[name]
            value = str(entry[name])

            if name in ['cs', 'ws']:
                uri = 'http://fah-web.stanford.edu/logs/%s.log.html' % value
            else:
                uri = 'http://fah-web.stanford.edu/cgi-bin/fahproject.' \
                    'overusingIPswillbebanned?p=' + value

            widget.set_uri(uri)
    def update_work_unit_info(self, app):
        if not self.queue:
            self.reset_work_unit_info(app)
            return

        # Get selected queue entry
        selected = self.get_selected_queue_entry(app)
        if selected is None: return
        entry = self.queue_map[selected]

        # Load info
        for name, value in entry.items():
            if name in app.queue_widgets:
                if (name in ['basecredit', 'creditestimate', 'ppd'] and \
                        float(value) == 0) or value == '<invalid>' or \
                        value == '0.00 secs': value = 'Unknown'

                widget = app.queue_widgets[name]
                set_widget_str_value(widget, value)

        # Status
        status = entry['state'].title()
        color = status_to_color(status)
        status = get_span_markup(status, color)
        widget = app.queue_widgets['state']
        widget.set_markup(status)

        # PRCG
        prcg = '%s (%s, %s, %s)' % (
            entry['project'], entry['run'], entry['clone'], entry['gen'])
        set_widget_str_value(app.queue_widgets['prcg'], prcg)

        # Links
        for name in ['cs', 'ws', 'project']:
            widget = app.queue_widgets[name]
            value = str(entry[name])

            if name in ['cs', 'ws']:
                uri = 'http://fah-web.stanford.edu/logs/%s.log.html' % value
            else:
                uri = 'http://fah-web.stanford.edu/cgi-bin/fahproject.' \
                    'overusingIPswillbebanned?p=' + value

            widget.set_uri(uri)
Beispiel #8
0
    def update_status_slots(self, app):
        # Save selection
        selected = get_selected_tree_column(app.slot_status_tree, 0)
        if selected is not None: selected = selected
        selected_row = None
        log_filter_selected = get_active_combo_column(app.log_slot, 0)
        log_filter_row = None

        # Clear list wo/ updating log filter
        self.updating = True
        try:
            app.slot_status_list.clear()
        finally:
            self.updating = False

        # Reload list
        for slot in self.slots:
            id = '%02d' % slot.id
            status = slot.status.title()
            color = status_to_color(status)
            if status == 'Paused' and slot.reason:
                status += ':' + slot.reason
            status = get_span_markup(status, color)
            description = slot.description.replace('"', '')
            iter = app.slot_status_list.append((id, status, color, description))

            if id == selected: selected_row = iter
            if id == log_filter_selected: log_filter_row = iter

        # Selected the first item if nothing is selected
        if selected_row is None:
            selected_row = app.slot_status_list.get_iter_first()
        if log_filter_row is None:
            log_filter_row = app.slot_status_list.get_iter_first()

        # Restore selections
        if selected_row is not None:
            app.slot_status_tree.get_selection().select_iter(selected_row)
            self.select_slot(app)
        if log_filter_row is not None:
            app.log_slot.set_active_iter(log_filter_row)