[SOLVED] Creer de multiples commandes dans un equipement du plugin script par ... un script ou scenario?

bonjour

je dois creer une 50aine de commandes, actions ou info, dans un equipment du plug in script.

ce sont les meme commandes relatives aux port d’un switch que je peux poller et configurer en SNMP, un seul parametre, le numero de port, varie .

comment pourrais je creer ces commandes en batch pa run script, connaissant l’id de l’equipement initial cree manuellement ?

je vois bien quelque chose du genre, ou je remplace $this->getId() par l’ID de l’equipement

if ( ! is_object($cmd) ) {
$cmd = new Cmd();
$cmd->setName($name);
$cmd->setEqLogic_id($this->getId());
$cmd->setType($type);
$cmd->setSubType($subtype);
$cmd->setLogicalId($id);

des conseils ?

merci

j’ai trouvé, je partage pour ceux qui seraient intéressés :

Créer un équipement script
Relever l’id de l’équipement créé, ici 1054
Editer le fichier /var/www/html/plugins/script/core/class/script.class.php
Trouver la fonction public function postSave() { },
a la fin de la fonction, avant le dernier }, insérer votre code tel celui ci-dessous :
j’ai prévu un test sur l’object id pour eviter de creer ces commandes dans d’autres equipements script.

voila, il suffit d’ouvrir l’equipement en mode configuration, de sauver la config et les commandes sont générées automatiquement.

if ($this->getId()==1054) {

for ($x = 1; $x <= 24; $x++) {
$pre='';
if ($x < 10) {$pre='0';}; 

$info1 = $this->getCmd(null, 'pethPsePortAdminEnable_'.$pre.$x);
if (!is_object($info1)) {
	$info1 = new scriptCmd();
	$info1->setName(__('pethPsePortAdminEnable_'.$pre.$x, __FILE__));
}
$info1->setLogicalId('pethPsePortAdminEnable_'.$pre.$x);
$info1->setEqLogic_id($this->getId());
$info1->setType('info');
$info1->setSubType('numeric');
$info1->setConfiguration('request', "snmpget -v 2c -O vU -c private 192.168.0.4  .1.3.6.1.2.1.105.1.1.1.3.1.". $x . " | tr -dc '0-9'"); 
$info1->setConfiguration('requestType', 'script'); 
$info1->setDisplay('generic_type', 'ENERGY_STATE');

$info1->setDisplay('showNameOndashboard',0);
$info1->setIsVisible(1);
$info1->setOrder($x);
if ($x == 1) {$info1->setDisplay('forceReturnLineBefore','1');};
if ($x == 24) {$info1->setDisplay('forceReturnLineAfter','1');};
$info1->save();

}
}

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.