我正在使用python + graphviz,以便从Racktables中包含的信息中创建网络拓扑。到目前为止,我的成功相当不错,但我现在愿意为群集(不是节点)添加多行标签。
例如,我有以下代码与python:
use Pod::Usage 'pod2usage';
sub pod2scalar {
open my $fh, '>', \my $text;
pod2usage(@_, -output => $fh, -exitval => 'NOEXIT');
$text;
}
当我运行该程序时,我得到以下内容:
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
,则不会出现错误并绘制拓扑,但当然是一行标签。
对此有任何提示吗?
非常感谢!
卢卡斯
答案 0 :(得分:1)
好的,我找到了解决方案。多行标签是使用类似HTML的标签实现的,如下所示...
router_label="<"+router_name+"<BR />"+router_ip+">"
c = gv.Graph(cluster_name)
c.body.append('label='+router_label)
此代码提供以下内容:
谢谢!
卢卡斯