function GetTree(nodeID)
{
obj = FindObject(nodeID);
if (obj == null) return;
children = obj.children;
for (n : children)
{
if (classof(n) == "Node")
{
ifaces = n.interfaces;
for (iface : ifaces)
{
if (iface.description ~= "WAN")
{
println("Node: " .. n.name .. ", Interface: " .. iface.name .. ", Description: " .. iface.description .. ", IP: " .. iface.ipAddr);
}
}
}
// Рекурсия ВЫНЕСЕНА за пределы условия - обходим все контейнеры
GetTree(n.id);
}
}
GetTree(2);Quote from: Argonauts on January 13, 2026, 11:27:07 AMКак мне удалить все DCI, что я наплодил с созданием DCI под instance discovery? Со временем они появляются обратно![]()
sub GetTree (nodeID)
{
Tree = FindObject(nodeID);
children = GetObjectChildren(Tree);
foreach (n : children)
{
//println ("Name: " . n->name);
if (n->name != null && classof(n) == "Node")
{
if (n->sysDescription ~= "^D-Link DES-3028" && n->comments == "")
{
println ("Name: " . n->name . ", sysDescription: " . n->sysDescription . ", IP: " . n->ipAddr);
}
}
GetTree(n->id);
}
}
GetTree(2);Который я попытался перенаправить на поиск нод, в которых Description на каком-то из интерфейсов имеет WAN. sub GetTree (nodeID)
{
Tree = FindObject(nodeID);
children = GetObjectChildren(Tree);
foreach (n : children)
{
//println ("Name: " . n->name);
if (n->name != null && classof(n) == "Node")
{
if (n->interfaces.description ~= "WAN" && n->comments == "")
{
println ("Name: " . n->name . ", interfaces.description: " . n->interfaces.description . ", IP: " . n->ipAddr);
}
}
GetTree(n->id);
}
}
GetTree(2);Но оба скрипта падают в syntax error на линию 13. Что с того момента изменилось в синтаксе?sub GetTree(nodeID)
{
Tree = FindObject(nodeID);
children = GetObjectChildren(Tree);
foreach (n : children)
{
if (n->name != null && classof(n) == "Node")
{
ifaces = n->interfaces;
foreach (iface : ifaces)
{
if (iface->description ~= "WAN")
{
println("Name: " , n->name , ", interface: " , iface->description , ", IP: " , iface->ipAddr);
}
}
GetTree(n->id);
}
}
}
GetTree(2);выполнение его проходит, но результат никакой не получается*** FINISHED ***
Result: