From 65c93a598a2f80c9040b21d675b9ee219def815e Mon Sep 17 00:00:00 2001 From: Andy Bavier Date: Thu, 17 Feb 2011 11:32:08 -0500 Subject: [PATCH] Display slice tags Added a slice tag column to the display. For each testbed, the column shows the tags for the entire slice at the top by the testbed's HRN. Tags associated with particular nodes are shown next to that node. --- sface/screens/mainscreen.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/sface/screens/mainscreen.py b/sface/screens/mainscreen.py index 6ffd7e0..5811617 100644 --- a/sface/screens/mainscreen.py +++ b/sface/screens/mainscreen.py @@ -4,7 +4,6 @@ from PyQt4.QtCore import * from PyQt4.QtGui import * from sfa.util.rspecHelper import RSpec -from sface.sfahelper import * from sface.config import config from sface.sfiprocess import SfiProcess from sface.screens.sfascreen import SfaScreen @@ -192,7 +191,7 @@ class NodeModel(QAbstractItemModel): self.__initRoot() def __initRoot(self): - self.rootItem = TreeItem([QString("Testbed"), QString("Hostname"), QString("Status")]) + self.rootItem = TreeItem([QString("Testbed"), QString("Hostname"), QString("Status"), QString("Tags")]) def getItem(self, index): if index.isValid(): @@ -339,7 +338,7 @@ class SliceWidget(QWidget): rspec_file = config.getSliceRSpecFile() if os.path.exists(rspec_file): xml = open(rspec_file).read() - return xml + return RSpec(xml) return None def setStatus(self, msg, timeout=None): @@ -364,7 +363,7 @@ class SliceWidget(QWidget): if self.checkRunningProcess(): return - rspec = RSpec(self.readSliceRSpec()) + rspec = self.readSliceRSpec() no_change = True all_child = self.nodeModel.rootItem.allChildItems() @@ -412,27 +411,33 @@ class SliceWidget(QWidget): self.network_names = [] self.nodeModel.clear() - rspec_string = self.readSliceRSpec() - if not rspec_string: + rspec = self.readSliceRSpec() + if not rspec: return None - networks = rspec_get_networks(rspec_string) + networks = rspec.get_network_list() for network in networks: self.network_names.append(network) - networkItem = TreeItem([QString(network), QString(""), QString("")], self.nodeModel.rootItem) + attrs = "" + for (name, value) in rspec.get_default_sliver_attributes(network): + attrs += "%s/%s " % (name, value) + networkItem = TreeItem([QString(network), QString(""), QString(""), QString(attrs)], self.nodeModel.rootItem) - all_nodes = rspec_get_nodes_from_network(rspec_string, network) - sliver_nodes = rspec_get_sliver_nodes_from_network(rspec_string, network) + all_nodes = rspec.get_node_list(network) + sliver_nodes = rspec.get_sliver_list(network) available_nodes = filter(lambda x:x not in sliver_nodes, all_nodes) already_in_nodes += sliver_nodes for node in sliver_nodes: - nodeItem = TreeItem([QString(""), QString("%s" % node), QString(node_status['in'])], networkItem) + attrs = "" + for (name, value) in rspec.get_sliver_attributes(node, network): + attrs += "%s/%s " % (name, value) + nodeItem = TreeItem([QString(""), QString("%s" % node), QString(node_status['in']), QString(attrs)], networkItem) networkItem.appendChild(nodeItem) for node in available_nodes: - nodeItem = TreeItem([QString(""), QString(node), QString(node_status['out'])], networkItem) + nodeItem = TreeItem([QString(""), QString(node), QString(node_status['out']), QString("")], networkItem) networkItem.appendChild(nodeItem) self.nodeModel.rootItem.appendChild(networkItem) -- 2.43.0