1 """
2 A module for GUI management of cobra.cluster clients
3 calling into a server.
4 """
5
6 import gtk
7
8 import cobra
9 import cobra.cluster as c_cluster
10
11 import vwidget.util as vw_util
12 import vwidget.views as vw_views
13
14 from vwidget.main import idlethread
18 """
19 A cluster server status GUI.
20 """
21 __cols__ = (
22 ("Id", 0, int),
23 ("Client",1,str),
24 ("Status",2,str),
25 ("Percent",3,int)
26 )
27
29 vw_views.VTreeView.__init__(self)
30
31
32 self.id_iter = {}
33
34 self.treeview.remove_column(self.treeview.get_column(3))
35 col = vw_util.makeColumn("Percent", 3, cell=gtk.CellRendererProgress(), links={"value":3})
36 self.treeview.append_column(col)
37
38
42
43 @idlethread
45 iter = self.model.append((work.id, ip, "Starting", 0))
46 self.id_iter[work.id] = iter
47
48 @idlethread
50 iter = self.id_iter.pop(work.id, None)
51 if iter != None:
52 self.vwRemove(iter)
53
56
59
62
63 @idlethread
65 iter = self.id_iter.get(workid)
66 self.model.set_value(iter, 2, status)
67
68 @idlethread
70 iter = self.id_iter.get(workid)
71 self.model.set_value(iter, 3, percent)
72