2016-08-16 2 views
0

Je travaille avec Cisco Prime Infrastructure et je dois créer un modèle CLI pour le déploiement en masse de certains commutateurs. Prime utilise Apache Velocity pour son contenu CLI au script. J'ai rencontré un problème où j'exécute du code qui boucle à travers le VLAN sur un commutateur et effectue une action par VLAN. Le code fonctionne correctement si le commutateur a plusieurs VLAN, mais échoue s'il n'en a qu'un. Exemple:Apache Velocity: Vérification du nombre de tableaux

Switch1 se compose de VLAN 1, de sorte que la matrice se présente comme suit [VLAN1]

Switch2 se compose de VLAN 1, VLAN 2, VLAN 3, tableau ressemble [VLAN1, VLAN2, VLAN3]

le code:

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

$ VlanName est défini dans la base de données Prime et retourne le tableau de vLANs sur chaque commutateur. Ce qui précède fonctionnera sur Switch2 mais échouera sur Switch1. Y at-il un moyen dans Apache Velocity de faire une vérification pour voir si le tableau contient plus d'une seule valeur? Je voudrais faire une instruction IF qui change le code à quelque chose comme ceci:

#if ($VlanName.count = 1) 
interface $VlanName 
no ip helper-address 
#else 
#foreach($vlan in $VlanName) 
interface $vlan 
no ip helper-address 
#end 

Est-ce possible dans la vitesse?

Répondre

0

Vous pouvez toujours obtenir la taille en appelant la méthode size() sur l'objet.

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