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: 20.04.2011
lexus-omsk #
03:56
всем привет!
03:56
2dvolodin
03:56
насчёт get_chassis_id для cat2950 - я посмотрел, отличия только в версии ios, в скрипте рассчитано на SE, а у нас EA, дописал regexp до вида "SE|EA" и всё заработало. По имеющимся консервам проверил - даже не сломал ничего.
04:03
могу оформить через задачи, если имеет смысл
04:14
как-то так: http://pastie.org/1814185
dvolodin #
04:35
Закоммитил в r3503
04:36
Ну кто первый достанет реальный анкиквариат вроде 2948 или 3548XL ?
04:36
http://ru.linkedin.com/pub/dmitry-volodin/32/553/698
04:37
заполняем потихоньку
gnu_linux #
04:39
У меня есть антиквар ZyXEL ES-4024 EE & ZyXEL ES-2024 EE Оратите внимание на хардваре EE а не А1. Оно ни с ноком не работает ни прошивки для него новой нет...
dvolodin #
04:40
:)
04:45
Начал портировать на Django 1.3
04:45
В целом нормально взлетело, остальсь AJAX починить
gnu_linux #
04:51
Алгоритм построения маршрута в графе звёздной топологии ктото знает? Я пишу тупым перебором связей...
dvolodin #
04:56
эээээ
04:56
дейкстра
04:56
:)
04:56
классика же
04:57
на питоне делается очень удобно, ноды, которые ты проверил помещаешь в отдельный set
04:58
и делаешь рекурсивной функцией, например
04:59
тип графа вообще не имеет значения
04:59
для ускорения постарайся свести все к операциям над множествами
gnu_linux #
05:09
оно в библиотеке boost есть (http://www.boost.org/) может к ниму привязатся, или поищу готовое на питоне :)
dvolodin #
05:10
да не, на питоне оно совсем тривиально делается
gnu_linux #
05:26
А зачем Дейкстры? Зачем вес на линках? Зачем кольца? Возиму тупой перебор: http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B8%D1%81%D0%BA_%D0%B2_%D1%88%D0%B8%D1%80%D0%B8%D0%BD%D1%83
dvolodin #
06:00
да все гораздо проще делается
06:00
http://www.linkedin.com/company/nocproject-org
06:00
вот, присоединяйтесь
Dmitry1 #
06:54
И как присоединиться?
dvolodin #
06:55
Можно указать в качестве места работы ;)
06:56
nocproject.org
Dmitry1 #
06:58
В "companies" стоит. А как в качестве работы указать?
dvolodin #
07:18
в профиле в Experience
Dmitry1 #
07:29
О. Разобрался
dvolodin #
07:39
Перевел все на Django 1.3
07:39
смотрите внимательно, не полезут ли ошибки
_4ePTeHok #
08:25
ох ты, из маи значит)
dvolodin #
08:29
ага
_4ePTeHok #
08:29
а я туда чуть не поехал учился с дальнего востока.) но несложилось
08:30
учится*
08:31
dvolodin, а в object selector можно сделать такую штуку - у меня допустим по оборудованию проставлены теги по группам, скажем сегмент. Я хочу чтобы селектор был двухуровневой - т е выбрал скажем селектор "сегмент" - а дальше вводишь сам номер сегмента. Реально?
08:31
или для каждого сегмента делать свой селектор по параметру тега соотв.
dvolodin #
08:32
для каждого сегмента свой тег
08:32
по группировке думать надо
_4ePTeHok #
08:33
агу, ясно
dvolodin #
08:39
я не особо силен во всяких жабаскриптах и прочих html'ях, староват уже для таких сложных вещей
Dmitry1 #
08:40
Я могу сделать. Только меня нужно конкретно ткнуть в то место, к которому приложить руки надо.
gnu_linux #
09:03
мучаюсь с алгоритмом поиска пути по древу... не могу найти :(
09:06
если за основу взять алгоритм нумерации в ширену и перенумеровать все узлы до нужного то как потом с этой инфы вытянуть путь?
09:07
там наверно не просто нумеровать узлы надо, а записывать их номера в какуюто хитрую матрицу, чтобы по ней можно было быстро вывести путь...
dvolodin #
09:08
да все проще же, говорю
09:09
по шагам это так выглядит
09:10
текущие ноды - множетсво из одной стартовой, просмотренные - пустое множество
09:10
далее итеративно
gnu_linux #
09:11
как? Вот функция которая на основе таблицы выдаёт соседей:
09:11
def get_switch_ports(switch_id):
09:11
cur.execute( 'SELECT switch1, port1, switch2, port2 FROM sa_managedobject_links WHERE switch1='+switch_id+';' )
09:11
switch_ports = cur.fetchall()
09:11
cur.execute( 'SELECT switch2, port2, switch1, port1 FROM sa_managedobject_links WHERE switch2='+switch_id+';' )
09:11
switch_ports = switch_ports + cur.fetchall()
09:11
return (switch_ports)
09:15
def route_discovery(switch_start,switch_end):
09:15
switch = switch_start
09:15
route = [(0, switch)]
09:15
l = 1; k=0
09:15
neighbor = switch[0]
09:15
while neighbor <> switch_end[0]:
09:15
neighbors = get_switch_ports(str(switch[0]))
09:15
for i in range(len(neighbors)):
09:15
neighbor = neighbors[i][2]
09:15
if neighbor == switch_end[0]:
09:17
Как записывать маршруты route чтобы по них потом можно было найти путь
09:18
И как перебирать все свичи, циклов у меня маловато...
dvolodin #
09:22
сейчас покажу
09:41
http://dpaste.com/533875/
09:41
тупо в лоб - как-то вот так
09:41
по хорошему в пути надо писать пару (node, interface)
09:42
но алгоритм это не меняет
teroni #
10:01
подскажите мудрейшие
10:01
при заполнение формы "Add Managed Object" как лучше заполнять поля:
10:02
Name, Address,Repo_Path
10:02
либо везде писать ип адресс ... либо??
gnu_linux #
10:05
Я не спец, но для начала везде написал IP...
10:05
Вот здесь подробнее всё нарисовал... http://pastebin.com/7dXJAhCV
teroni #
10:06
добавочно еще на некоторых девайсах прибиндено много адресов.... куда бы их то-же занести...
gnu_linux #
10:07
2dvolodin: глянь последний файл, он как раз маршруты и рисует, как туда ваши класы присобачить....
_4ePTeHok #
10:07
teroni, в mo address подразумевает управляющий адрес.
10:08
остальное - как удобно
10:08
все другие адреса в IPAM можно соотнести к этому объекту
E_zombie #
10:09
Checking configuration files
10:09
Traceback (most recent call last):
10:09
File "manage.py", line 20, in <module>
10:09
from django.core.management import execute_manager
10:09
File "/opt/noc/contrib/lib/django/core/management/__init__.py", line 11, in <module>
10:09
get_version = django.get_version
10:09
AttributeError: 'module' object has no attribute 'get_version'
10:09
post-update: 48: configuration check failed
10:09
Terminating
dvolodin #
10:17
E_zombie - это после post-update?
E_zombie #
10:17
да
dvolodin #
10:18
./scripts/about сейчас что говорит?
gnu_linux #
10:18
А ты перед этим старую версию нока удалил? (etc/*.conf & local можно оставить)
E_zombie #
10:19
ээээ. я пропустил момент что надо всё сносить?
_4ePTeHok #
10:19
а поясните кто нибудь в двух словах для чего Switchport Validation?)
10:21
выводит прописаные на swport vlan и есть ли mac в этих вланах-активность(последняя колонка)?
10:22
ага, перевел Excessive, стало ясно)
dvolodin #
10:31
не надо ничего сносить
10:32
Switchport Validation проверяет, в каких vlan'ах есть маки на порту и какие vlan'ы вообще пробиты
10:32
полезно старый мусор вычищать
_4ePTeHok #
10:32
Дада, спасибо, я уже разобрался
teroni #
10:32
завел девайс, пошел в конфиги - нажал получить сейчас... ошибка
10:32
CalledProcessError at /cm/config/get_now/218/
10:33
Command '['/usr/bin/hg', 'commit', '-m', 'CM autocommit', u'192.168.0.1']' returned non-zero exit status 255
dvolodin #
10:33
особенно если портов дофига а CAM маленький
10:33
с правами на репо проблем нет?
10:33
hg валится
_4ePTeHok #
10:33
кстати подскажите, где кнопку то добавили get conf now?) чота я искал искал, и не нашел)
10:34
чтобы в репо залить конф вот прям счас
dvolodin #
10:34
в Configuration Management > Configs
10:34
в списке галочками выделяешь, и из выпадающего списка выбираешь Get now
_4ePTeHok #
10:34
ага, нашел
teroni #
10:35
да вроде нету. он сам создал там папку .hg
10:35
а как команда выглядит если в ручную вводить?
_4ePTeHok #
10:35
афигенно. get now - это супер.)
dvolodin #
10:35
ага
10:36
плод коллективного мышления :)
10:36
но красиво вышло, да?
_4ePTeHok #
10:36
да. вообще это хороший задел под доп. функции в выпадающем списке
dvolodin #
10:37
django admin actions называется
_4ePTeHok #
10:37
коллективным мышлением разовъем юзабилити)
dvolodin #
10:37
колективность мышления была в выводе конечного результата со статусом попытки и ссылками на конфиг и последние diff'ы
teroni #
10:39
опапа в логе сервера... abort: no username supplied (see "hg help config")
dvolodin #
10:39
а
E_zombie #
10:39
Checking configuration files
10:39
Traceback (most recent call last):
10:39
File "manage.py", line 26, in <module>
10:39
import noc.urls
10:39
File "/opt/noc/urls.py", line 16, in <module>
10:39
site.autodiscover()
10:39
File "/opt/noc/lib/app/site.py", line 214, in autodiscover
10:39
__import__(".".join(["noc"]+f[:-3].split(os.path.sep)),{},{},"*")
10:39
File "/opt/noc/sa/apps/taskschedule/views.py", line 10, in <module>
10:39
from noc.sa.models import TaskSchedule
10:39
ImportError: cannot import name TaskSchedule
10:39
post-update: 48: configuration check failed
dvolodin #
10:39
.> cat ~/.hgrc
10:39
[ui]
10:39
username = User <user@example.com>
10:40
rm -rf sa/apps/taskschedule
10:40
сделаю я к релизу чистилку
teroni #
10:43
а нету файлика .hgrc
10:44
кто его делать то должен?
dvolodin #
10:45
в $HOME у юзера noc
gnu_linux #
10:59
2dvolodin: не получилось у меня сегодня с маршрутом между свичами... глянь на последнюю ссылку..
11:00
Занялся базой статических VLAN...
11:02
Хочу вытянуть их с конфигов и залить в базу... Где лежат конфиги? мне так чтобы по 'greep "config vlan " их выгребать и в базу писать...
dvolodin #
11:03
в репо
11:03
в текстовом виде
gnu_linux #
11:05
Где эта папка? оно гдето в mercurial
dvolodin #
11:06
в etc/noc.conf должно быть прописано
12:20
Сделал интерфейс IGetLicense
12:20
у кого BRAS'ы - можете сделать скрипты
_4ePTeHok #
13:10
dvolodin, а есть где почитать подробнее о логике работы run map/reduce task?
dvolodin #
13:14
что именно надо?
_4ePTeHok #
13:39
да хотя бы описание по логике работы - селектор понятно, определяем объекты, reduce script - оформление результата задачи? Map - определение самого действия?
13:40
скажем хочу я с 5 железок пропинговать один и тот же хост - reduce = matrix, map script = ping , map param = ip?
13:41
или я вообще в корне неверно понимаю всю логику работы
dvolodin #
14:49
map - имя скрипта
14:49
например, ping
14:49
вместо селектора можно передать список объектов
_4ePTeHok #
14:50
а reduce?
dvolodin #
15:08
"pyrule:matrix_report", например
15:09
можно примеры посмотреть
15:09
где ReduceTask.create_task
freee #
15:59
при миграции на 1.3 все поломалось ?
15:59
валится вебка уже раза 3-4
`kk #
16:00
у меня всё ок
freee #
16:03
юзера попробуй удалить ?
16:04
валится
`kk #
16:06
хе
16:06
да
16:06
согласен
freee #
16:06
была еще пара. причем при просто тыканье
16:06
`kk, ты на поелсдней ветке?
16:07
на r3517?
`kk #
16:07
http://dpaste.com/534005/
16:07
нет
freee #
16:08
ты get_now тестил ?
16:08
у меня при каких то условиях вылазит объект вместо даты дифа
16:08
примерно 1 из 10
`kk #
16:09
такого не замечал
freee #
16:09
ога. володина надо :)
Tweet
Share this page
Share this page: Tweet