我正在使用 Cisco Prime 基础设施,需要创建 CLI 模板以大规模部署到某些交换机。Prime 使用 Apache Velocity 为其 CLI 内容编写脚本。我遇到了一个问题,我正在运行一些循环通过交换机上的 VLAN 并按 VLAN 执行操作的代码。如果交换机有多个 VLAN,则代码可以正常工作,但如果只有一个,则代码会失败。例子:
Switch1 由 Vlan 1 组成,所以数组看起来像这样 [Vlan1]
Switch2由Vlan 1、Vlan 2、Vlan 3组成,数组看起来像[Vlan1, Vlan2, Vlan3]
编码:
#foreach($vlan in $VlanName)
interface $vlan
no ip helper-address
#end
$VlanName 在 Prime 数据库中定义并返回每个交换机上的 vlan 数组。以上将在 Switch2 上工作,但在 Switch1 上将失败。Apache Velocity 有没有办法检查数组是否包含多个值?我想做一个 IF 语句,将代码更改为如下所示:
#if ($VlanName.count = 1)
interface $VlanName
no ip helper-address
#else
#foreach($vlan in $VlanName)
interface $vlan
no ip helper-address
#end
这在 Velocity 中可能吗?