我使用python + graphviz来根据Racktables中包含的信息创建网络拓扑。到目前为止,我已经取得了很好的成功,但是现在我愿意为集群(而不是节点)添加多行标签。
例如,我在python中有以下代码:
for router in routers:
[...]
cluster_name = "cluster"+str(i)
router_label=router_name+"\n"+router_hw
c = gv.Graph(cluster_name)
c.body.append('label='+router_label)
每当我运行该程序时,都会得到以下信息:
ST120_CMS70_SARM
SARM
ST202_P9J70_SARM
SARM
Error: node "SARM" is contained in two non-comparable clusters "cluster1" and "cluster0"
但是,如果我将此
router_label=router_name+"\n"+router_hw
更改为此router_label=router_name+"_"+router_hw
,则不会出现任何错误,并且会绘制拓扑,但是,当然会显示一行标签。有什么暗示吗?
非常感谢!
卢卡斯
最佳答案
好的,我找到了解决方案。多行标签是使用类似HTML的标签来实现的,例如以下示例...
router_label="<"+router_name+"<BR />"+router_ip+">"
c = gv.Graph(cluster_name)
c.body.append('label='+router_label)
此代码提供以下内容:
谢谢!
卢卡斯