2016-08-16 73 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