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.03.2013
dvolodin #
03:44
zi_rus: заработал {{ vrf.name }} ?
zi_rus #
05:42
dvolodin, заработал подтверждаю, можно коммитить
05:43
mikevlz|3, не обдишься если еще спрошу про нок и джангу?
05:45
я вот почитал доку
05:45
мне нужно префикс свободный, который вчера так долго искали
05:46
сохранить в ипам
05:46
и я делаю
05:46
Prefix.objects.create(prefix=free[0], afi=4, vrf=12)
05:46
но оно пишет мне болт
05:47
на vrf что-то жалуется
dvolodin #
05:47
ну да
05:47
vrf укажи
05:48
и вообще так делается
05:48
Prefix(prefix=…, ….).save()
zi_rus #
05:48
опа
05:48
то есть так и новый создастся?
dvolodin #
05:48
zi_rus: что еще в контекст для fqdn_template можно пихнуть?
05:48
да
zi_rus #
05:48
отлично
dvolodin #
05:48
Prefix(…) -- создаст объект
05:48
а .save() -- сохранит его в базу
05:49
ну или p = Prefix(…..)
05:49
p.vrf = .....
05:49
p.save()
05:49
как удобнее
zi_rus #
05:49
ок, понял как правильней
dvolodin #
05:49
zi_rus: а про noc и django спрашивай, при возможности отвечу
05:50
меня нынче дергают очень насто
05:50
часто
zi_rus #
05:50
dvolodin, а если я хочу ip туда сохранить то я так же делаю IP(...).save ?
05:50
IP(ip=1.1.1.1, fqdn="a.ru").save
05:50
?
dvolodin #
05:51
.save()
05:51
да
05:51
смотри
05:51
берешь описание модели
05:51
все поля -- это обычные аттрибуты
05:51
их можно либо присваиванием, либо в конструкторе именнованым параметром
zi_rus #
05:53
dvolodin, про fqdn_template не знаю даже что еще нужно, я хотел vrf чтобы в основную зону не пролезли серые ip из разных врф, должна быть только глобальная, поэтому мне нужен был этот параметр, а вот что еще может пригодиться я не знаю, скажем так, мне хватает текуще
05:53
го
05:53
dvolodin, да, это за последние пару дней я уже начал понимать, у меня уже 2 окна открыто, noc shell и models
05:54
сижу смотрю что можно использовать и проверяю
05:56
dvolodin, а что не так, вот смотри, опять вчерашняя ошибка лезет
05:56
>>> Prefix(prefix=free[0], afi=4, vrf=12).save()
05:56
Traceback (most recent call last):
05:56
...
05:56
ValueError: Cannot assign "12": "Prefix.vrf" must be a "VRF" instance.
05:56
>>> Prefix(prefix=free[0], afi=4, vrf="global").save()
dvolodin #
05:56
vrf -- должен быть instance VRF
zi_rus #
05:56
ValueError: Cannot assign "'global'": "Prefix.vrf" must be a "VRF" instance.
dvolodin #
05:56
VRF.objects.get(id=12)
zi_rus #
05:58
сделал
05:58
from noc.ip.models import *
05:58
>>> VRF.objects.get(id=12)
05:58
<VRF: global>
dvolodin #
05:59
вот это и пихай как параметр vrf
05:59
…., vrf=VRF.objects.get(id=12), …..
zi_rus #
05:59
пробовал
05:59
>>> Prefix(prefix=free[0], afi=4, vrf="global").save()
05:59
ValueError: Cannot assign "'global'": "Prefix.vrf" must be a "VRF" instance.
dvolodin #
06:00
vrf=VRF.get_global()
06:00
или VRF.objects.get(name="global")
zi_rus #
06:00
dvolodin, да так сработало
06:00
только заткнулось на другом
06:00
Prefix(prefix=free[0], afi=4, vrf=VRF.objects.get(id=12)).save()
06:00
ValidationError: [u'Invalid IPv6 prefix']
dvolodin #
06:01
собственно, rd 0:0 для того и нужна, чтобы можно было глобальную таблицу перебить
zi_rus #
06:01
чего это ее несет в ipv6
06:01
я же указал afi=4
dvolodin #
06:01
afi="4"
06:01
строка, а не число
zi_rus #
06:01
yt gjvjuftn
06:01
не помогает
06:02
Prefix(prefix=free[0], afi="4", vrf=VRF.objects.get(id=12)).save()
06:02
ValidationError: [u'Invalid IPv6 prefix']
dvolodin #
06:03
бррр
06:03
а что тебе free[0] вернул
06:03
afi вообще-то автоматом определится при сохранении
zi_rus #
06:03
>>> print free[0]
06:03
195.98.50.4/30
dvolodin #
06:04
порнуха какая-то
zi_rus #
06:06
вчера весь вечер себе мозг выносил
06:06
если это на что-то влияет
06:06
то я делаю такие импорты
06:06
from noc.inv.models import *
06:06
from noc.sa.models import *
06:06
from noc.ip.models import *
06:06
from noc.lib.ip import IP
dvolodin #
06:07
у меня сохранило
zi_rus #
06:07
>>> print free
06:07
[<IPv4 195.98.50.4/30>,
dvolodin #
06:07
In [1]: from noc.ip.models import *
06:07
In [2]: Prefix(prefix="195.98.50.4/30", afi=4, vrf=VRF.get_global(), description="zi test").save()
zi_rus #
06:08
dvolodin, это может как-то влиять
06:08
может надо делать str(free[0])
06:09
да str(free[0]) помог
dvolodin #
06:09
а
06:09
ну да, оно возвращает IP
zi_rus #
06:10
IP(ip="192.168.255.123", fqdn="test.test", vrf=VRF.objects.get(id=12)).save()
06:10
TypeError: __init__() got an unexpected keyword argument 'ip'
06:10
я чего-то недоимпортил?
dvolodin #
06:11
address=
06:11
а не ip=
zi_rus #
06:11
IP(address="192.168.255.123", fqdn="test.test", vrf=VRF.objects.get(id=12)).save()
06:11
TypeError: __init__() got an unexpected keyword argument 'address'
06:12
это я уже тоже попробовал
dvolodin #
06:12
стоп
06:12
не путай
06:12
есть Address
06:13
это в базе
06:13
а IP -- это просто питоновский класс для адресной арифметики
zi_rus #
06:13
Address(address="192.168.255.123", fqdn="test.test", vrf=VRF.objects.get(id=12)).save() - так надо?
06:14
да так работает
06:14
все понял
06:14
сейчас еще научусь в инвентори дескрипшен интерфейсу приписывать и будет у меня супер сниппет
06:18
dvolodin, вот знаешь чего не хватает, возможность необязательных переменных в сниппете, то есть, я их в питоне обрабатываю, если пользователь задал значение, то сделать одно, если не задал, то проигнорить
06:18
а сейчас, он требует чтобы пользователь заполнил все
06:19
я конечно могу сделать workaround для себя, но просто выглядит это не очень красиво
06:20
и не совсем удобно
06:20
одно дело не заполнять поле
06:20
а другое, просто его пропустить
06:21
то есть писать в него чушь
dvolodin #
06:30
это можно сделать, да
06:30
main/templatetags/python.py
06:31
где-то там надо сделать optional и обработку соответсвующую
06:31
надо вообще запуск сниппетов перевести на ExtJS
zi_rus #
06:36
dvolodin, когда будешь на Ext переносить не забудь предусмотреть такую вещь, очень частоприходитсяделать одно и тоже с одним набором железок но с разными параметрами, например прописать влан, сначала одну комбинацию id/name задешь, выбираешь десяток железо
06:36
к, потом, надо там же второй влан прописать, жмешь назад, и выбранные железки сохраняются, только новые параметры задаешь
06:38
иначе просто затрахаешься каждый раз 10 железок из сотен выбирать
mikevlz|3 #
06:40
ненене
06:40
это избыточно
06:40
надо приложение, которое предложит путь для прописки влана
06:41
выберешь путь(с интерфейсами, мало ли какие кольца в физике есть), и пусть пишет вланы само
bash777 #
06:41
zi_rus нажо делиться %)
zi_rus #
06:43
bash777, чем?
bash777 #
06:43
снипетами
zi_rus #
06:44
я еще не знакончил
bash777 #
06:44
ну как сделаешь :)
06:44
еще бы кт ос тушенкой помог
zi_rus #
06:45
у меня почему-то не всегда сохранются изменения
06:46
жму save, оно закрывается, открывается основная таблица но пустая, изменяю размер окна, она перечитывает эту таблицу, но открываю сниппет, а изменения не сохранились
mikevlz|3 #
06:47
консоль браузера открой, может оно в 500-ю ошибку сервера на сохранении выпадает
06:47
F12 в ФФ и Хроме
dvolodin #
06:48
bash777: что с тушенкой?
zi_rus #
06:49
mikevlz|3, через раз?
06:49
mikevlz|3, нет, вот сейчас так произошло
06:49
POST 200
06:49
GET 200
06:50
больше и нет сообщений
mikevlz|3 #
06:50
тогда очень клева
06:51
кстати, обновление pymongo походу мне сильно помогло. Очередь новых сообщений классификатор разгреб и держит в районе нуля
06:53
а EventSummary на 600к ивентов строить отказывается...
06:53
индекса нехватает?
dvolodin #
06:56
возможно
06:56
то есть invalid bson size напрямую связан со старым pymongo?
mikevlz|3 #
06:56
и пинговалка пачками высыпает фейлы для доступного железа :(
06:58
видимо да, видимо связан. Я обновил саму монго до 2.2.3, все сообщения про эту ошибку были в основном для кластеров. Глянул порты - новая pymongo. Обновил, перезапустил все, классификатор разгреб очередь и справляется пока
dvolodin #
06:58
а была какая?
mikevlz|3 #
06:59
монга -2.2, pymongo - не скажу, сейчас 2.4.2
dvolodin #
07:00
ok
07:01
то есть Invalid BSON size будем предлагать лечить апгрейдом pymongo
07:01
тоже вариант
07:01
потому как у меня такая проблема не вылезала
mikevlz|3 #
07:01
если есть кластер - то тут уже возможны варианты с битыми файлами rs
07:02
у меня кластера нет. Надо будет логи глянуть, но по поведению - вроде проблема ушла
bash777 #
07:09
dvolodin: не рабоает ни интефесы ни дискавери никакеие для cisco c1900 ios 15.1
Dmitry1 #
07:17
bash777: Для профиля Cisco.1900 нет скриптов get_interfaces и т.п.
zi_rus #
07:20
mikevlz|3, главный сбежал, не пртив если тебя дерну?
07:20
самая последняя проблема осталась
bash777 #
07:20
Cisco.1900 это вроде старый каталист ?
zi_rus #
07:20
не найду как интерфейсу назначить профиль
Dmitry1 #
07:21
Вроде да. А межет и роутер.
zi_rus #
07:21
делаю
07:21
iface.description=context["Client"]
bash777 #
07:21
не не рутер
zi_rus #
07:21
iface.profile="UNI"
07:21
iface.save()
mikevlz|3 #
07:21
отвечу чутка позже
07:22
смотри модель. Если там ForeignField или как-то так, то для монго надо туда id, для постгреса - объект. Строку нельзя
zi_rus #
07:22
говорит типа не знаю такого, видимо просит идентификатор опять
07:22
>>> InterfaceProfile.objects.filter()
07:22
[<InterfaceProfile: NNI>, <InterfaceProfile: default>, <InterfaceProfile: UNI>, <InterfaceProfile: External (Imp.)>]
07:22
>>> for a in i:
07:22
... print a.id
07:23
5007f62bf3b682763c000001
07:23
5007f58ff3b6827566000000
07:23
5073c24af3b6824c98000000
07:23
508926f9f3b68283e8000003
07:23
но
07:23
>>> i =Interface.objects.filter(profile=5073c24af3b6824c98000000)
07:23
File "<console>", line 1
07:23
i =Interface.objects.filter(profile=5073c24af3b6824c98000000)
07:23
^
07:23
SyntaxError: invalid syntax
07:23
по этому id не хочет выбирать интерфейсы
07:23
значит это какой-то не тот
07:23
а где тогда нужный
mikevlz|3 #
07:23
попробуй не id, а объект сам передать
zi_rus #
07:25
нет, не помогает
07:25
>>> print i
07:25
[<InterfaceProfile: NNI>, <InterfaceProfile: default>, <InterfaceProfile: UNI>, <InterfaceProfile: External (Imp.)>]
07:26
>>> iface = Interface.objects.filter(profile=i[0])
07:26
>>> print iface
07:26
InvalidDocument: Cannot encode object: <InterfaceProfile: NNI>
mikevlz|3 #
07:26
profile=i[0].id
07:26
ммм?
zi_rus #
07:26
да
07:26
так есть
07:26
хм
07:26
как это в сниппет залепить
07:28
придумал
07:28
iface.profile=InterfaceProfile.objects.filter(name="UNI").id
07:34
только после всех экспериментов у меня на железке получилось 4 Gi 0/1 интерфейса
dvolodin #
07:41
а оно ничего и не умеет :)
07:41
хотя cdp там должен работать
zi_rus #
08:46
bash777, как просил http://kb.nocproject.org/pages/viewpage.action?pageId=7766316
dvolodin #
09:08
zi_rus: закоммитил метод Prefix.iter_free
09:08
со всей афромагией
mikevlz|3 #
09:22
бгг
Dmitry1 #
09:25
Юмор с канала #freebsd
09:25
(11:18:46) levsha: "Дорогая, что бы ты хотела получить к 8 марта - смс или ммс?"
09:25
(11:19:31) glebius: MFC
zi_rus #
09:32
dvolodin, ок использую при случае, у меня на горизонте маячит переписывание этого скрипта под новую схему сети когда терминация на РЕ-роутере а не на каталисте, вот и испробую
mikevlz|3 #
09:34
Dmitry1: а чо емыло не предложили? %)
Dmitry1 #
09:34
В смысле емыло?
mikevlz|3 #
09:35
ну тока смс или ммс
Dmitry1 #
09:35
Я откуда знаю? Это цитаты с канала.
mikevlz|3 #
09:35
хоть бы цветочек из бумаги и витухи
09:35
=)
ufir #
09:35
задроты ;)
Dmitry1 #
09:36
Отож. Подарок на 8-к марта - куча MFC
zi_rus #
09:42
dvolodin, покритикуй http://kb.nocproject.org/pages/viewpage.action?pageId=7766316 может есть какие-то варианты для моего скрипта или для инструментария самого нока
bash777 #
10:37
zi_rus ой как много букв, ик, почитаю на досуге, спс %)
zi_rus #
11:34
dvolodin, видел bgplay?
freeseacher #
11:52
zi_rus, bgplay еще жив ?
Dmitry1 #
11:52
что это за зверь?
freeseacher #
11:53
помню было объявление о том что сервис закрывается.. ибо не справляетсо
GenKuzya #
12:37
здравствуйте, не подскажете что нужно перезапустить после редактирования noc.conf чтобы изменения вошли в силу, хотел логотип поменять если это ни назаконно
12:45
menya chtoto vykinula
12:45
здравствуйте, не подскажете что нужно перезапустить после редактирования noc.conf чтобы изменения вошли в силу, хотел логотип поменять если это ни назаконно
dvolodin #
13:00
zi_rus: видел, и что?
Tweet
Share this page
Share this page: Tweet