nocproject.org
05:58
dvolodin, zi_rus_ мечта сбылась)
05:59
картинки в селектбоксе
05:59
осталовь в грид впихнуть и счастливым станет еще и Dmytri
05:59
правда он как обиделся так и ушел
06:00
dvolodin, выложи покет поглядеть)
06:00
на bitbucket в downloads
06:01
я еще про вагрант хотел спросить
06:01
06:01
вот патчик, который я успел наваять
06:02
из изменений навскидку в extjs -- тема теперь состоит из CSS и JS
06:02
соответсвенно, подгружать нужно и то и другое
06:02
и немного поехали пути
06:02
настройки css в конфиге придется убрать
06:03
объясни - вот хочу я на выньдовой машинке с pycharm кодить, и в вагранте тестить под центосом. Поставил, настроил. Затык в чем - вагрант маппит мне директорию /vagrant в виртуалку, но это не папка с проектом в пичарме, а сабдиректори.
06:03
Добрый день! Столкнулся со следующей проблемой: сразу после установки на чистый debian 7 залезаю на веб-морду и пытаюсь открыть, например, Service activation>Managed objects. Вместо соответствующей страницы вылезает ошибка с трэйсбэком. И такая проблем
06:03
и выходит чтоб тестить чото - надо кидать туда сорцы (например через их деплой) и потом проводить ту же самый апдейт
06:04
вот я и не пойму - какой по идее верный механизм этого дела должен быть
06:04
чтобы и кодить и тестить удобно было
06:04
очень уж нравиться как в иде у них код проще писать
06:04
ты же в конфиге вагранта указываешь, что ему монтировать
06:05
в Vagrantfile
06:05
это да. но оно - в садбиректори проекта)
06:05
By default, Vagrant will share your project directory (the directory with the Vagrantfile) to /vagrant.
06:06
ну так надо там прописать ../../../../..
06:06
:)
06:06
config.vm.synced_folder "src/", "/srv/website"
06:06
блин, ладно попробую дома прикрутиьт
06:06
надо прописать там synced folder
06:06
и зацепить корень noc'а, а не каталог с vagrantfile
06:06
:)
06:07
угу
06:07
чото вырисовывается
06:07
и меппинг веб морды надо еще где то прописать
06:08
ну вагрант же на 127.0.0.1 все маппит на локальную машину
06:08
блин, мне нужен нормальный CDN, чтобы можно было пакеты выкладывать и box'ы
06:09
06:09
ссш там 2222 по дефолту порт, а веб вроде надо указывать дополнительно
06:10
э, а як я буду в вебморду нока смотреть, который в вагранте крутится
06:10
там же nginx в box
06:18
итого сухой остаток по выпиливанию пейджера
06:19
В ExtJS 4.2.1 есть критическая ошибка. При перезагрузке store (по нажатию на reload или при изменении фильтров) иногда вылетает ошибка
06:19
Ext.data.PageMap.getRange(): PageMap asked for range which it does not have
06:19
проблема не только у меня
06:19
с ней уже с год как бъются
06:21
По слухам - она пофикшена в ExtJS 5.0.0 и должна быть пофикшена в 4.2.3
06:21
будет ли доступна 4.2.3 под GPL - не знаю
06:24
так что нужно либо фикса ждать, либо сразу на пятерку переползать
06:28
06:28
вот оно
06:44
Всем привет! Подскажите плиз в какой базе и в какой таблице/коллекции находятся маки свичей, которые я могу посмотреть через managed objects --- interfaces --- L3??????
06:45
они ен в базе
06:45
а, стоп
06:45
хочу написать скрипт, чтобы выдирал имя свича, ip, mac, serial number, vendor и т.д.
06:46
а закладке л3 нет маков
06:46
какой мак то нужен?
06:47
есть, но у меня 500+ свичей.... хочу скриптом все вытянуть в виде таблицы
06:47
нужен мак тот который в закладке L3
06:47
да где там мак то?)
06:47
сделай скрин
06:48
а, ты через мо смотришь
06:48
увидел
06:48
я в инвентори смотрел
06:50
вот меня и интересует в какой таблице можно получить эту инфу привязанную к id свича
06:50
sdmitri: inv/models/interface.py
06:50
и inv/models/subinterface.py
06:51
начиная с 422 строкм в /sa/apps/managedobject/views.py
06:51
фильтр и дергание саба
06:53
эти маки находятся в монге?
06:57
в чем проблема то)
06:57
пиши на питоне скрипт
06:57
да выдергивай что надо
06:58
та я думал на пхп.... питон не знаю
06:59
а зачем тебе этот мак, если не секрет?
06:59
для инвентаризации.....
07:00
просто руками переписывать маки всех свичей не комильфо)
07:00
в ноке с интерфейса ведь даже копировать не получается(
07:00
если работает id discovery, то проще его результаты взять
07:01
во, тоже в монге?
07:01
ну это уже хоть что-то..... в какой коллекции они лежат?
07:03
айди дискавери отдаст диапазон маков
07:03
а не для каждого интерфейса
07:04
sdmitri: как для инвентаризации? будешь использовать как серийник?
07:05
нет мне нужно name, vendor, platform, ip, mac, serial number
07:05
у меня просто форма(таблица) такая
07:06
очень интересно как можно такой мак использовать
07:07
можно конечно вообще в тупую, арп запросом на сервере нока посмотреть)
07:07
там не один мак
07:07
каждая железяка имеет диапазон
07:07
которые раскидываются между л2 портами и л3 сабами
07:08
это да, но мне нужен мак влан-интерфейса для менеджмента)
07:08
Сергей прав!
07:09
не проще ли в этом случае пойти в ипам
07:09
и увидеть там сопоставленный айпишнику мак
07:09
(который будет в посгресе)
07:10
там как раз арп и будет
07:11
так я же об этом и спрашиваю.... в постгре какая таблица?
07:14
все нашел.... таблица ip_address если кому-то понадобится! Спасибо!
07:14
CREATE TABLE "ip_address" (
07:14
там кстати можно и по managed_object_id найти!
07:14
./noc sql ip
07:15
выдаст тебе все что в бд юзается приложением
07:15
по объекту тебе выдаст только если ты привязал в ипаме адрес к объекту
07:16
если не сделал это руками - не выдаст
07:22
_4ePTeHok: как из SubInterface.objects. узнать МО?
07:24
SubInterface.objects.get(параметр по которому ищещь).id
07:24
спасиб, а то str(i).split(':')[0] как-то совсем извращение :)
07:25
ща
07:31
./noc shell
07:31
# -*- coding: utf-8 -*-
07:31
# name, vendor, platform, ip, mac, serial number
07:31
#
07:31
from noc.inv.models import *
07:31
interface = Interface.objects.filter(name="System")
07:31
for i in interface:
07:31
subinterface = SubInterface.objects.filter(interface=i)
07:31
for s in subinterface:
07:31
name = str(i).split(':')[0]
07:31
m = ManagedObject.objects.get(name=name)
07:31
print m.name, m.get_attr("vendor","default"), m.get_attr("platform","default"), s.mac, s.ipv4_addresses, m.get_attr("Serial Number","---")
07:34
sdmitri: такой список тебе нужен?
07:40
09:18
TSergey: жестко ты как-то
09:18
по логике вещей management у свича один
09:18
и, соответсвенно, саб c ipv4_addresses тоже один
09:18
я же не настойщий еще сварщик :)
09:19
for si in SubInterfaces.objects.filter(ipv4_addresses__exists=True):
09:19
...
09:20
по логике вещей у него еще и тип интерфейса -- SVI
09:20
а нафига
09:20
если в ипаме есть манаджмент адрес
09:20
и мак
09:20
сложности какие то выдумываете
09:20
расскажите как из интерфейса заполучить name MO
09:21
э
09:21
из кли?
09:21
o.name
09:21
где о - объект
09:21
кэп :)
09:21
for si in SubInterfaces.objects.filter(ipv4_addresses__exists=True):
09:21
зная саб, как выдернуть имя мо?
09:22
name = str(i).split(':')[0] --- это же просто смешно :)
09:22
чот ты как то через задницу
09:23
сначала - мо перебираем, потом - сабы
09:23
есть некоторый проктологический аспект :)
09:23
а не наеборот
09:23
но я бы перебрал мо = выдрал манагмент адреса и прошел в ипам
09:23
сабы там ни к чему
09:23
TSergey: si.managed_object.name
09:28
dvolodin: так --- for si in SubInterface.objects.filter(ipv4_addresses__exists=True): что-то на каждый коммутатор дает кучу ответов
09:29
потому что адресов поди несколько
09:29
если они L3
09:29
то - да
09:29
или интерфейсов с адресами
09:29
вроде нет
09:29
from noc.inv.models import *
09:29
for si in SubInterface.objects.filter(ipv4_addresses__exists=True):
09:29
m = ManagedObject.objects.get(name=si.managed_object.name)
09:29
print j, m.name, m.get_attr("vendor","---"), m.get_attr("platform","---"), s.mac, s.ipv4_addresses, m.get_attr("Serial Number","---")
09:30
а, сорри
09:30
1154 s539-6-1.intt DLink DES-3028 None [] P1CV2A3001244
09:30
1154 s539-6-1.intt DLink DES-3028 None [] P1CV2A3001244
09:30
1154 s539-6-1.intt DLink DES-3028 None [] P1CV2A3001244
09:30
1154 s539-6-1.intt DLink DES-3028 None [] P1CV2A3001244
09:30
1154 s539-6-1.intt DLink DES-3028 None [] P1CV2A3001244
09:30
1154 s539-6-1.intt DLink DES-3028 None [] P1CV2A3001244
09:30
1154 s539-6-1.intt DLink DES-3028 None [] P1CV2A3001244
09:30
1154 s539-6-1.intt DLink DES-3028 None [] P1CV2A3001244
09:30
1154 s539-6-1.intt DLink DES-3028 None [] P1CV2A3001244
09:30
1154 s539-6-1.intt DLink DES-3028 None [] P1CV2A3001244
09:31
вовсе без L3 шарашит
09:32
все-таки System правильнее, нет?
09:40
ipv4_addresses это же словарь, наверное [] тоже exist
09:53
тогда отфильтровывай пустые списки
10:02
тут есть кто нибудь??
10:02
по большей части да
10:06
вот скажите, такая простая проверка: есть линк, смотрим зеркальность вланов на портах справа и слева, чего-то я упускаю в рассуждениях?
10:08
оно кажется даже есть
10:08
называется switchport validation
10:14
есть, да
10:14
switchport validation
10:14
старый как говно мамонта
10:14
теперь все лежит в базе, включая топологию
10:15
не проблема просто пройтись по линкам и сверить концы
10:15
там не только зеркальность проверять надо
10:15
могут быть стыки switchport / routing port
10:16
я смотрел switchport validation, я там не все понял
10:17
"там не только зеркальность проверять надо" может быть не зеркально и это правильно?
10:20
может быть switchport/routing port
10:33
ок, вот если между switchport? должна же быть зеркальность?
10:41
у меня вопрос по поводу скриптов. Есть d-link 1210-28/ME B2, на старой прошивке скипты отрабатывают, а вот уже на более новой нет.
10:41
вылетает вот с такой ошибкой: class 'noc.sa.script.exception.UnexpectedResultError'
10:42
./noc debug-script скрипт коммутатор
10:42
и будем смотреть на ошибки
10:45
где это надо выполнить??
10:49
cd /opt/noc
10:50
и уже там
10:50
./noc debug-script скрипт коммутатор
10:51
/opt/noc нет там debug-script(
10:52
напиши имя коммутатора
10:53
вот так введи:
10:53
./noc debug-script get_version имя_коммутатора
10:58
command SON([('authenticate', 1), ('user', u'noc'), ('nonce', u'c72e4165dded3406'), ('key', u'61ce7328c8d472579d4459ef48a69dea')]) failed: auth fails
10:59
не, нужно весь ответ зафигачить на pastebin.com (или аналогичное)
10:59
ну и удачи тебе :)
Share this page
Share this page: