About Forum Blogs NOC Docs Downloads KB Issues Code CI Registration

nocproject.org

#nocproject.org at irc.freenode.net log.
Back to nocproject.org Back to IRC log index
Date: 25.06.2014
aermike #
05:10
.
dvolodin #
05:13
http://i63.fastpic.ru/big/2014/0625/bc/533235d2b9b5ac55307f9516c9b909bc.png
_4ePTeHok #
05:58
dvolodin, zi_rus_ мечта сбылась)
05:59
картинки в селектбоксе
05:59
осталовь в грид впихнуть и счастливым станет еще и Dmytri
05:59
правда он как обиделся так и ушел
06:00
dvolodin, выложи покет поглядеть)
dvolodin #
06:00
на bitbucket в downloads
_4ePTeHok #
06:01
я еще про вагрант хотел спросить
dvolodin #
06:01
http://pastie.org/9321745
06:01
вот патчик, который я успел наваять
06:02
из изменений навскидку в extjs -- тема теперь состоит из CSS и JS
06:02
соответсвенно, подгружать нужно и то и другое
06:02
и немного поехали пути
06:02
настройки css в конфиге придется убрать
_4ePTeHok #
06:03
объясни - вот хочу я на выньдовой машинке с pycharm кодить, и в вагранте тестить под центосом. Поставил, настроил. Затык в чем - вагрант маппит мне директорию /vagrant в виртуалку, но это не папка с проектом в пичарме, а сабдиректори.
Alex_kzn #
06:03
Добрый день! Столкнулся со следующей проблемой: сразу после установки на чистый debian 7 залезаю на веб-морду и пытаюсь открыть, например, Service activation>Managed objects. Вместо соответствующей страницы вылезает ошибка с трэйсбэком. И такая проблем
dvolodin #
06:03
а надо?
_4ePTeHok #
06:03
и выходит чтоб тестить чото - надо кидать туда сорцы (например через их деплой) и потом проводить ту же самый апдейт
06:04
вот я и не пойму - какой по идее верный механизм этого дела должен быть
06:04
чтобы и кодить и тестить удобно было
06:04
очень уж нравиться как в иде у них код проще писать
dvolodin #
06:04
ты же в конфиге вагранта указываешь, что ему монтировать
06:05
в Vagrantfile
_4ePTeHok #
06:05
это да. но оно - в садбиректори проекта)
dvolodin #
06:05
By default, Vagrant will share your project directory (the directory with the Vagrantfile) to /vagrant.
_4ePTeHok #
06:05
ээ..
dvolodin #
06:06
ну так надо там прописать ../../../../..
06:06
:)
_4ePTeHok #
06:06
бгг
dvolodin #
06:06
config.vm.synced_folder "src/", "/srv/website"
_4ePTeHok #
06:06
блин, ладно попробую дома прикрутиьт
dvolodin #
06:06
надо прописать там synced folder
06:06
и зацепить корень noc'а, а не каталог с vagrantfile
06:06
:)
_4ePTeHok #
06:07
угу
06:07
чото вырисовывается
06:07
и меппинг веб морды надо еще где то прописать
dvolodin #
06:08
какой?
_4ePTeHok #
06:08
ну вагрант же на 127.0.0.1 все маппит на локальную машину
dvolodin #
06:08
блин, мне нужен нормальный CDN, чтобы можно было пакеты выкладывать и box'ы
06:09
https://docs.vagrantup.com/v2/synced-folders/basic_usage.html
_4ePTeHok #
06:09
ссш там 2222 по дефолту порт, а веб вроде надо указывать дополнительно
dvolodin #
06:09
а зачем тебе?
_4ePTeHok #
06:10
э, а як я буду в вебморду нока смотреть, который в вагранте крутится
dvolodin #
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
http://www.sencha.com/forum/showthread.php?264733
06:28
вот оно
sdmitri #
06:44
Всем привет! Подскажите плиз в какой базе и в какой таблице/коллекции находятся маки свичей, которые я могу посмотреть через managed objects --- interfaces --- L3??????
_4ePTeHok #
06:45
они ен в базе
06:45
а, стоп
sdmitri #
06:45
хочу написать скрипт, чтобы выдирал имя свича, ip, mac, serial number, vendor и т.д.
_4ePTeHok #
06:46
а закладке л3 нет маков
06:46
какой мак то нужен?
sdmitri #
06:47
есть, но у меня 500+ свичей.... хочу скриптом все вытянуть в виде таблицы
06:47
нужен мак тот который в закладке L3
_4ePTeHok #
06:47
да где там мак то?)
06:47
сделай скрин
06:48
а, ты через мо смотришь
06:48
увидел
06:48
я в инвентори смотрел
sdmitri #
06:50
вот меня и интересует в какой таблице можно получить эту инфу привязанную к id свича
dvolodin #
06:50
sdmitri: inv/models/interface.py
06:50
и inv/models/subinterface.py
_4ePTeHok #
06:51
начиная с 422 строкм в /sa/apps/managedobject/views.py
06:51
фильтр и дергание саба
sdmitri #
06:53
эти маки находятся в монге?
dvolodin #
06:54
sdmitri: да
sdmitri #
06:56
блин
_4ePTeHok #
06:57
в чем проблема то)
06:57
пиши на питоне скрипт
06:57
да выдергивай что надо
sdmitri #
06:58
та я думал на пхп.... питон не знаю
TSergey #
06:59
а зачем тебе этот мак, если не секрет?
sdmitri #
06:59
для инвентаризации.....
07:00
просто руками переписывать маки всех свичей не комильфо)
07:00
в ноке с интерфейса ведь даже копировать не получается(
dvolodin #
07:00
если работает id discovery, то проще его результаты взять
sdmitri #
07:01
во, тоже в монге?
07:01
ну это уже хоть что-то..... в какой коллекции они лежат?
_4ePTeHok #
07:03
айди дискавери отдаст диапазон маков
07:03
а не для каждого интерфейса
TSergey #
07:04
sdmitri: как для инвентаризации? будешь использовать как серийник?
sdmitri #
07:05
нет мне нужно name, vendor, platform, ip, mac, serial number
07:05
у меня просто форма(таблица) такая
TSergey #
07:06
очень интересно как можно такой мак использовать
sdmitri #
07:07
можно конечно вообще в тупую, арп запросом на сервере нока посмотреть)
_4ePTeHok #
07:07
там не один мак
07:07
каждая железяка имеет диапазон
07:07
которые раскидываются между л2 портами и л3 сабами
TSergey #
07:08
для System же один
sdmitri #
07:08
это да, но мне нужен мак влан-интерфейса для менеджмента)
07:08
Сергей прав!
_4ePTeHok #
07:09
не проще ли в этом случае пойти в ипам
07:09
и увидеть там сопоставленный айпишнику мак
07:09
(который будет в посгресе)
07:10
там как раз арп и будет
sdmitri #
07:11
так я же об этом и спрашиваю.... в постгре какая таблица?
07:14
все нашел.... таблица ip_address если кому-то понадобится! Спасибо!
_4ePTeHok #
07:14
CREATE TABLE "ip_address" (
sdmitri #
07:14
там кстати можно и по managed_object_id найти!
_4ePTeHok #
07:14
./noc sql ip
07:15
выдаст тебе все что в бд юзается приложением
07:15
по объекту тебе выдаст только если ты привязал в ипаме адрес к объекту
07:16
если не сделал это руками - не выдаст
sdmitri #
07:16
ну это да
TSergey #
07:22
_4ePTeHok: как из SubInterface.objects. узнать МО?
_4ePTeHok #
07:24
SubInterface.objects.get(параметр по которому ищещь).id
TSergey #
07:24
спасиб, а то str(i).split(':')[0] как-то совсем извращение :)
_4ePTeHok #
07:25
штоето
07:25
i?
TSergey #
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
как-то так http://pastebin.com/UcxTXx7N
aermike #
08:11
.
e_zombie #
08:11
,,
dvolodin #
09:18
TSergey: жестко ты как-то
09:18
по логике вещей management у свича один
09:18
и, соответсвенно, саб c ipv4_addresses тоже один
TSergey #
09:18
я же не настойщий еще сварщик :)
dvolodin #
09:19
for si in SubInterfaces.objects.filter(ipv4_addresses__exists=True):
09:19
...
09:20
по логике вещей у него еще и тип интерфейса -- SVI
_4ePTeHok #
09:20
а нафига
09:20
если в ипаме есть манаджмент адрес
09:20
и мак
09:20
сложности какие то выдумываете
TSergey #
09:20
расскажите как из интерфейса заполучить name MO
_4ePTeHok #
09:21
э
09:21
из кли?
09:21
o.name
09:21
где о - объект
TSergey #
09:21
кэп :)
09:21
for si in SubInterfaces.objects.filter(ipv4_addresses__exists=True):
09:21
зная саб, как выдернуть имя мо?
09:22
name = str(i).split(':')[0] --- это же просто смешно :)
_4ePTeHok #
09:22
чот ты как то через задницу
TSergey #
09:23
не спорю
_4ePTeHok #
09:23
сначала - мо перебираем, потом - сабы
TSergey #
09:23
есть некоторый проктологический аспект :)
_4ePTeHok #
09:23
а не наеборот
09:23
но я бы перебрал мо = выдрал манагмент адреса и прошел в ипам
09:23
сабы там ни к чему
dvolodin #
09:23
TSergey: si.managed_object.name
TSergey #
09:28
dvolodin: так --- for si in SubInterface.objects.filter(ipv4_addresses__exists=True): что-то на каждый коммутатор дает кучу ответов
_4ePTeHok #
09:29
потому что адресов поди несколько
dvolodin #
09:29
если они L3
09:29
то - да
_4ePTeHok #
09:29
или интерфейсов с адресами
TSergey #
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
_4ePTeHok #
09:51
угу
dvolodin #
09:53
тогда отфильтровывай пустые списки
nevs #
10:02
тут есть кто нибудь??
freeseacher #
10:02
по большей части да
nevs #
10:03
отлично)
freeseacher #
10:03
чо хочу ?
TSergey #
10:06
вот скажите, такая простая проверка: есть линк, смотрим зеркальность вланов на портах справа и слева, чего-то я упускаю в рассуждениях?
freeseacher #
10:08
оно кажется даже есть
10:08
называется switchport validation
dvolodin #
10:14
есть, да
10:14
switchport validation
10:14
старый как говно мамонта
10:14
теперь все лежит в базе, включая топологию
10:15
не проблема просто пройтись по линкам и сверить концы
10:15
там не только зеркальность проверять надо
10:15
могут быть стыки switchport / routing port
TSergey #
10:16
я смотрел switchport validation, я там не все понял
10:17
"там не только зеркальность проверять надо" может быть не зеркально и это правильно?
dvolodin #
10:20
может быть switchport/routing port
TSergey #
10:33
ок, вот если между switchport? должна же быть зеркальность?
nevs #
10:41
у меня вопрос по поводу скриптов. Есть d-link 1210-28/ME B2, на старой прошивке скипты отрабатывают, а вот уже на более новой нет.
10:41
вылетает вот с такой ошибкой: class 'noc.sa.script.exception.UnexpectedResultError'
TSergey #
10:42
./noc debug-script скрипт коммутатор
10:42
и будем смотреть на ошибки
nevs #
10:45
где это надо выполнить??
TSergey #
10:49
cd /opt/noc
10:50
и уже там
10:50
./noc debug-script скрипт коммутатор
nevs #
10:51
/opt/noc нет там debug-script(
TSergey #
10:52
напиши имя коммутатора
10:53
вот так введи:
10:53
./noc debug-script get_version имя_коммутатора
nevs #
10:58
command SON([('authenticate', 1), ('user', u'noc'), ('nonce', u'c72e4165dded3406'), ('key', u'61ce7328c8d472579d4459ef48a69dea')]) failed: auth fails
TSergey #
10:59
не, нужно весь ответ зафигачить на pastebin.com (или аналогичное)
10:59
ну и удачи тебе :)
nevs #
11:05
http://pastebin.com/usJ3t7r9
Tweet
Share this page
Share this page: Tweet