Перейти к содержимому
Калькуляторы

новый opensource софт для NOC провайдера

Дмитрий, а давайте еще пару правил для лога дибилинков добавим:

 

from noc.fm.rules.classification import ClassificationRule,Expression,CLOSE_EVENT,DROP_EVENT
##
## DLink.DES35xx Port UP SYSLOG
##
class DLink_DES35xx_Port_UP_SYSLOG_Rule(ClassificationRule):
    name="DLink.DES35xx Port UP SYSLOG"
    event_class=LinkUp
    preference=1000
    patterns=[
        (r"^profile$",r"^DLink\.DES3xxx$"),
        (r"^source$",r"^syslog$"),
        (r"^message$",r"INFO: Port .* link up"),
    ]

 

и тоже самое на порт down:

 

from noc.fm.rules.classification import ClassificationRule,Expression,CLOSE_EVENT,DROP_EVENT
##
## DLink.DES35xx Port Down SYSLOG
##
class DLink_DES35xx_Port_Down_SYSLOG_Rule(ClassificationRule):
    name="DLink.DES35xx Port Down SYSLOG"
    event_class=LinkDown
    preference=1000
    patterns=[
        (r"^source$",r"^syslog$"),
        (r"^profile$",r"^DLink\.DES3xxx$"),
        (r"^message$",r"INFO: Port .* link down"),
    ]

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дмитрий, а давайте еще пару правил для лога дибилинков добавим:

 

from noc.fm.rules.classification import ClassificationRule,Expression,CLOSE_EVENT,DROP_EVENT
##
## DLink.DES35xx Port UP SYSLOG
##
class DLink_DES35xx_Port_UP_SYSLOG_Rule(ClassificationRule):
    name="DLink.DES35xx Port UP SYSLOG"
    event_class=LinkUp
    preference=1000
    patterns=[
        (r"^profile$",r"^DLink\.DES3xxx$"),
        (r"^source$",r"^syslog$"),
        (r"^message$",r"INFO: Port .* link up"),
    ]

 

и тоже самое на порт down:

 

from noc.fm.rules.classification import ClassificationRule,Expression,CLOSE_EVENT,DROP_EVENT
##
## DLink.DES35xx Port Down SYSLOG
##
class DLink_DES35xx_Port_Down_SYSLOG_Rule(ClassificationRule):
    name="DLink.DES35xx Port Down SYSLOG"
    event_class=LinkDown
    preference=1000
    patterns=[
        (r"^source$",r"^syslog$"),
        (r"^profile$",r"^DLink\.DES3xxx$"),
        (r"^message$",r"INFO: Port .* link down"),
    ]

Надо еще имя интерфейса извлечь.

Может быть

        (r"^message$",r"INFO: Port (?P<interface>\S+) link down"),

?

Так матчится?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Какое правило получилось? (Там рядом с правилом ссылочка Python)
мне вполне хватило этого:

from noc.fm.rules.classification import ClassificationRule,Expression,CLOSE_EVENT,DROP_EVENT
##
## Link Down (Zyxel)
##
class Link_Down_Zyxel__Rule(ClassificationRule):
    name="Link Down (Zyxel)"
    event_class=LinkDown
    preference=1000
    patterns=[
        (r"^source$",r"^SNMP Trap$"),
        (r"^1\.3\.6\.1\.6\.3\.1\.1\.4\.1\.0$",r"^1\.3\.6\.1\.6\.3\.1\.1\.5\.3$"),
        (r"^profile$",r"^Zyxel\.ZyNOS$"),
        (r"^SNMPv2-MIB::snmpTrapOID\.0$",r"^IF-MIB::linkDown$"),
        (r"^RFC1213-MIB::ifIndex\.\d+$",r"(?P<interface>.*)"),
    ]

и этого:

from noc.fm.rules.classification import ClassificationRule,Expression,CLOSE_EVENT,DROP_EVENT
##
## Link Up (Zyxel)
##
class Link_Up_Zyxel__Rule(ClassificationRule):
    name="Link Up (Zyxel)"
    event_class=LinkUp
    preference=1000
    patterns=[
        (r"^SNMPv2-MIB::snmpTrapOID\.0$",r"^IF-MIB::linkUp$"),
        (r"^profile$",r"^Zyxel\.ZyNOS$"),
        (r"^1\.3\.6\.1\.6\.3\.1\.1\.4\.1\.0$",r"^1\.3\.6\.1\.6\.3\.1\.1\.5\.4$"),
        (r"^source$",r"^SNMP Trap$"),
        (r"^RFC1213-MIB::ifIndex\.\d+$",r"(?P<interface>.*)"),
    ]

 

все работает и кореллятор отрабатывает.

но повторюсь, что я доливал еще штук 7 всяких MIB'ов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот еще трап с циски не отловился (2610XM, 12.4) :

 

cicsotrap.png

 

ps хотя может это из-за того что я его ручками через shutdown положил.

Изменено пользователем Huko

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Засунули в базу 280 свичей одинаковых практически. Попытался сделать матричный отчет по get_version - выдало минуты через три fail. Что смотреть, что крутить?

С последними апдейтами работает гораздо веселее, поправили несколько ошибок и подкрутили таймауты

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

при наличии local/sa/profiles/DLink/* отказалось напрочь синхронизироваться (post-update)
Где именно обламывается?

Обламывалось с плачем "нету у меня профиля DLink, а должен быть, куда дели сволочи?"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Надо еще имя интерфейса извлечь.

Может быть

        (r"^message$",r"INFO: Port (?P<interface>\S+) link down"),

?

Так матчится?

да, проверил - все отлично, в таком виде зело красивее:-)

Изменено пользователем White_Alex

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Надо еще имя интерфейса извлечь.

Может быть

        (r"^message$",r"INFO: Port (?P<interface>\S+) link down"),

?

Так матчится?

да, проверил - все отлично, в таком виде зело красивее:-)

Как выглядят правила в окончательном варианте?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Какое правило получилось? (Там рядом с правилом ссылочка Python)
мне вполне хватило этого:

from noc.fm.rules.classification import ClassificationRule,Expression,CLOSE_EVENT,DROP_EVENT
##
## Link Down (Zyxel)
##
class Link_Down_Zyxel__Rule(ClassificationRule):
    name="Link Down (Zyxel)"
    event_class=LinkDown
    preference=1000
    patterns=[
        (r"^source$",r"^SNMP Trap$"),
        (r"^1\.3\.6\.1\.6\.3\.1\.1\.4\.1\.0$",r"^1\.3\.6\.1\.6\.3\.1\.1\.5\.3$"),
        (r"^profile$",r"^Zyxel\.ZyNOS$"),
        (r"^SNMPv2-MIB::snmpTrapOID\.0$",r"^IF-MIB::linkDown$"),
        (r"^RFC1213-MIB::ifIndex\.\d+$",r"(?P<interface>.*)"),
    ]

В принципе эти трапы должны матчиться правилами Cisco.IOS Link Up SNMP и Cisco.IOS Link Down SNMP, там такой же набор масок

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как выглядят правила в окончательном варианте?

from noc.fm.rules.classification import ClassificationRule,Expression,CLOSE_EVENT,DROP_EVENT
##
## DLink.DES35xx Port Down SYSLOG
##
class DLink_DES35xx_Port_Down_SYSLOG_Rule(ClassificationRule):
    name="DLink.DES35xx Port Down SYSLOG"
    event_class=LinkDown
    preference=1000
    patterns=[
        (r"^source$",r"^syslog$"),
        (r"^profile$",r"^DLink\.DES3xxx$"),
        (r"^message$",r"INFO: Port (?P<interface>\S+) link down"),
    ]

 

и второе

 

from noc.fm.rules.classification import ClassificationRule,Expression,CLOSE_EVENT,DROP_EVENT
##
## DLink.DES35xx Port UP SYSLOG
##
class DLink_DES35xx_Port_UP_SYSLOG_Rule(ClassificationRule):
    name="DLink.DES35xx Port UP SYSLOG"
    event_class=LinkUp
    preference=1000
    patterns=[
        (r"^profile$",r"^DLink\.DES3xxx$"),
        (r"^source$",r"^syslog$"),
        (r"^message$",r"INFO: Port (?P<interface>\S+) link up"),
    ]

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дмитрий, тут с коррелятором что-то я сломал, это вылезло после манипуляция с правилами для Д-линков, я так понимаю он не смог правильно определить соответствие одного другому и просто валистя вот с таким трейсом:

 

ERROR UNHANDLED EXCEPTION (2009-06-22 13:50:07.751715)
Working directory: /opt/noc
<type 'exceptions.KeyError'>
u'interface'
START OF TRACEBACK
------------------------------------------------------------------------
File: scripts/../../noc/lib/daemon.py (Line: 165)
Function: start
  158         ## "start" command handler
  159         ##
  160         def start(self):
  161             # Daemonize
  162             if self.options.daemonize:
  163                 self.become_daemon()
  164             try:
  165 ==>             self.run()
  166             except KeyboardInterrupt:
  167                 pass
  168             except:
  169                 error_report()
  170         ##
  171         ## "stop" command handler
Variables:
                self = <noc.fm.correlator.Correlator object at 0xb7df0a8c>
------------------------------------------------------------------------
File: ./scripts/../../noc/fm/correlator.py (Line: 190)
Function: run
  183                         "event_id"          : str(e.id),
  184                         "timestamp"         : "%04d-%02d-%02d %02d:%02d:%02d"%(ts.year,ts.month,ts.day,ts.hour,ts.minu
te,ts.second),
  185                         "managed_object_id" : str(e.managed_object.id),
  186                     }
  187                     vars=dict([(d.key,d.value) for d in e.eventdata_set.all()])
  188                     # Try to correlate events
  189                     for r in self.ec_to_rule[event_class_id]:
  190 ==>                     for e_id,action in r.correlate(self.cursor,event,vars):
  191                             if action=="C":
  192                                 # Close event
  193                                 ce=Event.objects.get(id=e_id)
  194                                 if ce.status=="A":
  195                                     ce.close_event("Event closed by event %d (Correlation rule: %s)"%(e.id,r.name))
  196                                     logging.debug("Event %d closed by event %d (Correlation rule: %s)"%(e_id,e.id,r.na
me))
Variables:
                   e = <Event: Event #13144476: Link Down: >
                   d = <EventData: EventData object>
                vars = {u'profile': u'DLink.DES3xxx', u'source': u'syslog', u'message': u'Jun 22 10:50:03 10.1.31.110 INFO: Port 7 link down', u'severity': u'6', u'facility': u'16'}
           n_checked = 1
            n_closed = 0
                self = <noc.fm.correlator.Correlator object at 0xb7df0a8c>
            INTERVAL = 10
                  ts = datetime.datetime(2009, 6, 22, 10, 50, 5)
                  t0 = 1245664204.045867
      event_class_id = 21
                   r = <noc.fm.correlator.PairRule object at 0xa77174c>
                  ws = datetime.datetime(2009, 6, 22, 10, 50, 4, 45908)
               event = {'event_id': '13144476', 'timestamp': '2009-06-22 10:50:05', 'managed_object_id': '129'}
             last_id = 13144476
------------------------------------------------------------------------
File: ./scripts/../../noc/fm/correlator.py (Line: 72)
Function: correlate
   65             pass
   66         ##
   67         ## Accepts a hash of event parameters
   68         ## and a hash of vars
   69         ## Returns a list of (event_id,action)
   70         ##
   71         def correlate(self,cursor,event,vars):
   72 ==>         cursor.execute(self.exec_statement,[f(event,vars) for f in self.var_map])
   73             return [(x[0],self.action) for x in cursor.fetchall()]
   74     ##
   75     ## Matches a nearest event of given classes with matching vars
   76     ##
   77     class PairRule(Rule):
   78         def prepare_sql_statement(self,cursor):
Variables:
              cursor = <django.db.backends.util.CursorDebugWrapper object at 0xa2612cc>
                vars = {u'profile': u'DLink.DES3xxx', u'source': u'syslog', u'message': u'Jun 22 10:50:03 10.1.31.110 INFO: Port 7 link down', u'severity': u'6', u'facility': u'16'}
                   f = <function <lambda> at 0xaa4a7d4>
                self = <noc.fm.correlator.PairRule object at 0xa77174c>
                _[1] = ['13144476', '2009-06-22 10:50:05']
               event = {'event_id': '13144476', 'timestamp': '2009-06-22 10:50:05', 'managed_object_id': '129'}
------------------------------------------------------------------------
File: ./scripts/../../noc/fm/correlator.py (Line: 87)
Function: <lambda>
   80                 "event_id"  : lambda e,v: e["event_id"],
   81                 "timestamp" : lambda e,v: e["timestamp"]
   82             }
   83             # Create SQL select
   84             stmt="SELECT e.id FROM fm_event e"
   85             # Join tables
   86             for i,var in enumerate(self.vars):
   87 ==>             vars["var::%s"%var]=lambda e,v: v[var]
   88                 stmt+=" JOIN fm_eventdata ed%d ON (e.id=ed%d.event_id)"%(i,i)
   89             stmt+=" WHERE "
   90             stmt+=" e.id!=${event_id}::int "
   91             stmt+=" AND e.timestamp<=${timestamp}::timestamp "
   92             # Restrict to window
   93             if self.window:
Variables:
                 var = u'interface'
                   e = {'event_id': '13144476', 'timestamp': '2009-06-22 10:50:05', 'managed_object_id': '129'}
                   v = {u'profile': u'DLink.DES3xxx', u'source': u'syslog', u'message': u'Jun 22 10:50:03 10.1.31.110 INFO: Port 7 link down', u'severity': u'6', u'facility': u'16'}
------------------------------------------------------------------------
END OF TRACEBACK

 

можно ему как-то сказать, чтоб так сильно не нервничал, а то падает:-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как выглядят правила в окончательном варианте?

from noc.fm.rules.classification import ClassificationRule,Expression,CLOSE_EVENT,DROP_EVENT
##
## DLink.DES35xx Port Down SYSLOG
##
class DLink_DES35xx_Port_Down_SYSLOG_Rule(ClassificationRule):
....
    ]

Закоммитил: r1376.

Можно вытащить апдейты, появятся правила DLink DES35xx Link Up/Down SYSLOG. Старые правила можно потереть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дмитрий, день добрый!

 

еще момент - при логине в noc не супервайзером, который встроенный noc, а обычным юзером с правами например делать все и везде при обновлении страниц с конфигами (в принципе любых страниц) при отображении оно залипает на некоторое время, я так понимаю обрабатывает чего юзеру можно, чего нельзя, если под noc зайти, то этой задержки нет,

оно излечимо или это генетика?

В последних коммитах (r1364) оптимизировали эти запросы. Проверьте, полегчало ему?

 

PS: Комментарий "Idiotic implementation" там не зря стоял :)

да, вроде как полегчало, коммент убойный, как и реализация бывшая до патча:-)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дмитрий, день добрый!

PS: Комментарий "Idiotic implementation" там не зря стоял :)

да, вроде как полегчало, коммент убойный, как и реализация бывшая до патча:-)))

Я вообще удивляюсь, как оно работало хоть с такой скоростью. Сейчас, по идее, вообще никакого торможения быть не должно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я вообще удивляюсь, как оно работало хоть с такой скоростью. Сейчас, по идее, вообще никакого торможения быть не должно.

именно так, отзывается вообще без задумчивости

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уважаемые коллеги, в связи с тем, что мы неимоверно раскормили тему на этом почтенном форуме и в общем потоке можно легко затеряться, предлагаю перенести все обсуждение проекта на специально оборудованный форум forum.nocproject.org :) . Если чьи-то вопросы остались без ответа, продублируйте их, пожалуйста, на новом форуме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уважаемые коллеги, в связи с тем, что мы неимоверно раскормили тему на этом почтенном форуме и в общем потоке можно легко затеряться, предлагаю перенести все обсуждение проекта на специально оборудованный форум forum.nocproject.org :) . Если чьи-то вопросы остались без ответа, продублируйте их, пожалуйста, на новом форуме.

каптча зачетная, чуть глаза не сломал:-)))

 

ЗЫЖ тут в многостраничной теме достаточно много всяких полезностей накопилось, может попереносим в виде проекта FAQ на официальноый форум, раз он теперь есть?

Изменено пользователем White_Alex

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уважаемые коллеги, в связи с тем, что мы неимоверно раскормили тему на этом почтенном форуме и в общем потоке можно легко затеряться, предлагаю перенести все обсуждение проекта на специально оборудованный форум forum.nocproject.org :) . Если чьи-то вопросы остались без ответа, продублируйте их, пожалуйста, на новом форуме.

каптча зачетная, чуть глаза не сломал:-)))

 

ЗЫЖ тут в многостраничной теме достаточно много всяких полезностей накопилось, может попереносим в виде проекта FAQ на официальноый форум, раз он теперь есть?

Добавил ссылку на главной странице

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вышел релиз NOC 0.2.5. Изменений достаточно много: RELEASE NOTES

Изменено пользователем dvolodin

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а поддержка lldp планируется? можно будет дерево сети строить

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а поддержка lldp планируется? можно будет дерево сети строить

Планируется полный набор скриптов для l2 и l3 topology discovery (CDP, LLDP, OSPF/ISIS adjacency etc)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

После месячного перерыва вышла новая версия NOC: NOC 0.2.6. Список изменений достаточно большой.

 

[*]Появился новый демон noc-launcher, который умеет автоматически запускать нужные демоны NOC и перезапускать их в случае падения. В результате упрощается запуск и остановка NOC, так как достаточно запустить только один демон noc-launcher, а также повышается общая надежность.

[*]Появилась возможность online-редактирования справочников Reference Books. Теперь их можно использовать как замену электронным таблицам (различные пользовательские таблицы, инвентаризационные ведомости и так далее)

[*]Появился полноценный аудит действий пользователя. Все изменения данных протоколируются, журнал событий можно просматривать из web-интерфейса.

[*]Появился новый отчет: main.database_summary, в котором видно заполнение таблиц базы данных.

[*]Появилась поддержка новых устройств: Edge-Core ES4xxx и Linksys SPS2xx.

[*]Теперь активатору можно задать список адресов и портов, на которых нужно слушать SYSLOG/SNMP Trap'ы

[*]Появился новый отчет sa.activator_status, который показывает текущий статус всех активаторов.

[*]В селекторах объектов появилась возможность дополнительной фильтрации по активатору.

[*]Появилась вожможность клонирования правил Post-Processing

[*]При открытии/закрытии/переклассификации событий из списка событий перестал сбрасываться фильтр событий

 

Release Notes

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вышел NOC 0.2.7. Основные изменения:

 

Профили пользователя

Появились профили пользователя, в которых можно самостоятельно менять пользовательские настройки

и задавать контактную информацию

 

Гибкая настройка механизма оповещений

Механизм оповещений о событиях полностью переработан. Появились шаблоны для определения

интервалов времени (Time Patterns) и группы оповещения (Notification Groups). Оповещения

рассылаются новым демоном (noc-notifier), которые поддерживает механизм плагинов.

В версии 0.2.7 реализована поддержка SMTP и записи в log-файл.

 

Notification Groups в комбинации с Time Pattern'ами дают возможность гибко настроить рассылку оповещений

в зависимости от времени суток. Предпочтительный способ получения оповещения может быть настроен

пользователем в своем профиле.

Обсуждение Time Patterns

Обсуждение Notification Groups

 

Доработан noc-launcher

Начиная с версии 0.2.7 noc-laucher умеет выставлять UID и GID для запускаемых демонов. Теперь для запуска NOC достаточно прописать

в init-script'ах только noc-launcher, который сам будет запускать и перезапускать нужных демонов

 

Автоматическое удаление старых backup'ов

Начиная с версии 0.2.7 можно настроить автоматическое удаление старых backup'ов.

Обсуждение

 

SSL между SAE и Activator'ами

Появилась возможность SSL-шифрования всего обмена данными между SAE и активаторами.

Обсуждение

 

Настройка поведения опции pref в RPLS[/url]

Появилась возможность изменять способ генерации опции pref в RPSL. Возможны два варианта: pref=localpref и pref=65535-localpref

Обсуждение

 

Доработан макрос rack в KB

В теге allocation появился дополнительный атрибут "reserved". Появилась возможность помечать место в стойке как зарезервированое, что полезно при планировании установки нового оборудования

 

Прочие доработки

Улучшена совместимость с DLink DGS3100, появились новые классы событий и правила классификации, добавлено множество мелких улучшений, исправлено множество мелких ошибок

 

Детали...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вышел NOC 0.3.

 

Релиз содержит множество улучшений и серьезно расширяет функционал:

* Появился новый модуль Performance Management, позволяющий контролировать производительность сети и приложений.

* Добавлена поддержка 5 новых платформ: Zyxel.ZyNOSv2, HP.iLO2, Cisco.NXOS, Cisco.AireOS, Raisecom.ROS

* Появился контроль за сроками окончания делегации доменов

* Расширен функционал модулей и повышено общее удобство использования.

* Исправлено несколько неприятных ошибок

См. RELEASE NOTES

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет всем! Раза три пытался переустановить NOC но вылезает все та-же ошибка при попытке ПОСМОТРЕТЬ/Добавить Managed Objects

Система - Gentoo Linux, вроде все, что описано в документации сделал, все модули к перлу поставил. При установке, были грабли, но спасибо dvolodin-у исправил. Да, у меня веб морда к апачу прикручена, в некоторых меню пропадает, такое ощущение CSS.

 

TraceBack:

 

Environment:

 

Request Method: GET

Request URL: http://10.39.225.123/admin/sa/managedobject/1/

Django Version: 1.1

Python Version: 2.6.2

Installed Applications:

['django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.sites',

'django.contrib.admin',

'django.contrib.databrowse',

'south',

'noc.main',

'noc.sa',

'noc.fm',

'noc.pm',

'noc.cm',

'noc.ip',

'noc.vc',

'noc.dns',

'noc.peer',

'noc.kb']

Installed Middleware:

('django.middleware.common.CommonMiddleware',

'django.contrib.sessions.middleware.SessionMiddleware',

'django.contrib.auth.middleware.AuthenticationMiddleware',

'django.middleware.doc.XViewMiddleware',

'django.middleware.transaction.TransactionMiddleware',

'noc.main.middleware.TLSMiddleware')

 

 

Traceback:

File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response

93. response = callback(request, *callback_args, **callback_kwargs)

File "/usr/lib/python2.6/site-packages/django/contrib/admin/sites.py" in root

490. return self.model_page(request, *url.split('/', 2))

File "/usr/lib/python2.6/site-packages/django/views/decorators/cache.py" in _wrapped_view_func

44. response = view_func(request, *args, **kwargs)

File "/usr/lib/python2.6/site-packages/django/contrib/admin/sites.py" in model_page

509. return admin_obj(request, rest_of_url)

File "/usr/lib/python2.6/site-packages/django/contrib/admin/options.py" in __call__

1098. return self.change_view(request, unquote(url))

File "/usr/lib/python2.6/site-packages/django/db/transaction.py" in _commit_on_success

240. res = func(*args, **kw)

File "/usr/lib/python2.6/site-packages/django/contrib/admin/options.py" in change_view

809. ModelForm = self.get_form(request, obj)

File "/usr/lib/python2.6/site-packages/django/contrib/admin/options.py" in get_form

348. return modelform_factory(self.model, **defaults)

File "/usr/lib/python2.6/site-packages/django/forms/models.py" in modelform_factory

443. return ModelFormMetaclass(class_name, (form,), form_class_attrs)

File "/usr/lib/python2.6/site-packages/django/forms/models.py" in __new__

201. opts.exclude, formfield_callback)

File "/usr/lib/python2.6/site-packages/django/forms/models.py" in fields_for_model

165. formfield = formfield_callback(f)

File "/usr/lib/python2.6/site-packages/django/utils/functional.py" in _curried

55. return _curried_func(*(args+moreargs), **dict(kwargs, **morekwargs))

File "./scripts/../../noc/sa/admin.py" in formfield_for_dbfield

78. return db_field.formfield(**kwargs)

File "/usr/lib/python2.6/site-packages/django/db/models/fields/__init__.py" in formfield

433. return super(CharField, self).formfield(**defaults)

File "/usr/lib/python2.6/site-packages/django/db/models/fields/__init__.py" in formfield

336. return form_class(**defaults)

File "/usr/lib/python2.6/site-packages/django/forms/fields.py" in __init__

144. super(CharField, self).__init__(*args, **kwargs)

 

Exception Type: TypeError at /admin/sa/managedobject/1/

Exception Value: __init__() got an unexpected keyword argument 'request'

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.