1

我正在使用 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 中可能吗?

4

1 回答 1

1

您始终可以通过调用size()对象上的方法来获取大小。

#set($size = $VlanName.size())
#if($size == 1)
    Only one
#end
于 2016-09-05T14:59:11.427 回答