Бесполезный сниппет. Пригодится, если надо сделать Generic Host с портами. Я им пользовался для создания интерфейсов у 3com SuperStack 3/4228G, который не поддерживается внятно системой. Смысла переписывать скрипты не вижу, все-равно свич древний и вытесняется длинками.
from noc.inv.models import * from noc.sa.models import * def mk_3com_ints(id,num=28): if not id: return False for i in range(1,num+1): ii=Interface(managed_object=id, type="physical", name="{0}".format(i)) ii.save() si=SubInterface(name="{0}".format(i),interface=ii,managed_object=id,enabled_afi=['BRIDGE']) si.save() return True
На входе надо дать ID объекта, количество портов. Порты создаются в тупую, физические и bridge-сабы. Никаких вланов, никаких Ip.
Изменение. Чтобы NOC разглядел смену соседа по линку у железок, делаем такое(не обкатано):
i = self.get_interface_by_name(self.object, local_interface) if i: if i.is_linked: l = Link.objects.filter(interfaces=i).first() if l.interfaces[0]=i: ri = l.interfaces[1] else: ri = l.interfaces[0] if remote_object=ri.managed_object and ri.name=remote_interface: return # Link is correct. Nothing changed. else: i.unlink() # return # Already linked
Это изменения в inv/discovery/jobs/link_discovery.py, функция def submit_candidate.
В случае проблем - откатывайте файл к исходному состоянию. Если не помогает - паникуйте, грабьте корованы, играйте за охрану дворца.
2 Comments
Unknown User (lexus)
Отличная идея в первом сниппете, надо у себя попробовать. 3Com-ов всего пара осталась, зато есть другие девайсы (умные ИБП, усилки КТВ), у которых только один порт (для управления), никакими get_interfaces там естественно и не пахнет, но теперь их можно будет за этот добавленный сниппетом порт прицеплять к сети.
А второй, наверное, лучше в виде патча было выложить.
Unknown User (mikevlz) AUTHOR
второй надо откатать/оттестить.