【发布时间】:2016-08-16 20:38:16
【问题描述】:
我正在使用 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 中是否可行?
【问题讨论】: