Поиск VLAN по всей структуре

Started by deepjohnsea, September 08, 2021, 06:11:44 PM

Previous topic - Next topic

deepjohnsea

Хотел по быстрому узнать в NetXMS где же я прописал определенны vlan.
И тут у меня тупик.
Задача то простая. Хочу по номену vlan-а или его названию найти железки где он фигурирует.
И обратная задача. Есть куча точек где этот vlan не поднят. Хочу найти их.
Пробовал с помощю поиска. что то такое (type==NODE) and ($node->hasVLANs) and ($node->vlans in  %{id:100 } )

Поиск в форуме ничего не дал....Ну или я не там искал.


Victor Kirhenshtein

Попробуйте такой запрос:


with
vlanIdList = {
list = %();
for(v : vlans)
list->append(v->id);
return list;
}
type == NODE and hasVLANs and (100 in vlanIdList)


deepjohnsea

#2
Огромное спасибо! Работет!
Не сочтите за наглость... Вкус приходит во время еды. )))

А как сделать поиск c нескольким id.

Ну и вишенка на торте... Как бы "Постоянные запросы для поиска" сохранять для повторного использованиия
У меня постоянно говорит
Cannot save object query: Access denied
ver 3.9.235

Victor Kirhenshtein

Вариант для проверки что устройство во всех указанных VLAN'ах:


with
vlanIdList = { %(4, 5, 8) },
vlanMatch = {
list = %();
for(v : vlans)
   if (v->id in vlanIdList)
list->append(v->id);
return list->size == vlanIdList->size;
}
type == NODE and hasVLANs and vlanMatch


Здесь vlanIdList содержит список VLAN'ов.

Проблему с access denied повторил у себя, похоже какой-то баг. Будем разбираться.

Victor Kirhenshtein

Про сохранение запросов - пользователю нужно дать право "Manage object queries", но его невозможно дать через GUI в текущей версии. В следующем патч релизе мы это исправим.