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: 17.05.2011
gnu-linux #
01:22
Документация: "Создание профиля и скриптов для поддержки нового оборудования" http://redmine.nocproject.org/boards/1/topics/2181
04:20
ReduceTask у меня вчера получился, но он очень медленно работает... commands должно намного быстрее работать но я не знаю как вызвать эту commands http://pastie.org/1914464
04:22
также i.address плохо использовать он глючит если не сделать str(i) или вообще использовать str(i)
04:24
dvolodin: напиши ещё в каком формате вводить параметр №3 с ReduceTask, ну например можно в место html вывести питоновский список..
dvolodin #
04:25
threading там вообще не нужен
gnu-linux #
04:25
напиши как с скрипта вызвать commands. Следующую доку собираюсь написать по командам ReduceTask, ping и commands...
dvolodin #
04:26
http://redmine.nocproject.org/projects/noc/repository/entry/ip/apps/ipam/views.py
04:26
тут есть примеры
gnu-linux #
04:47
в 747 строке есть пример ReduceTask я его уже знаю, кроме параметра №3, да зокоментил task.get_result() паралелит само но активаторы сожрало...
04:47
runcommands если по 10 пингов зараз будет меньше жрать активаторов, нет?
dvolodin #
04:55
тут важный момент
04:56
можно запускать скрипт ping -- он потопает на железку ssh'ем или telnet'ом и запустит на ней ping из CLI
04:56
а ping_check пускает на активаторе fping и пингует все скопом с активатора
gnu-linux #
04:59
{'code': 13, 'text': u'Invalid script DLink.DxS.ping_check'}
05:00
где взять пример я его сейчас для длинков наваячю, если оно поможет делу...
05:03
нет, по-моему нето, я со своей IP могу всё пропинговать под рутом за секунды :) мне надо чтобы каждый свич пинганул всех остальных...
dvolodin #
05:36
NOC.SAE.ping_check
05:36
сложный вопрос
05:37
нужно ли, чтобы все пинговали всех?
gnu-linux #
05:47
Незнаю, кажись да.. Вот сей час чераз веб дерну по runcommands всех...
05:48
как этот runcommands запустить с скрипта?
05:51
гы увидел commands в ReduceTask Map script: commands
dvolodin #
05:51
self.script.commands(....)
gnu-linux #
05:52
а чтобы она на всех запустилась через редьюсе таск?
dvolodin #
05:53
ReduceTask.create_task(selector, "pyrule:get_single_result", {}, "commands", {"commands": [.....]})
gnu-linux #
05:55
Да я уже на этот раз догадался, а параметр №3, для дока, дай какойнить пример...
dvolodin #
05:59
для reduce_task?
05:59
там все просто
05:59
если у тебя reduce функция выглядит так
06:00
def my_reduce(task1, param1, param2):
06:00
то параметры будут: {"param1": "value1", "param2": "value2"}
06:00
это дополнительные данные, которые надо передать в reduce
`kk #
06:19
http://dpaste.com/543284/
dvolodin #
06:24
добавления пока нет, разбираюсь с полями
06:25
задачка есть для знающих жабаскрипт
06:25
в jstree есть полезный плагин hotkeys
06:25
позволяет гулять по дереву стрелочками
06:26
но есть у него одна беда - он работает только с плагином ui
06:26
а эта собака считает, что клик на строку - это выбор строки
06:26
и хоть расшибись, но дальше по ссылке не пускает
06:27
а нам надо, чтобы по клику она делала переход по ссылке
06:27
кто-нибудь может посмотреть?
06:27
ну или свой плагин прикрутить
06:27
надо чтобы стрелки гуляли по дереву
06:27
по Enter делался переход по ссылке
06:28
ESC - закрывал popup окно (hide_popup())
Dmitry11 #
06:28
pop-up меню к jstree прикрути. тогда не нужно будет левой клавишей мыши тыкать.
06:31
Всем привет. Заметил еще одну недоработку в IPAM.
06:31
Задача - добавить объект SA.
06:31
1. Заполняем поле "Address".
06:31
2. В поле "FQDN" пишем что угодно. Потому как не пустит дальше :(
06:31
3. В поле "Managed Object" находим нужный объект SA. Выписываем его на бумажку.
06:31
4. Лезем в базу SA, ихем там этот объект и выполняем скрипт get_fqdn. Выписываем результат на бумажку.
06:31
5. Возвращаемся в IPAM и в поле "FQDN" пишем правильное значение.
06:32
Как по мне - довольно таки странная логика работы. Или я что-то не так делаю?
dvolodin #
06:38
не хочу меню, дрянь оно
06:39
DBTriggers смотри
wad_ #
06:39
а если у нас объект не управляемый то как бы то-же из днс автоматом..
dvolodin #
06:39
http://redmine.nocproject.org/boards/1/topics/1481
wad_ #
06:41
в триггерах оно само что-то занесет...
06:41
может виджет? если заполнено поле управление, получить из get_fqdn если нет то из ДНС
gnu-linux #
06:42
У меня кажись пинговалка L2 сегмента получилась... http://pastie.org/1914797 я её у себя потестирую и скажу оно надо или нет для топологии сети...
Dmitry11 #
06:42
Эээ... Т.е. ты предлагаешь конечному пользователю писать на питоне? Не проще ли сделать две кнопки рядом: "Get FQDN from SA" и "Get FQDN from DNS" ?
06:45
Я таки подозреваю, что среднестатический пользователь (он же радовой оператор NOC'а) имеет очень смутное представление, что такое триггеры, PostgreSQL и т.п.
gnu-linux #
06:51
ДА, ПРОПИНГОВКА ПОМОГАЕТ ~ в 2 раза но также для неё нужны:
06:51
config arp_aging time 600
06:51
config fdb aging_time 600
06:52
MAC_ADDRESS_TABLE_NOTIFICATION
Dmitry11 #
06:53
Вроде оно только трапы отсылает?
gnu-linux #
06:53
enable mac_notification
06:53
и указываем порты к которым присоеденины коммутаторы
dvolodin #
07:21
gnu-linux: так может для них сделать нормальные скрипты ping?
07:22
Dmitry11: я предлагаю написать 3 строчки на питоне настройщику
07:22
далеко не у всех в именах объектов - FQDN
07:23
gnu-linux: если надо дождаться выполнения нескольких задач, есть wait_for_tasks
07:23
ReduceTask.wait_for_tasks([t1, t2])
07:23
так правильнее
07:24
Хорошая новость для любителей великих и могучих
07:24
дуриком сделал полную поддержку I18N
07:25
теперь юзер в профиле может выбирать себе язык интерфейса
07:25
Теперь дело за переводчиками :)
07:25
ну и в самом коде местами надо поправить
07:26
http://docs.djangoproject.com/en/1.3/topics/i18n/
07:26
все просто как два рубля рублями
07:26
даже скрипт есть ./script/makemessages
07:28
кто будет переводить на русский?
07:28
и какие языки нам еще нужны?
Dmitry11 #
07:39
dvolodin: лучше сделать возможность пользователю выбрать, откуда брать fqdn. Из SA или DNS
dvolodin #
07:39
не надо
07:39
FQDN в DNS попадает как раз из IPAM :)
wad_ #
07:50
не у всех так идиально... пачка виндовых машин на DHCP они сами в ДНС имена пишут
07:53
выложил мега вещь.. АвтоКонсерватор http://redmine.nocproject.org/boards/3/topics/2182
07:53
сам заполняет поля выходной консерве, а так же умеет раскладывать по папкам полученные консервы
Dmitry11 #
07:55
А если я хочу из скрипта get_fqdn ?
dvolodin #
07:58
wad_: caninstall консерву на ее место выносит
07:59
Dmitry11: у тебя вырожденный случай, когда в IPAM только железки
wad_ #
07:59
ну нету доки нормальной... поэтому пишем все сами
dvolodin #
08:00
про консервы и caninstall написано
08:01
для скриптования полезно будет сделать что-то вроде
08:01
manage.py runmrt ......
08:01
для запуска map/reduce task и вывода результата
Dmitry11 #
08:03
Почти цитируя кролика: "Случаи бывают разные". Т.е. нужно предусмотреть любые ситуации. Ну не пользуюсь я DNS. Но в некоторых устройствах у меня "забиты" FQDN. Хочу их вытаскивать.
08:03
Кстати, касательно изращенных ситуаций.
08:04
У D-Link нет такого понятия как FQDN. Но есть поле "description", которое описывает свич.
08:05
Я себе представляю такую ситуацию: для d-link и подобных устройств FQDN формировать как description+домен из управляющего интерфейса.
gnu-linux #
08:07
dvolodin: по поводу нормальных скриптов пинг, да надо, потом зделаем. У меня все скрипты пока кривые :) Это просто черновики, примеры.
Dmitry11 #
08:08
для этого в API предусмотреть функции вида get_domain_from_ip() и get_fqdn_from_ip()
gnu-linux #
08:10
Пропинговка помогает сильно, причём надо пинговать весь L2 сегмент не зависимо от одресов 3 уровня! Арпы других сетей не будут но маки в таблицы добавляются...
08:12
еще заметил если коммутатор держит мак в таблице 10 секунд, то с него ничего не вытянешь... комутаторы надо настроить чтобы они чуток маки придерживали...
Dmitry11 #
08:12
2dvolodin: Скажи, плиз, мне надеятся на доработку скрипта cli() ? Очень хочется подружить NOC+D-Link
gnu-linux #
09:54
2Dmitry11 а на сколько при текущем положении дел сложно написать get_interfaces & gte_ports для длинка? Может я как нибудь попробую?
Dmitry11 #
10:02
В некоторых версиях firmware на новых свичах при disable clipaging вырубается их долбаный CLI. Но это 5-10% от всего модельного ряда устройств.
10:04
DES-30XX, DES-3028, DES-3526, DES-3528 не умеют этого и, скорее всего, так и не научатся. Представители D-Link мне официально ответили, что это EOL и они заморачиваться новыми фичами для прошивок не будут. Только исправления.
10:05
Как ни странно, но disable clipaging нормально работает на DGS-3100 серии
10:18
А на серъезных свичах, типа DES-38xx, DGS-34xx, DGS-36xx серии, на которых как раз и можно посоздавать кучу интерфейсов, CLI Paging не отключается
gnu-linux #
10:20
Да, у меня только DES-3528 в зоопарке нету. Посмотрел весь прикол в comends_more="a" в DGS-3100 можно просматревать все страницы нажав "a"
10:22
В остальных для следеющей страныцы надо нажимать "n", а потом для выхода ещё и "q"... надо разширить параметры cli():
10:24
command_more="n"
10:24
command_all="a"
10:25
command_quit="q"
10:25
Тогда в длинках где оно может выдать всё зараз давать command_all="a"
10:26
а где надо листать по страничкам, сначала пролистывать command_more="n", потом выходить command_quit="q"
10:27
dvolodin: что быстрее дописать когда нибудь самому или объяснить нам как дописать эту фичу самим?
dvolodin #
10:28
зачем
10:29
pattern_more в профиле может быть списком из пар - регулярное выражение, что жать
gnu-linux #
10:30
вот вот давай дальше, нам надо сначала жать "n" потом в конце "q"
wad_ #
10:31
а когда q там строка же другая чем когда n ?
gnu-linux #
10:33
в место pattern_more="^---MORE---"
10:33
У длинков: pattern_more="CTRL+C ESC q Quit SPACE n Next Page p Previous Page r Refresh"
10:34
тогда надо сначала жать "n" потом "q"
10:34
или:
10:35
pattern_more="CTRL+C ESC q Quit SPACE n Next Page ENTER Next Entry a All"
10:36
тогда можно жать только "a" НО:
10:36
в данном случае можно тоже сначала жать "n" потом "q"
10:37
dvolodin: Наверно надо пробывать command_more="n" command_exit="q"
dvolodin #
10:38
не получается
10:39
он не перерисовывает пейджер, а только рефрешит содержимое
gnu-linux #
10:39
для ревреша есть "r"
dvolodin #
10:42
ты не понял
10:42
пейджер рисуется только один раз
10:42
дальше - тишина
gnu-linux #
10:43
а ну я сейчас у себя для длинков в __init__.py поставлю command_more="n" и посмотрю будет ли всё работать :)
10:46
пока смотрю глляно строку 33 http://pastie.org/1915558 как мне topologydiscovery(ManagedObjectSelector.objects.get(id=1)) на мою сеть в скрипте натравить
10:56
Поставил command_more="n" у Dlink всё работает как и должно быть. но в конце надо нажать вместо "n" "q" для show ports... иначе оно ждет и не шевелится...
10:57
А чем отличаются command_exit & shutdown_sesion ?????
11:03
dvolodin: в профиле DLink должно быть command_more="n", а не "a"!!! Как добавить выход в конце по "q" когда уже ничего не изменяется??
dvolodin #
11:05
command_exit - просто команда
11:05
shutdown_session - метод класса, из которого можно дергать что угодно
gnu-linux #
11:12
Заметил что на некоторых делинках (уменя на всех кроме DGS-3100) когда оно пролистывает до последней страницы то выдает:
11:13
Notes:(F)indicates fiber medium and (C)indicates copper medium in a combo port.
11:13
по этому можно его ловить когда жать "q"
11:14
надо в cli() добавить:
11:15
pattern_all="^Notes:(F)indicates fiber medium and (C)indicates copper medium in a combo port."
11:15
command_end="q"
11:15
pattern_end="^Notes:(F)indicates fiber medium and (C)indicates copper medium in a combo port."
11:16
pattern_all - уже не надо ;)
nixwizard #
11:46
hpicfBridgeMSTPortRole.1.289 = 6, коллеги, кто с прокурвами работал, 6-я роль это что?
11:49
опять этот MESH
_4ePTeHok #
11:49
discard вроде по стандарту
11:50
или вообще disabled stp
nixwizard #
11:53
disabled вроде 1-я
_4ePTeHok #
11:53
1 - disabled/not connected
11:53
6 = discard/disabled
nixwizard #
11:53
ок, спасибо
_4ePTeHok #
11:54
2= alternate/discard
11:54
5= forwarding
11:54
если ничего не напутал) возможно на хп что то и отличается.
11:54
я от другого вендора привел
nixwizard #
11:57
напишу disabled, в igetspanningtree нету discard
_4ePTeHok #
12:00
ну есть роль порта, а есть статус. - роль - root/alternate/designated, статус - disabled/discard/forwarding
12:01
под какой хп делаете профиль?
12:01
а то есть парочка 5304xl..
nixwizard #
12:39
5406zl
_4ePTeHok #
12:40
хм.. ну синтаксис наверняка схож там
nixwizard #
12:40
на 5304xl нормально отрабатывает get_spanning_tree?
12:41
у меня ошибка, нет атрибута vlans для IST
_4ePTeHok #
12:41
я не пробовал с ними еще. У меня перенос noc на виртуалку сейчас в процессе...перенесу, обновлю и погляжу.
nixwizard #
12:42
ясно
_4ePTeHok #
12:53
dvolodin, а noc на 9м постгресе взлетит?
dvolodin #
12:54
Должен
12:54
не пробовал
_4ePTeHok #
12:54
ну вот и проверим..
nixwizard #
13:10
у меня на 9.0.4
13:12
dvolodin hpicfBridgeMSTInstanceVlanMap не отображает вланы IST, как быть?
13:13
из-за этого не отрабатывает нормально get_spanning_tree
dvolodin #
13:13
CST?
nixwizard #
13:14
IST, дефолтный инстанс mstp
13:14
IST Instance Configuration Information
13:14
Instance ID : 0
13:14
Switch Priority : 0
13:14
Mapped VLANs : 1-19,21-23,38-4094
13:15
это через show spanning-tree config instance ist
13:17
а через walkmib, только вланы инстанса 1
dvolodin #
13:49
instance 0 он
13:49
ну да
13:49
этот из обычного stp вроде брался там
`kk #
14:36
блин, всё ещё - Periodic task=fm.ping_check:Any status=failed
Tweet
Share this page
Share this page: Tweet