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: 07.04.2014
TSergey #
04:07
dvolodin: хочу сделать несколько пирулей, вида: обхожу МО, засылаю команду на железку, анализирую ответ. Посоветуй, чем это делать логичнее? Смотрю "context", но не уверен, что он возвращает ответ.
04:09
или может я неправильно понимаю, как работает
04:09
{% var cmd internal %}
04:09
context["cmd"]="..."
04:09
{{cmd}}
dvolodin #
04:27
это переменные, которые будут подставляться в шаблон
TSergey #
04:28
посоветуй, как правильней реализовать схему "команда в железку --- ответ"
dvolodin #
04:32
сниппеты не катят?
TSergey #
04:33
подозреваю что катят, а в нем можно получить ответ от засланной в коммутатор команды?
04:34
не могу найти примера, понятного на моем скромном уровне
dvolodin #
04:36
а так -- самое простое
04:36
result = mo.scripts.<script_name>()
04:36
их из pyrule можно как функции вызывать
TSergey #
04:39
произвольный же скрипт нельзя? это ведь зарегестрированные классы?
dvolodin #
04:42
положи его в нужное место
admin_ #
05:11
dvolodin: таки увлёкся геокодированием ФИАС - не понял. Смотрю в сторону http://wiki.openstreetmap.org/wiki/RU:Nominatim
TSergey #
05:20
dvolodin: сорри что я по втором кругу, но все-таки --- как работает сниппет?
05:20
из "Продвинутое использование питона в сниппетах"
05:20
...
05:20
context["cmd"]+="show running-config interface " + free_interface
05:20
{% endpython %}
05:20
{{cmd}}
05:20
команда засылается в коммутатор после окончания кода сниппета? или неправильно понимаю?
05:21
можно ли из сниппета заслать команду и обработать ответ?
dvolodin #
05:25
рендерится шаблон сниппета
05:25
разворачиваются все переменные
05:25
и засылается на коммутатор
TSergey #
05:33
и ответ в коде мы уже не можем обработать?
zi_rus #
05:35
TSergey, нет, не можем
TSergey #
05:35
zi_rus: спасиб, читаю стовй код и в логах чата как ты разбирался
05:35
*твой код
zi_rus #
05:39
читай
TSergey #
05:39
значит, если хочу реализовать схему
05:39
для определенного профиля порта проверить включен ли lldp и для нужного включить, для ненужного выключить --- то это делаем скриптом и дальше, как писал dvolodin, result = mo.scripts.<script_name>()
zi_rus #
05:40
про такое я бы подумал над улучшением текущей ситуации
05:40
у нока для интерфейсов есть поле protocols
05:40
вот lldp туда надо бы писать
05:40
а тогда твоя ситуация упрощается
05:40
дергаешь из базы, а не из железки
dvolodin #
05:40
пишет get_interfaces
TSergey #
05:41
мне много всякого нужно, проверить локальных пользователей, stp, lldp, наличие файла прошивки
zi_rus #
05:41
dvolodin, ну вот не пишет. почти никто туда ничего не пишет
05:42
dvolodin, на самом деле. почему нет универсального интерфейса, передавать туда не номер порта или vrf, а произвольный код, а в ответ получать результат?
05:42
я вот со своим приложением тоже мучаюсь
05:42
вот как мне плюнуть кусок конфига в железку?
05:42
никто не признается
05:42
а run commands как-то работает
TSergey #
05:43
а такое?
05:43
http://forum.nocproject.org/index.php?topic=205.0
05:43
или вот http://kb.nocproject.org/pages/viewpage.action?pageId=11567283
05:44
"8[12:43] zi_rus: а run commands как-то работает"
05:44
а я думал это для моих длинков отвалилось
zi_rus #
05:44
там написано для варианта со сниппетом, а у меня свое приложение
05:44
там надо как-то с mrt разбираться
05:45
доки нет, кто знает не может объяснить
TSergey #
05:45
хорошо, буду писать свой скрипт
05:45
но тогда вопрос --- ведь нельзя произвольный закинуть, нужно же калсс описать? или нет?
05:46
*класс
zi_rus #
05:48
TSergey, http://kb.nocproject.org/pages/viewpage.action?pageId=2687537
TSergey #
05:48
это ты про свое приложение или меня пугаешь про скрипты?
zi_rus #
05:50
это то что тебе придется делать
05:50
это единственный выход
05:50
хотя
05:50
если ты хочешь чтобы твой скрипт периодически запускался
TSergey #
05:50
именно так
zi_rus #
05:50
то тебе надо писать pyrule
05:51
но проблема остается
05:51
надо научиться кидать команды на коммутаторы
TSergey #
05:51
так в том и фишка, я не знаю как из пируля заслать команду на девайс и получить ответ
05:51
ага
zi_rus #
05:51
_4ePTeHok, dvolodin, mikevlz - вот они точно знают, но не признаются
TSergey #
05:52
вроде есть скрипт "commands" в MO\Edit, но на моих длинках он не работает
05:53
а так, наверное можно его прикрутить и пользоваться схемой result = mo.scripts.<script_name>()
zi_rus #
05:53
я же говорю, надо пытать посвященных иначе можно долго тыкаться
dvolodin #
05:54
в принципе можно подумать над helper'ом
05:54
типа mo.commands(....)
05:55
и кормить ему на входе текст или шаблон
TSergey #
05:55
я спросил dvolodin, пока есть два три ответа:
05:55
- в сниппете ответ не получить
05:55
- скрипт нужно положить в нужное место
05:55
- получать ответ result = mo.scripts.<script_name>()
05:55
dvolodin: расскажи, псл, схему прикручивания скрипта
05:57
сначала здеь делаем класс noc / sa / interfaces /?
mikevlz #
05:57
блджад
zi_rus #
05:58
mikevlz, и я того же мнения
mikevlz #
05:58
нет, это я про вас
05:58
а вот хелпер, кмк, нах не нужен.
zi_rus #
05:59
mikevlz, дык ну а как иначе, хоть бы кто статью налабал
05:59
если все так просто
05:59
а если не просто то хелпер нужен
mikevlz #
05:59
есть хелпер, универсальный и пиздатый
zi_rus #
05:59
таки мы тут админы, а не программеры
mikevlz #
05:59
проблема в том, что ты не программист и боишься джаваскрипта
zi_rus #
05:59
чтобы сидеть код читать чтобы разобраться
06:00
да, это проблема
06:00
и не я один
06:00
некоторые тут и питона боятся
TSergey #
06:00
mikevlz: расскажи, как бы ты реализовывал бродилку по портам, которая проверяла некоторые настройки (в ноке не сохраняемые) и корректировала их?
zi_rus #
06:00
и с точки зрения пользователя, какого вообще хера мы тут кодингом занимаемся
mikevlz #
06:00
вот напишу я, как сделать приложение-аналог Run Commands в новой реальности с ExtJS, дальше что?
dvolodin #
06:01
zi_rus: выбор простой, либо сами кодингом, либо нанимайте кодеров
06:01
чудес не бывает
zi_rus #
06:01
я бы никогда и представить не мог что пишу свой плагин для кактуса или нагиоса
mikevlz #
06:01
TSergey: я реализовал приложение, которое ищет пути по топологии, проверяет, что зхаданный влан на всех железках выбранного пути свободен и пихает туда этот влан на нужные порты.
TSergey #
06:01
погодите, а вот MO\Edit|Scripts\Commands --- он у всех неживой?
zi_rus #
06:01
а кактусом мы вообще пользуемся
dvolodin #
06:02
вопрос в количестве хотелок
TSergey #
06:02
mikevlz: я видел, и жду там твоего ответа
mikevlz #
06:02
ничего особо сложного. только индусский код
06:02
где там? в блог я это вроде не писал
06:02
а может писал, но уведомление не приходило о новых комментах
dvolodin #
06:03
дальше сложнее будет, на подходе ordering
06:03
там уже думать надо, методом тыка не получится
TSergey #
06:03
mikevlz: http://kb.nocproject.org/pages/viewpage.action?pageId=13336714 --- это не ты?
mikevlz #
06:03
dvolodin: в чем плюсы татуинской магии перед африканской? тут вот африканское не все понимают
dvolodin #
06:03
и там уже нужна интеграция с CRM или с его заменителем
mikevlz #
06:04
TSergey: это я, но там про другое
dvolodin #
06:04
mikevlz: африканская магия использует Силу странным местом
TSergey #
06:04
dvolodin: что-то очень разговор в сторону ушел --- неужели задача "команда в коммутатор + обработка ответа" настолько сложна?
06:05
а вот MO\Edit\Scripts\Commands --- он у всех неживой?
mikevlz #
06:07
TSergey: NOC.mrt() в джаве или ReduceScript модель в питоне
06:07
эти две вещи решают все проблемы в этом плане. Любой стандартный интерфейс нока дергается этими двумя вещами из нужных мест, получает результат
TSergey #
06:08
блин, ну а как сделать нестандартный? расскажите уже, что за секретность?
06:09
а за мной не заржавеет, я опишу что и как получилось
mikevlz #
06:09
берешь стандартный интерфейс commands. Дергаешь одной из этих вещей. Парсишь регэкспами вывод
06:09
профит
dvolodin #
06:09
TSergey: вопрос в том, сколько раз ты собираешься дергать железку
06:09
если только послать команды и обработать результат, то тебе нужен MRT
06:10
ReduceTask.create_task
mikevlz #
06:10
во, точно...
dvolodin #
06:10
если несколько раз дергать, то mo.scripts.......
mikevlz #
06:10
а я его reducescript обозвал
dvolodin #
06:10
те же яйца, только сбоку
06:10
commands ловит на входе список строк
TSergey #
06:10
dvolodin: расскажите, как правильно "завести" нестандартный скрипт, плс
dvolodin #
06:10
положить его в sa/profiles/....
TSergey #
06:11
сначала здеь делаем класс noc / sa / interfaces /?
mikevlz #
06:11
угу и написать интерфейс, чтоб все понимали, что ждать
dvolodin #
06:11
если интерфейс свой, то да
TSergey #
06:11
и все?
dvolodin #
06:11
сейчас пилю, чтобы можно было свои скрипты класть в solutions
06:11
там только интерфейс
06:12
а сам скрипт в sa/profiles/.....
TSergey #
06:13
и все, и дальше можно из пируля запускать как result = mo.scripts.<script_name>()?
06:14
"8[13:11] dvolodin: commands ловит на входе список строк"
06:14
засылаю "show accounts", вываливается в трэйс
06:14
*account
_4ePTeHok #
06:15
трейст то на что
mikevlz #
06:15
так надо ["show account"]
06:15
должен быть именно список, неважно, сколько в нем элементов
_4ePTeHok #
06:15
может оно там промт того этого
TSergey #
06:16
не, все равно "ERROR: 14"
_4ePTeHok #
06:17
в консольке то работает?
TSergey #
06:17
mikevlz: а у тебя работает commands? это бы было решением моей проблемы, делаю строчку, засылаю, анализирую ответ
_4ePTeHok #
06:17
ну или через дебаг
06:18
оно работает
06:18
вопрос только в какихз профилях и железках
TSergey #
06:18
о, я просто думал что он не рабочий
mikevlz #
06:18
работает...
06:18
чо ему не работать?
06:19
я им бывает смотрю или наличие сетки в ospf или настройки Lldp
TSergey #
06:20
вот у меня как-то не работает
_4ePTeHok #
06:20
дебаг запусти
TSergey #
06:22
./noc debug-script commands.["show account"] s558-1-2.intt --- а как передать параметры в скрипт, в дебаге?
buggy-funhouse #
06:25
TSergey: через переменная равно
_4ePTeHok #
06:26
TSergey, ./noc debug-script Cisco.IOS.ping ssh://foo:bar%00superpassword@192.168.0.1 'address="127.0.0.1"
06:26
можно подсократить
mikevlz #
06:26
_4ePTeHok: кавычку проебал
_4ePTeHok #
06:26
да
06:26
в конце
06:26
'
06:26
вот вам.
TSergey #
06:27
про аддрес я уже тоже нашел
06:27
чего команду-то надо?
_4ePTeHok #
06:27
ну вот команда там
mikevlz #
06:27
TSergey: вот аналогично
TSergey #
06:27
сэнкс :)
06:29
./noc debug-script commands 'commands=["show account"]' s558-1-2.intt
06:30
отрабатывает
06:30
root@noc:/opt/noc# ['Command: show account\n\nAccount is empty!\n\n']
_4ePTeHok #
06:31
ну значит все работает.
TSergey #
06:31
значит где-то я глобально туплю, в скриптах с ["show account"] вываливается в ERROR: 14
ovg #
06:32
hi all
_4ePTeHok #
06:32
o.scripts.commands(commands=["show int status"])
06:32
['\nPort Name Status Vlan Duplex Speed Type\nG
06:32
и т д
ovg #
06:33
профиль Mikrotik.RouterOS кто запиливает? там сломаны регексы в pager'е и косяк в get_interfaces
TSergey #
06:34
_4ePTeHok: чего ты пишешь в MO\Edit\Scripts\Commands?
06:35
на любой текст отвечает ERROR: 14
06:36
и во внутрях "Parameter 'commands' required"
zi_rus #
06:37
_4ePTeHok, http://bt.nocproject.org/browse/INV-18
buggy-funhouse #
06:37
TSergey: попробуй другие кавычки =)
TSergey #
06:39
да уже чего только не пробовал
06:39
"show account", 'show account', ["show account"], ['show account']
06:40
buggy-funhouse: ты чего-нибудь запусти, чего тебе ответит
mikevlz #
06:40
o.scripts.commands({'commands':['show account']}) ?
TSergey #
06:41
'commands':['show account'] --- нет
06:42
{'commands':['show account']} --- нет
06:43
{"commands":["show account"]} --- нет
06:43
"commands":["show account"] --- нет
06:43
пипец
06:44
в каком формате нужно передать параметр?
buggy-funhouse #
06:45
заинтриговал
06:45
какой скрипт зовёшь?
TSergey #
06:45
MO\Edit\Scripts\Commands
buggy-funhouse #
06:45
а
TSergey #
06:45
в дебаге нормально отработал
06:47
хорошо, а расскажите теперь, где его найти? "обычный" скрипт лежит в профилях, а такого нет
_4ePTeHok #
06:48
а нахер он там
06:49
он же не производит никаких промежуточных действий
06:49
тупо транслирует команду
TSergey #
06:49
а где его текст посмотреть?
_4ePTeHok #
06:49
нету там текста)
TSergey #
06:49
жуть какая
dvolodin #
06:50
o.scripts(commands=[....])
_4ePTeHok #
06:50
выше вон то же самое
06:50
o.scripts.commands(commands=["show int status"])
dvolodin #
06:50
o.scritps.commands(commands=....
_4ePTeHok #
06:51
где o - объект МО
TSergey #
06:51
dvolodin: а в интерфейсе? MO\Edit\Scripts\Commands
dvolodin #
06:51
{"commands": [....]}
TSergey #
06:52
например {"commands": ["show account"]} ?
06:56
все равное это, наверное, кривой путь, из-за дерганья настроек каждого порта делать логин-логают к комутатору
_4ePTeHok #
06:58
э.
06:58
что мешает сделать sh run
06:58
b hfcgfhcbnm dc. ghjcnsy.&
06:58
и распарсить всю простыню
zi_rus #
06:59
а смысл вообще делать sh run если конфиг уже в ноке
TSergey #
06:59
да, ты прав
_4ePTeHok #
07:00
я к примеру
TSergey #
07:00
я хотел избежать разбора синтаксиса конфига
_4ePTeHok #
07:00
если актуализировать конфиг в ноке до его распарсивания то - да
TSergey #
07:00
ну так и чего? у кого-то MO\Edit\Scripts\Commands сработал?
_4ePTeHok #
07:00
ну выводи то, что тебе нужно со всех портов
07:01
а надо?)
07:01
это один и тот же скрипт
TSergey #
07:01
я бы иссэ сделал, если бы был уверен, что не только у меня не работает из интерфейса
_4ePTeHok #
07:01
что o.scritps.commands что ./noc debug-script commands
TSergey #
07:02
угу, согласен
_4ePTeHok #
07:02
там для этого есть sa-mo-edit-console
07:02
тот же самый скрипт дергает
TSergey #
07:02
а попробуй, плс, запустить из MO\Edit\Scripts\Commands
_4ePTeHok #
07:09
там параметр не передается судя по всему.
07:09
{"commands":"['show version']"} POST уходит такой
mikevlz #
07:09
'nj rcnfnb ,sdftn
07:09
это кстати бывает
07:09
я так вланы правил
_4ePTeHok #
07:10
где?)
mikevlz #
07:10
ну в веб-морде не были проблемы с добавкой первого свободного чего-то
07:10
вроде влана
_4ePTeHok #
07:10
а.давно
07:12
zi_rus,
07:12
task = ReduceTask.create_task(
07:12
o, "pyrule:mrt_result", {},
07:12
name, {},
07:12
None)
07:12
return task.id
07:12
вот тебе еще пример
zi_rus #
07:12
и что это?
mikevlz #
07:12
это из червяка дерганье скрипта
zi_rus #
07:12
эммм
_4ePTeHok #
07:12
name - скрипт
07:12
o - object
zi_rus #
07:13
о_О
_4ePTeHok #
07:13
ркзультат получишь по
zi_rus #
07:13
_4ePTeHok, если не сложно, налабай статью с подробностями. ибо впросы остаются name - скрипт - какой скрипт?
_4ePTeHok #
07:13
try:
07:13
r = t.get_result(block=False)
07:13
except ReduceTask.NotReady:
07:14
где t = self.get_object_or_404(ReduceTask, id=int(task))
zi_rus #
07:14
а я смогу в питоне в цикле это сделать?
07:14
while True:
07:14
ну и тд
_4ePTeHok #
07:15
ну задач то напихаешь
07:15
результат не мгновенно полушишь
zi_rus #
07:15
понятное дело
07:15
while
07:15
потом sleep 1000
_4ePTeHok #
07:15
не
07:15
try:
07:15
[10:15:00] <_4ePTeHok> r = t.get_result(block=False)
07:15
except ReduceTask.NotReady:
07:15
вот это тебе и покажет, что еще не готово
zi_rus #
07:16
и это предполагается дергается джавой
_4ePTeHok #
07:16
питон
zi_rus #
07:16
так нет
07:16
ответит что не готово
_4ePTeHok #
07:16
смотри вьюшку в sa-mo
zi_rus #
07:16
надо еще раз дернуть
_4ePTeHok #
07:16
ну сделаешь в скоем цикле проверку
07:16
на готовность
07:16
с задержкой
zi_rus #
07:16
ну я и говорю
07:17
while sleep
_4ePTeHok #
07:17
в общем из вьюшки можешь выцепить метод создания задачи, и дергание результата - там это в функциях api_
07:18
def api_run_script def api_get_script_result
07:18
больше тебе ничего не надо)
07:19
name - это get_inventory например.
zi_rus #
07:19
_4ePTeHok, объединитесь уже с mikevlz и налабайте статью, так и напишите что нок не позволяет просто так кинуть на железку набор команд. на самом деле надо подготовить задачу которую нак зашедулит на исполнение активатором... ну и тд
_4ePTeHok #
07:19
бля
07:19
ну уже битые два часа расписываем методы
07:20
что можно и коммандс
07:20
и рантаск
zi_rus #
07:20
нет, вы расписываете методы
07:20
а надо объяснить что вообще за херня происходит чтобы люди понимали что за пургу вы несете
07:20
и зачем
07:21
что вы как профессор на лекции, час объяснений, а в конце, ну это было очевидно
_4ePTeHok #
07:21
кто тут студент)
07:21
зачетку давай
07:22
в форточку выкину)
07:23
ответ зависит от задачи
07:23
абстрактно писать особо нечего
zi_rus #
07:24
_4ePTeHok, ну возьми пример, надо выполнить на железке произвольный набор команд - это как самый полный вариант
_4ePTeHok #
07:24
есть метод позволяющий отослать команды на железку из пирули или ./noc shell, или из своего скрипта
zi_rus #
07:24
и распиши что для этого нужно
07:24
и главное - что все это значит
07:24
хотя бы на уровне понимания
_4ePTeHok #
07:24
есть второй метод, необходимый для работы с веб-мордой в интерактиве
zi_rus #
07:24
чтобы не копипастой статьи заниматься а моджно было осмысленоо пользоваться инструментом
_4ePTeHok #
07:25
вот первый это тупой o.scripts, второй - MRT
07:26
т е от того, откуда ты планируешь вызывать задачу - и зависит какой метод юзать
07:27
можно скажем и в приложении сделать панель, куда выбрасывать результат show ver с железки при загрузке приложения. И реализовать это через o.scripts
zi_rus #
07:27
_4ePTeHok, вариант номер раз, у меня интерактивное приложение, я задаю параметры, вьюшка их обрабатывает и готовит конфиг и должна этот конфиг ( по сути набор команд) выполнить на железе. вариант два, неинтерактивный пируль TSergey, который в фоне хочет что-то
07:27
делать
07:27
хотя по сути это одно и тоже
07:27
проблема в моменте
07:27
плюнуть набор команд на железку
_4ePTeHok #
07:27
пируль проще с o.scripts
07:28
твое дело тоже можно им сделать
07:28
если конфиг один
zi_rus #
07:28
надо заставить нок залогиниться на железку, выполнить несколько команд и в ответ передать результат, что ответила железка
07:29
_4ePTeHok, o.scripts - что это? mo.scripts.command(config) ???
07:29
или иначе?
07:29
я не понимаю, не сокращай
07:29
это не очевидно
_4ePTeHok #
07:30
в скобках лист из команд
07:30
>>> o.scripts.commands(commands=["show ru int po2 | i int", "show ver | i supply serial"])
07:30
['interface Port-channel2\n', 'Power supply serial number : AZS122604V0\n']
07:31
в ответ получаешь лист из ответов
zi_rus #
07:31
уже что-то
07:32
_4ePTeHok, это произойдет сразу или чего-то дергать опять придется?
_4ePTeHok #
07:32
сразу, я вывод с нок-шелла привел
zi_rus #
07:32
вот этого я и добивался
_4ePTeHok #
07:32
А механизм мрт - это для того, чтобы положить задачу в нок на выполнение, и забыть. Потом когда вспомнил - дернуть результат
zi_rus #
07:32
одна строка
07:33
какие ответы есть при проблемах?
_4ePTeHok #
07:33
большей частью сделан для интерактивного вывода результата таска в вебморду
07:33
каких проблемах?
zi_rus #
07:34
таймаут или ошибка в комманде
_4ePTeHok #
07:34
это трансляция вывода с консоли. Чего железка ответит - то и будет
zi_rus #
07:34
ааа
_4ePTeHok #
07:34
таймаут там стандартный
zi_rus #
07:34
ну нормально
07:35
не, просто в она же может на стандартные ответы реагировать
_4ePTeHok #
07:35
спиздел
zi_rus #
07:35
коды ошибок
_4ePTeHok #
07:35
если синтакс ошибка - оно не отдаст результат
zi_rus #
07:35
в failed scripts например
07:35
не отдаст или вернет код ошибки
_4ePTeHok #
07:36
>>> p = o.scripts.commands(commands=["shows ru int po2 | i int", "show ver | i supply serial"])
07:36
>>> p
07:36
>>>
zi_rus #
07:37
ясно, значит пустой ответ надо по особому обрабатывать
_4ePTeHok #
07:39
вот в случае reduce_task там статусы есть, да
07:41
счастье есть?)
zi_rus #
07:42
пока не пробовал
07:42
осознаю
TSergey #
07:44
наверно с длинками еще есть трабл, неотключаемый клипэйджинг
_4ePTeHok #
07:45
хохо.
07:45
счастье есть в одресах)
dvolodin #
08:21
Вот за этот пейджер оторвать им нужно все, что есть
_4ePTeHok #
08:21
Дим, а морду когда?)
08:21
я про коммит
dvolodin #
08:23
про какой?
TSergey #
08:23
"zi_rus: а смысл вообще делать sh run если конфиг уже в ноке"
08:23
а как можно выдернуть сохраненный конфиг?
dvolodin #
08:24
object.config.read()
TSergey #
08:24
спасиб!
_4ePTeHok #
08:25
dvolodin, я про адреса
dvolodin #
08:26
_4ePTeHok: сначала структуру дополирую
08:26
у меня еще деревни в московской области не прогружаются нормально
_4ePTeHok #
08:26
=)
08:26
побойся бога
08:27
чо тогда будет в магадане где нибудь
dvolodin #
08:29
у меня там дивный франкенштейн выходит из фиас и окато
08:29
вот дома в деревнях прицепились к району, что есть ересь
08:29
:)
ovg #
08:35
dvolodin какой самый быстрый и эффективный способ запилить исправление к профилю sa? ;)
dvolodin #
08:35
взять и запилить
08:35
:)
ovg #
08:35
ну я запилил, теперь чо, не обновлять нок что ле =)
Unbeerable #
08:36
фиас будет в ноке?! опупеть :)
_4ePTeHok #
08:37
ovg, в иссью на сайт
dvolodin #
08:39
Unbeerable: нет, в NOC'е будет адресная база
08:39
точнее - уже есть
08:39
и для бедных -- заливка в нее из ФИАС
08:39
это если совсем ничего нет
08:41
раздолбаи они там в налоговой
08:41
база в самом паршивом состоянии
_4ePTeHok #
08:42
а ты сомневался?)
08:42
что они там, того.
08:42
етого.
08:42
на всю голову причем
Unbeerable #
08:46
dvolodin, уже есть где-то в недрах у тебя или уже можно использовать?
dvolodin #
08:47
коммит вчера был, сегодня налабал ворох фиксов
Unbeerable #
08:48
через где это будет настраиваться?
_4ePTeHok #
08:48
=)
admin_ #
08:48
import requests из NOC shell даёт ошибку, из системного питона всё нормально?
_4ePTeHok #
08:48
не торопись
admin_ #
08:50
pip install requests видит системный и говорит что всё ок
08:50
как в ./noc shell добавить системный модуль?
08:53
Победил, ./bin/pip install requests
_4ePTeHok #
08:55
виртуалэнв же
08:55
перед установкой надо инэйблить
08:56
./bin/activate
dvolodin #
09:18
а за выкладвание справочной информации в формате ворда в RAR-архиве, нужно сажать как либерастов
_4ePTeHok #
09:22
стрелять, чо уж.
09:22
когда там отменят уже мораторий)
e_zombie #
09:37
лолд дня. самое высокое начальство саратовского филиала не в курсе что ipv4 адреса больше не выделяются провайдерам уже больше года.
dvolodin #
09:38
e_zombie: я вообще удивлен, что они знают, что такое ipv4
09:38
закоммитил изменения в GIS
09:38
вроде теперь сносно разносит сельскую местность
_4ePTeHok #
09:39
dvolodin, как пользовать
dvolodin #
09:39
[fias]
09:39
enabled = True
09:40
include.0 = 77
09:40
include.1 = 50
09:40
# Строгино
09:40
include_okato.0 = 45283577000
09:40
# Щукино
09:40
include_okato.1 = 45283587000
09:40
# Истринский район
09:40
include_okato.2 = 46218000000
09:40
что-то вроде такого в конфиг
Unbeerable #
09:40
обновиться что ли
09:40
посмотреть на новые чудеса
_4ePTeHok #
09:40
а далее, где это можно выцеплять то?
dvolodin #
09:41
далее так делаешь
09:41
топаешь сюда
09:41
http://fias.nalog.ru/Public/DownloadPage.aspx
09:41
забираешь полную базу в формате DBF
_4ePTeHok #
09:41
:(
dvolodin #
09:41
fias_dbf.rar
09:42
распаковываешь ее в local/cache/fias
09:42
забираешь ОКАТО http://www.classbase.ru/public/files/okato.zip
09:42
распаковываешь туда же
09:43
и ./noc update-addr
09:43
ограничения по ОКАТО необязательно делать
09:44
достаточно только регионы
09:44
результат проверить можно так
09:44
./noc dump-addr --country=ru
Unbeerable #
09:45
xml не удобнее чем dbf?
dvolodin #
09:52
нет
09:52
жирнее в 2 раза и с парсером морока
09:52
еще понадобится ./bin/pip install dbf
zi_rus #
09:59
dvolodin, как все просто и понятно, как всегда в общем :)
dvolodin #
10:00
zi_rus: предложения?
zi_rus #
10:01
dvolodin, расскажи в статье что это и зачем
10:01
фиас, окато, херня какая-то
10:02
dvolodin, предлагаю например начать с описания проблемы, что же ты пытался решить, что ты сделал, как результатом пользоваться
admin_ #
10:05
dvolodin: есть все данные для создания PoP, room, rack и цепляние к нему MO. Помоги их в базу уложить, пробовал: http://pastebin.com/wurk1T88 отрабатывает но в ноке новый PoP не появляется.
dvolodin #
10:05
zi_rus: зачем мне описывать государственные классификаторы?
zi_rus #
10:06
dvolodin, я не про классификаторы, я про то что они делают в ноке
dvolodin #
10:06
они -- ничего
10:06
:)
10:06
совсем
zi_rus #
10:08
ты их засунул, никто не понял зачем. ЗАЧЕМ?
10:08
прописываешь что-то в конфиге. ЧТО? ЗАЧЕМ?
dvolodin #
10:08
не
10:08
я их не засунул
10:08
я сделал импорт из них в адресную базу
zi_rus #
10:08
что все это даст?
dvolodin #
10:09
наполнение адресной базы, если нет своей
zi_rus #
10:09
ммм
10:09
и руками ее обновлять
dvolodin #
10:10
все зависит от процесса ведения адресных данных
10:10
можно и руками
zi_rus #
10:11
ну хорошо. так что это дает. это дает наполнение адресной базы. а что с адресной базой? что она дает?
dvolodin #
10:11
клиентов и сервисы по адресам
10:11
привязку PoP к адресу
10:11
ПТВ
10:12
адреса в заявках
zi_rus #
10:12
так это и так можно было. зачем база, делаешь поле типа string и все
dvolodin #
10:12
ну и всякую аналитику по проникновению
zi_rus #
10:12
:)
dvolodin #
10:12
видел я таких ненормальных, да
zi_rus #
10:12
зато базу не надо вести и всегда актуально
dvolodin #
10:13
их в воспитательном порядке нужно заставлять парсить свое творчество
10:13
а потом рождаются хутор Сколково, местечко Крольчатник
zi_rus #
10:13
ну хорошо, значит сейчас я смогу для РоР прописать адрес, выбрав его из базы
dvolodin #
10:13
да и вообще дом Лес
10:14
при совсем правильном ведении базы получаешь геотеггинг
zi_rus #
10:14
а геотегинг где? чтобы прописал адрес а оно нарисовалось на карте
dvolodin #
10:14
и, скажем, ближайшие муфты по адресу
10:14
поиск по карте хотя бы
10:15
а вообще у нас еще куча данных лежит
10:15
вроде БТИшных
zi_rus #
10:17
скажите как снести все метки с карты? у меня были раскиданы объекты по карте, потом поломал инвентори и пришлось в монге все поубивать, теперь у меня объектов в инвентори нет, а на карте старые метки остались
admin_ #
10:18
Я геокодинг по yandex сделал http://pastebin.com/tYYB6mq3 в sa_managedobject поле postaddress с дресами вида г.Город, ул.Улица, д.Дом, п.N
TSergey #
10:18
я по гуглу
dvolodin #
10:19
zi_rus: gis_geodata
zi_rus #
10:19
ok
dvolodin #
10:21
admin_: ну да, примерно так
admin_ #
10:21
По гуглу не Ъ, Еще один Крым и нам его забанят
10:21
По яндексу без проблем: http://geocode-maps.yandex.ru/1.x/?geocode=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0,+%D0%A1%D1%82%D1%80%D0%BE%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9,+%D0%B4%D0%BE%D0%BC+25&format=json
dvolodin #
10:22
да не забанят
TSergey #
10:22
я хотел 2гис добавить, они пожадничали, не дали апи-ключ
dvolodin #
10:22
нужно, наверное, в gis впихнуть интерфейсы для геотегинга
_4ePTeHok #
10:23
2gis знает далеко не все
dvolodin #
10:23
полного покрытия ни у кого нет
_4ePTeHok #
10:23
у налоговой)
zi_rus #
10:23
osm круче всех
dvolodin #
10:23
ага, у налоговой особенно
zi_rus #
10:23
а если чего нет, можно дорисовать
_4ePTeHok #
10:23
в 2 гисе были только несколько крупных городов
admin_ #
10:24
Мне яндекс дал 100%
TSergey #
10:24
"8[17:24] _4ePTeHok: 2gis знает далеко не все"
10:24
я с мотрел чего не нашел гугль, у 2гиса есть
10:24
надо посмотреть яндекс
dvolodin #
10:24
TSergey: конкретно в твоем городе - да
TSergey #
10:24
ага
dvolodin #
10:24
у OSM другая беда
10:26
ее фик привяжешь к нормальным адресам
10:26
у меня есть привязанная Москва, но в системе координат МГГТ
admin_ #
10:31
OSM тоже очень хорошо моё село распознал: http://nominatim.openstreetmap.org/search?q=25+%D0%A1%D1%82%D1%80%D0%BE%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%B9,+%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0&format=json
10:31
У меня OSM дал более 90%, а yandex 100%
dvolodin #
10:38
OSM налабал я
admin_ #
10:51
dvolodin: напиши доку как PoP, room, rack в базу положить и привязать к rack mo Пробывал создать PoP http://pastebin.com/wurk1T88 но в ноке в inventory он не появляется.
zi_rus #
10:52
admin_, ты должен свою деревню или что там в root положить
10:53
там есть объект root
10:53
в нем должна быть твоя деревня, а в деревне уже твои узлы
10:54
ну или сразу узлы в рут клади
10:54
как тебе больше нравится
10:54
но самый верхний уровень должен сидеть в руте
dvolodin #
11:04
лучше положить деревню
11:04
а то узлы придется таскать из африки
_4ePTeHok #
11:07
из океана)
admin_ #
11:53
блин деревня должна быть root, а в ней уже узлы PoP
11:54
Или root - это root, а деревня должна быть PoP?
11:55
А если деревни две?
_4ePTeHok #
11:59
рут всегда есть
11:59
в нем уже все остальное
12:00
деревни, колодцы, лошади..
zi_rus #
12:11
admin_, рут это рут, это отдельный объект, ты в него должен положить. можешь создать объект из морды и посмотри куда он попадет
admin_ #
12:36
Создал root в нём деревни. теперь мне надо скриптом насоздавать PoP, room, rack и привязать к rack соотведствующий mo
12:37
Пробывал создать PoP http://pastebin.com/wurk1T88 но в ноке в inventory он не появляется!!!
12:37
Ща попробую яерез вебморду.
_4ePTeHok #
12:38
рут то зачем создавать..
12:38
он сам уже создан
zi_rus #
12:40
admin_, Root с большой буквы по дефолту cjplfy
12:40
*создан
_4ePTeHok #
12:46
а какие команды пишутся в command Log , который в sa-mo-edit
freeseacher #
12:48
_4ePTeHok, те которые проклассифицировались из FM
zi_rus #
12:50
freeseacher, а я думал это ноковские команды
12:50
туда попадают
12:50
не, ну это ни в какие ворота
12:50
если уж так, надо accounting нормальный настраивать
12:50
а такое вообще ниочем
12:51
в фм попадают полторы команды
_4ePTeHok #
12:51
ничо не понял
12:52
какие - конф ченджед?
zi_rus #
12:52
_4ePTeHok, а еще port shutdown
12:53
и reload и еще пара
12:53
по пальцам одной руки в общем
freeseacher #
12:54
у меня там видны все команды которые проклассифицировались в FM как command
12:54
теость все введенные
_4ePTeHok #
12:56
Security | Audit | Command ?
12:56
этот класс?
freeseacher #
12:56
да
_4ePTeHok #
12:57
яснопонятно
Dmitry1 #
13:18
zi_rus: hi
zi_rus #
13:18
опа
13:18
а ты тут откуда
Dmitry1 #
13:19
Не заработает NOC-1297
zi_rus #
13:19
я уже и не надеялся
_4ePTeHok #
13:19
оо
13:19
появился
13:19
мы уж плохое думать начали)
zi_rus #
13:20
Dmitry1, я знаю, у тебя мак мув только с одним портом
13:20
это длинная история
13:20
надо делать правильно
Dmitry1 #
13:20
Там номера портов выдаются как номера бриджа, соответсвенно RFC1493
zi_rus #
13:20
но тут говна уже столько навалилось
Dmitry1 #
13:20
Эти номера никак не коррелируются с именами интерфейсов и ifindex
zi_rus #
13:21
плохо
13:21
надо думать
Dmitry1 #
13:21
The value of dot1dBasePort for the bridge port from which
13:21
the cmnMACMoveAddress is moved to cmnMACMoveToPortId on
13:21
cmnMACMoveVlanNumber
13:21
dot1dBasePort is defined in RFC1493
13:22
Внутри самой циски есть таблица соответсвия dot1dBasePort и ifIndex
13:23
_4ePTeHok: Я болел :)
zi_rus #
13:23
ну раз есть таблица, можно достать
13:24
у вас вся страна болеет
Dmitry1 #
13:24
Суудя по RFC1493, эту таблицу можно достать только через SNMP
zi_rus #
13:26
ну раз тут оперируем rfc, есть смысл подумать над стандартным интерфейсом
Unbeerable #
13:26
а что в питоне означает u'something'?
13:26
когда в словаре идёт нечто и u перед ним
Dmitry1 #
13:28
utf-8
_4ePTeHok #
13:30
<zi_rus> у вас вся страна болеет - это и про соседей с другой стороны можно сказать
zi_rus #
13:34
_4ePTeHok, проблемы есть везде, но там скоро единственным методом будет эвтаназия, или ты думаешь что там все в шоколаде, а сми врут
_4ePTeHok #
13:38
все врут
13:39
но почему то ткнуть соседа в его говно - это краще, чем свое разгрести.
13:39
а тем паче свое подкинуть
zi_rus #
13:42
ты смешал все в кучу
13:42
говно тут
13:42
говно там
13:42
и про говно там сейчас говорит пол мира
_4ePTeHok #
13:43
в рф его нет
13:43
ни нацистов, ни гопников
zi_rus #
13:43
а говно здесь не так воняет
_4ePTeHok #
13:43
и с больницами хорошо
zi_rus #
13:43
ветром надуло с той стороны, вот поэтому говорим про них
_4ePTeHok #
13:44
ветер дует не сам по себе, а ветродуем по команде.
zi_rus #
13:45
тебя беспокоят гопники, а меня то что америка сует свои грязные руки уже слишком далеко
13:45
можно положить с прибором на ирак ливию и сирию
_4ePTeHok #
13:45
тебе сказали - омерека, вы и поверили.
zi_rus #
13:45
но не когда они хозяйничают за дверью
_4ePTeHok #
13:46
когда говорили про водолю - "да ну, врут все."
zi_rus #
13:46
вы наивный чукотский парень если думаете, что оно само вот так сложилось
_4ePTeHok #
13:46
володю
13:47
собрать картинку можно как угодно
13:47
когда в Ульяновск нато пустили - это не омерека у ворот
13:47
это заработок
13:47
ну-ну
zi_rus #
13:47
не слышал про ульяновск
13:47
и что там было?
_4ePTeHok #
13:48
там база перевалочная на базе аэродрома рф
zi_rus #
13:48
митинг? свержение законной власти?
_4ePTeHok #
13:48
НАТО
13:48
транзит с афгана
13:48
новости хоть загугли.
zi_rus #
13:48
раз нато значит нато ))
_4ePTeHok #
13:48
тогда никого не волновало безнравлтвенность НАТО, юрославия и ливия
zi_rus #
13:48
кстати по афгану РФ была не против
_4ePTeHok #
13:49
втянут в войну, а народ и рад
13:49
кулаками помахать
13:49
пендосам нос утереть
zi_rus #
13:49
причем тут война
13:50
крым взяли без единого выстрела
_4ePTeHok #
13:50
не, не, не принимай близко
13:50
все потом
zi_rus #
13:50
а для меня это близко
13:50
я каждый день и вечер и ночь слежу что происходит
_4ePTeHok #
13:50
заразился "ядерной пылью"?)
13:51
и прочей киселевщиной
zi_rus #
13:51
не смотрю ТВ, только интернет, примерно пять источников
_4ePTeHok #
13:52
интернет с недавних пор хуже тв
13:52
спасибо гб - освоили просторы
zi_rus #
13:52
поэтому не один источник а несколько
_4ePTeHok #
13:53
вк, яплакаль, жж, и гоблин-тупик
13:53
?
zi_rus #
13:53
это твой выбор?
_4ePTeHok #
13:53
нет, типичные примеры
zi_rus #
13:53
тогда понятно почему тебя больше гопота беспокоит
_4ePTeHok #
13:53
ничего из этого слава богу давно не читаю
zi_rus #
13:54
я вот тоже первый раз это увидел
_4ePTeHok #
13:54
ну поделись тогда)
zi_rus #
13:54
itar-tass, interfax, bbc, укр. правда и самое трешовое censor.net
_4ePTeHok #
13:55
=)
13:55
bbc которое?
13:55
рф?
zi_rus #
13:55
нет
13:55
bbc.com
_4ePTeHok #
13:55
на оригинале читаешь?
zi_rus #
13:55
ну так, иногда через гугл-перевод
_4ePTeHok #
13:56
итартасс же теперь тасс просто
13:56
что тоже символично
zi_rus #
13:57
слышал только желание, не слышал чтобы они реально переименовались
13:57
и на сайте все по-старому
_4ePTeHok #
14:46
Представитель потребителя Мария Иесус Гарсия Лекумберри, Генеральный директор
14:47
однако.
dvolodin #
15:48
у кого-нибудь есть под рукой нормальный CDN?
16:02
я бы положил уже готовые файлы для адресной базы
alamar #
17:14
hi, the upgrade script ./scripts/upgrade hangs when I try to migrate to develop branch. this is the output. it hangs while trying to migrate the database. http://paste.debian.net/92228/ any ideas what I can do/where I can look what's the problem? I also appended ps auxw output.
Kostua #
17:36
alamar: Hi! Try interrupt upgrade script and, if it possibly, restart postgres or reboot server, end then start upgrade again.
17:38
and
alamar #
19:05
nice. it indeed did the trick :) thank you very much - I was reluctant to simply abort/reboot & try again as I feated it would make things only worse ;)
ufir #
19:12
alamar ./noc migrate ?
alamar #
20:49
nice vlan import finally works :)
21:01
where in the develop branch webinterface can I configure the intervall where the configuration gets pulled? I added my router as managed object with default service activator but I can't find a setting in what intervall the config should get pulled
Tweet
Share this page
Share this page: Tweet