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)
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)
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)
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)
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)