В библиотеке скриптов имеется скрипт, который вызывается из transformation script и которому передаются в качестве аргументов custom attributes объекта. Захотел использовать новую возможность, указал этот скрипт как параметр метрики в виде DCI::NumOfLearnedMAC($node->node,$node->vlan,$node->port). Скрипт завершается со значением -1, говорящим о том, что ему не передаются аргументы.... может их как-то по другому надо указывать?
Ниже сам скрипт
// Count MAC adresses, learned on port of vlan on node
// Arguments: node, vlan, port
// Return number of learned MAC address
sub main() {
return NumOfLearnedMAC($1,$2,$3);
}
sub NumOfLearnedMAC() {
node = FindObject($1);
vlan = $2;
port = $3;
if (node == null)
{
println "ERROR: Node not found";
return -1;
}
transport = CreateSNMPTransport(node); // Create SNMP transport for node
if (transport == null)
{
println "Failed to create SNMP transport, exit";
return -1;
}
vars = SNMPWalk(transport, ".1.3.6.1.2.1.17.7.1.2.2.1.2.".vlan);
if (vars == null)
{
println "Failed to issue SNMP WALK request";
return -2;
}
ret = 0;
foreach (v: vars) {
if (v->value == port)
{
++ret;
}
}
return ret;
}
... и transformation script
use DCI::NumOfLearnedMAC;
sub main() {
return NumOfLearnedMAC($node->node,$node->vlan,$node->port);
}