Какие атрибуты передаются в скрипт?
Мне надо считать в скрипте Description от DCI
Просто в DCI в разделе Transformation, скрипт работает, но хотел его запихнуть в библиотеку скриптов
// Description format - (Tunnel '37.203.240.35' active time)
transport = CreateSNMPTransport($node);
if (transport == null) return -1; // if no SNMP
oid = ".1.3.6.1.4.1.9.9.171.1.2.3.1.7"; // where IP addresses search
vars = SNMPWalk(transport, oid); //SNMP walk over OID
if (vars == null) return -2; // SNMPWalk failed
dcidescription = SplitString($dci->description, "'"); // DCI description to array
ipsec = dcidescription[1]; // get tunnel IP from DCI description
foreach (v: vars) { //look over OID tree
if(v->value == ipsec) { //if IPSEC ip found
instances = SplitString(v->name, "."); //convert OID to array
instance = instances[instances->size - 1]; //get last instance from OID
seconds = SNMPGetValue(transport, ".1.3.6.1.4.1.9.9.171.1.2.3.1.16." . instance); //get number of seconds that tunnel was active
return SecondsToUptime(seconds / 100);
}
}
$node - объект ноды с которой происходит сбор данных (https://www.netxms.org/documentation/nxsl-latest/#class-node (https://www.netxms.org/documentation/nxsl-latest/#class-node))
$targetObject - объект ноды для которой происходит сбор данных (будет то-же что и $node если у DCI не выставлен source node)
В $ARGS (и в $1, $2, ...) будут параметры если в DCI скрипт указан со скобками.
Quote from: Victor Kirhenshtein on September 17, 2021, 03:04:15 PM
$node - объект ноды с которой происходит сбор данных (https://www.netxms.org/documentation/nxsl-latest/#class-node (https://www.netxms.org/documentation/nxsl-latest/#class-node))
$targetObject - объект ноды для которой происходит сбор данных (будет то-же что и $node если у DCI не выставлен source node)
В $ARGS (и в $1, $2, ...) будут параметры если в DCI скрипт указан со скобками.
Честно, не въехал.
Как мне указать скрипт в данном окне DCI, чтобы в скрипте достать потом значение -
Tunnel '8.8.8.8' active timeЯ понял, что если я вызову скрипт ASA::Test(8.8.8.8), то потом достану как $ARGS[1].
Но мне интересно, как Description DCI получить, если можно
Тогда можно оставить использование transformation, просто скрипт заменить на вызов библиотечного скрипта в форме
return script_name::function();
В вызванном скрипте будет доступна переменная $dci.