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.08.2012
freeseacher #
03:54
dvolodin, :)
03:54
доки бы про ipam rest
dvolodin #
03:55
возбудился?
freeseacher #
03:55
да вааще.
03:55
ночь не спал
dvolodin #
03:56
такой же REST как и везде :)
03:56
GET /ip/prefix/
03:56
GET /ip/address/
03:56
ну и POST + PUT + DELETE
freeseacher #
03:57
права учитываются ?
dvolodin #
03:58
пока нет, это скорее для внешних систем
04:00
делаю наброски
freeseacher #
04:00
http --json GET http://admin:admin@stage.noc/ip/prefix/ -> 403
dvolodin #
04:01
-a <user>:<pass>
04:01
там можно и выражения делать
04:01
вроде ?afi=4&parent=<id>&vrf=<id>
freeseacher #
04:03
а как конкретный префикс дернуть ?
04:04
http://stage.noc/ip/prefix/?afi=4&vrf=1&prefix=192.168.2.0/24
04:05
yj jyj yt jnlftn dct xnj dyenhb
04:05
но оно не отдает все что внутри
04:05
только сам префикс
dvolodin #
04:05
ага
freeseacher #
04:05
а как все вложенное получить ?
dvolodin #
04:05
а теперь посмотри его id и так: ?afi=4&parent=<id>
freeseacher #
04:06
ага пашет.
04:07
дим сложно.
04:07
не интуитивно нихера
dvolodin #
04:07
да куда уж интуитивнее
freeseacher #
04:08
:)
dvolodin #
04:08
все возможности запросов django orm есть
freeseacher #
04:08
/ip/prefix/1/4/192.168.2.0/24
dvolodin #
04:08
типа такого можно: ?description__contains=IX
freeseacher #
04:08
о!
dvolodin #
04:08
это так будет: /ip/prefix/?vrf=1&afi=4&prefix=192.168.2.0/24
04:09
или /ip/prefix/<id>/
freeseacher #
04:10
не по id тока сам префикс
04:11
а для tags не бывает __ contains ?
dvolodin #
04:11
нет. Но можно tags=....
freeseacher #
04:13
при передаче неверного поля получаю 500 ую
04:13
&tag=nsk
04:14
ага.
dvolodin #
04:14
а что в потрохах?
freeseacher #
04:14
дамп нужен ли ивоспроизведешь ?
dvolodin #
04:14
нужен
freeseacher #
04:15
http://pastie.org/private/szzbn0t5vjxttf6xewsg6g
04:17
и по тегу не ищет. хотя его показывает
dvolodin #
04:17
ok
04:17
может дойдут руки выпилить django-tagging
freeseacher #
04:17
http://stage.noc/ip/prefix/?afi=4&vrf=1&tags=nsk
04:17
нет нет.
04:17
без тегов -> смерть
04:18
быстрая почти немедленная
04:19
ибо вопросы к ноку покажи мне биллинговые сервера в орене будут невозможны
04:19
или все ресурсы нока которые связаны с услугой "пупкин"
dvolodin #
04:22
надо теги попрямее сделать
04:22
в принципе, в посгресе есть нормальные массивы
freeseacher #
04:22
это да.
dvolodin #
04:22
вот на них и сделать
freeseacher #
04:22
а мысль выбросит ьих совсем..... скучна, грустна, и тебе уже не так нравится как 10 минут назад :)
dvolodin #
04:23
django-tagging - порнуха
freeseacher #
04:23
:)
dvolodin #
04:23
делают строковое поле с запятыми
freeseacher #
04:23
там много нареканий
04:23
это да
dvolodin #
04:23
и еще 2 вспомогательные таблицы
04:24
боляя прямой способо
04:24
делать массив tags
04:24
индексировать его
freeseacher #
04:25
я думаю они просто кросплатформенно старались сделать.
dvolodin #
04:25
и либо искать по индексу по всех моделях, где он есть, либо хранить в отдельной таблице теги с указаниями моделей, где они встречаются
04:26
generic foreign key они пытались использовать
04:27
BTW, обновил jira и confluence
freeseacher #
04:28
а конфлюенс то зачем.
04:28
там минорные фиксы
04:29
ну да бог с ним.
04:32
блин надо чего то придумывать с тегами
04:32
без них грустна
04:33
может все таки /ip/prefix/<id>/ должен быть vrf-ом ?
04:34
а то в интерфейсе так, а тут так
dvolodin #
04:36
noc=# SELECT tags, a_tags FROM sa_managedobject WHERE a_tags @> '{DEMO}';
04:36
tags | a_tags
04:36
-------+-----------
04:36
DEMO | {DEMO}
04:36
DEMO, | {DEMO,""}
04:36
DEMO, | {DEMO,""}
04:36
(3 rows)
04:36
noc=# EXPLAIN SELECT tags, a_tags FROM sa_managedobject WHERE a_tags @> '{DEMO}';
04:36
QUERY PLAN
04:36
------------------------------------------------------------------------------------
04:36
Bitmap Heap Scan on sa_managedobject (cost=8.00..12.01 rows=1 width=33)
04:36
Recheck Cond: (a_tags @> '{DEMO}'::character varying[])
04:36
-> Bitmap Index Scan on sa_managedobject_tags (cost=0.00..8.00 rows=1 width=0)
04:36
Index Cond: (a_tags @> '{DEMO}'::character varying[])
04:36
(4 rows)
04:36
noc=# SELECT tags, a_tags FROM sa_managedobject WHERE a_tags @> '{DEMO}';
04:36
tags | a_tags
04:36
-------+-----------
04:36
DEMO | {DEMO}
04:36
DEMO, | {DEMO,""}
04:36
DEMO, | {DEMO,""}
04:36
(3 rows)
04:36
да, индексирует
freeseacher #
04:37
http --json -a admin:admin POST "http://stage.noc/ip/prefix/?vrf=1" asn__label=22222
04:37
правильно соображаю что бы корню поменять автономку ?
dvolodin #
04:37
PUT
04:37
и asn=<id>
freeseacher #
04:37
нее.
04:38
я не знаю эти id
04:38
я хочу что бы он отрезолвил
dvolodin #
04:38
asn__ans = 22222
04:38
не уверен, конечно
04:38
но можно попробовать
04:38
asn__asn
freeseacher #
04:40
нее
04:40
200 говорит
dvolodin #
04:41
PUT /ip/prefix/<id>/
freeseacher #
04:43
неа. тока по id
04:45
по остальным так же
dvolodin #
04:45
можно будет подумать и доработать, там несложно
04:46
в принципе можно вернуться к вопросу временного резервирования адресов и префиксов
freeseacher #
04:46
доку сел писать.
dvolodin #
04:46
ResourceState у нас уже есть
04:46
можно сделать сервис, который будет резервировать ресурс и выдавать его
04:47
а потом уже, для подтверждения резервации, можно будет state менять
freeseacher #
04:49
нее. давай косяков добъем.
04:49
я раз 5-6 уже 500ый поймал
04:49
хотя до адресов еще не дошел
dvolodin #
04:50
ты внутрь views.py посмотрел?
freeseacher #
04:51
:))
04:51
солидная такая View
dvolodin #
04:51
афромагия полная ;)
freeseacher #
04:52
я бы даже сказал неестественно здоровая.
04:52
и если я праивльно опнимаю именно в нее прилетит весь остальной код по резолву, обработкам ошибок и прочим моментам
04:53
тока надо знат ьволшебные методы
dvolodin #
04:54
именно
04:54
там есть чудо-класс, который по модели делает полный REST
04:55
если его доработать, то эти методы везде будут нормально работать
freeseacher #
04:58
дима, давай его таки допилим.
dvolodin #
04:59
давай
freeseacher #
04:59
я тут от возбуждения уже не знаю куда даваться
dvolodin #
04:59
поеду на работу ;)
04:59
кстати, в рамках хороших идей
freeseacher #
04:59
ага
dvolodin #
04:59
давайте журнал ежемесячный выпускать :)
freeseacher #
04:59
обзор коммитов ?
04:59
:)
dvolodin #
05:00
с обзорами новых фишек NOC, полезными советами,
05:00
обзорами различного железа, которое в руки попадало
05:00
и так далее
freeseacher #
05:00
хм. дим, апи меняться не будет ?
05:01
так оставляем и наполянем фишками ?
05:01
или таки будет /вфа/вафв/фв/
dvolodin #
05:01
не будет меняться
freeseacher #
05:01
ок. пишу по этому варианту.
MindGames_ #
05:12
привет! ребят, а что вы тут такое возбуждающее обсуждали то? :)
05:12
поделитесь, я тоже хочу свою порцию возбуждения с утра ;)))
freeseacher #
05:14
MindGames_, json интерфейс к IPAM
05:14
теперь ипам перестанет быть мертвым грузом
05:19
MindGames_, не невозбуждает ?
MindGames_ #
05:20
ну, я пока еще не осознал степень своего возбуждения
05:20
мне для начала надо представить формы этого джейсона... ;)
freeseacher #
05:20
работа с ipam из скриптов.
MindGames_ #
05:20
а сейчас IPAM как работает? вроде тоже скрипты там есть. адреса же дискаверят.
freeseacher #
05:21
http://pastie.org/4404066
05:21
из внешних скриптов
05:21
например из биллинга
05:21
или системы управления
05:21
или скрипта прошивки коммутаторов
05:22
тоесть нок из хранилки адресов превратился в базу данных доступную для других.
MindGames_ #
05:25
мм.. теперь понять бы, как эту базу использовать ;))
freeseacher #
05:28
я щас доку пишу
MindGames #
05:28
о! хорошее дело )
zi_nnov #
05:29
freeseacher, начни с того что это такое http
MindGames #
05:29
:)))
zi_nnov #
05:29
я не понял в каком пакете идет эта утилита
MindGames #
05:29
Hyper Text Transfer Protocol это я знаю ;)
freeseacher #
05:30
https://github.com/jkbr/httpie/
05:30
оно как Curl
05:30
или wget
05:30
но красиво форматирует json
05:30
и http
zi_nnov #
05:31
в портах нету ее
05:31
жаль
freeseacher #
05:31
easy_install httpie
05:31
или pip
05:32
допишу, выложу
lexus-omsk #
05:54
о, а в предыдущих интерфейсах, которые до ipam уже работали - там тоже можно фишки вроде _contains использовать?
mikevlz #
06:06
Люди, скажите такую весч... А как активатору объяснить, что он знает этот МО, при том что дискаверя нашел префиксы и адреса, увязал их с МО и все такое...?
zi_nnov #
06:20
dvolodin, Add first free vlan поломан
06:20
http://pastebin.com/x9VB5CrQ
freeseacher #
06:21
zi_nnov, его нет на канале :)
zi_nnov #
06:22
черт
06:22
придется issue делать
freeseacher #
06:22
всегда лучше сделать issue :)
zi_nnov #
06:24
так быстрей, и трекер мусором не будет забиваться, тем более если там правки на две запятых
06:25
dvolodin, NOC-624
dvolodin #
06:30
zi_nnov: fixed
zi_nnov #
06:31
спасибо
freeseacher #
06:31
dvolodin, йопта. 500-ых...
06:31
[качаю головой]
06:32
POST не делаеет корректный save. parent не ищется
06:33
это critical
06:36
ни как не могу понять как записывать теги
06:37
http://pastie.org/4404277
06:37
так вот пробовал
06:38
дупы обрабатываются :)
06:38
атрибут id игнорируется если передавать
dvolodin #
06:39
сейчас проверю post
freeseacher #
06:40
POST дабы CREATE а PUT для UPDATE так везде ?
dvolodin #
06:40
да
freeseacher #
06:40
ок
06:45
NOC-625 выложил патчик peer.as ибо нужен
06:45
не понял нужна модель или нет
06:47
и теги да. непонятно как писать
dvolodin #
07:10
я делаю общий lookup
07:27
freeseacher: models.js для lookup'а не нужна
07:27
только lookup и lookup_field
mikevlz #
07:28
а можно как-то заставить дискавери передискаверить интерфейсы на какой-то железяке?
dvolodin #
07:28
peer.peer вполне можно целиком на extjs портировать
07:28
mikevlz: да
07:28
в managed objects
MindGames #
07:28
в шедулах вроде можно запустить принудительно
dvolodin #
07:28
есть admin action -- run interface discovery now
MindGames #
07:28
разве там? :) я в шедулес делал
mikevlz #
07:28
ок, понял, спасиба
dvolodin #
07:31
кто храбр духом и перепишет peer.peer ?
07:31
./noc newapp peer.peer --model=Peer
07:31
и поля прописать там
MindGames #
07:36
ни чего не сломается при этом? :)
dvolodin #
07:37
надо будет дописать JS в этой рыбе
07:37
по аналогии
MindGames #
07:39
noc@nmg ~ $ ./noc newapp peer.peer --model=Peer
07:39
Creating skeleton for peer.peer
07:39
Traceback (most recent call last):
07:39
File "manage.py", line 41, in <module>
07:39
execute_manager(settings)
07:39
File "/opt/noc/contrib/lib/django/core/management/__init__.py", line 438, in execute_manager
07:39
utility.execute()
07:39
File "/opt/noc/contrib/lib/django/core/management/__init__.py", line 379, in execute
07:40
self.fetch_command(subcommand).run_from_argv(self.argv)
07:40
File "/opt/noc/contrib/lib/django/core/management/base.py", line 191, in run_from_argv
07:40
self.execute(*args, **options.__dict__)
07:40
File "/opt/noc/contrib/lib/django/core/management/base.py", line 220, in execute
07:40
output = self.handle(*args, **options)
07:40
File "/opt/noc/main/management/commands/newapp.py", line 206, in handle
07:40
"type": self.model_map[fc][0],
07:40
KeyError: 'INETField'
07:40
как то так
07:40
видимо, потому, что я не обновлялся месяца два как.. ;)
zi_nnov #
07:54
даже не знаю, советовать ли тебе обновиться. с одной стороны, исправили несколько багов, а с другой - эти же баги сами и создали
MindGames #
07:56
да, я пока лучше подожду с обновой ;)
dvolodin #
07:59
да, распил моделей был весьма болезненным
08:14
freeseacher: закоммитил foreign key dereference в POST/PUT
08:14
http --json -a noc:noc POST 'http://127.0.0.1:8000/ip/prefix/' prefix=192.168.99.4/30 asn__as_name=TEST
08:22
кстати, quick edit в jira 5.1 очень неплох
zi_nnov #
08:51
а как можно попробовать GET ? что-то у меня не получается
jevotnae #
10:20
приветствую всех. у меня вопрос к активно использующим Fault management модуль: после смены IP на железке появился alarm с комментарием All SA tasks to this object is temporary suspended
10:21
вроде и аларм убран, и устройство зелененьким в SA показано, а при запуске скриптов результата нет, ибо Host is Down. Как бы это полечить? по IP устройство естественно доступно.
dvolodin #
10:33
оно пингуется?
jevotnae #
10:35
да, я сам managed object перенастроил. такое ощущение, что закешировано где-то, что Host is Down
10:39
debug-script Cisco.IOS.get_config вот ровно сейчас мне вернул нормальный вывод.может я alarm не до конца отработал? в списке активных его нет...
Dmitry1 #
11:00
Дайте мне посмотреть в глаза тому китайцу, который сочинял MIB'ы для D-Link
_4ePTeHok #
11:00
они узкие, с прищуром_
Dmitry1 #
11:01
Как только новую железку заставляю писать лиги или отсылать трапы, так тут же они не вписываются ни в одно правило :(
Tweet
Share this page
Share this page: Tweet