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 get_row(self, app): status = self.get_status() keys = { 'name': self.name, 'status': status, 'status_color': status_to_color(status), 'address': self.get_address() } return list(make_row(app.client_cols, keys))
def get_row(self, app): status = self.get_status() keys = { "name": self.name, "status": status, "status_color": status_to_color(status), "address": self.get_address(), } return list(make_row(app.client_cols, keys))
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(self, app): prevStatus = self.get_status() try: self.conn.update() for _version, type, data in self.conn.messages: try: self.process_message(app, type, data) except Exception as e: traceback.print_exc() self.conn.messages = [] except Exception as e: print(e) # If client status has changed update UI newStatus = self.get_status() if prevStatus != newStatus: list = app.client_list iter = list.get_iter_first() while iter is not None: name, _status = app.client_list.get(iter, 0, 1) if name == self.name: # Update client status and colors color = status_to_color(newStatus) path = list.get_path(iter) list.set(iter, 1, newStatus) list.set(iter, 2, color) list.row_changed(path, iter) break iter = list.iter_next(iter) if not self.is_online(): self.set_updated(False) # Update client status label if self.selected: app.update_client_status()
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)
self.conn.messages = [] except Exception, e: print e # If client status has changed update UI newStatus = self.get_status() if prevStatus != newStatus: list = app.client_list iter = list.get_iter_first() while iter is not None: name, status = app.client_list.get(iter, 0, 1) if name == self.name: # Update client status and colors color = status_to_color(newStatus) path = list.get_path(iter) list.set(iter, 1, newStatus) list.set(iter, 2, color) list.row_changed(path, iter) break iter = list.iter_next(iter) if not self.is_online(): self.set_updated(False) # Update client status label if self.selected: app.update_client_status() def reconnect(self): self.conn.close()
def get_row(self, app): status = self.get_status() keys = {'name': self.name, 'status': status, 'status_color': status_to_color(status), 'address': self.get_address()} return list(make_row(app.client_cols, keys))
self.conn.messages = [] except Exception, e: print e # If client status has changed update UI newStatus = self.get_status() if prevStatus != newStatus: list = app.client_list iter = list.get_iter_first() while iter is not None: name, status = app.client_list.get(iter, 0, 1) if name == self.name: # Update client status and colors color = status_to_color(newStatus) path = list.get_path(iter) list.set(iter, 1, newStatus) list.set(iter, 2, color) list.row_changed(path, iter) break iter = list.iter_next(iter) if not self.is_online(): self.set_updated(False) # Update client status label if self.selected: app.update_client_status() def reconnect(self):