2016-08-16 72 views
0

我正在使用Cisco Prime基础设施,需要为某些交换机创建用于大规模部署的CLI模板。 Prime为其CLI内容使用Apache Velocity脚本。我遇到了一个问题,我正在运行一些代码,这些代码在交换机上通过VLAN进行环回,并对每个VLAN执行操作。如果交换机有多个VLAN,则代码工作正常,但如果交换机只有一个,则代码失败。例如:Apache Velocity:检查阵列的计数

交换机1包括VLAN1的,所以阵列看起来像这样[Vlan1的]

交换机2包括VLAN 1中,VLAN 2,VLAN 3的,阵列看起来像[Vlan1的,VLAN2,VLAN3]

代码:

#foreach($vlan in $VlanName) 
interface $vlan 
no ip helper-address 
#end 

$ VlanName在总理数据库中定义并返回每个交换机上的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中可能的吗?

回答

0

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

#set($size = $VlanName.size()) 
#if($size == 1) 
    Only one 
#end