我使用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)


此代码提供以下内容:



谢谢!

卢卡斯

10-05 22:27