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

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

Собственно, вот новый профиль для Revolution 5000 (InfiNet.WANFlexX)

r1112

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


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

а реально задать расположение стоек рядом? а то сейчас они отрисовываются последовательно, что немного неудобно. Экран позволяет смотреть на две стойки сразу по ширине. А вообще замечательный макрос.

Теперь рисует в ряд: r1117. Вполне нормально влезают 5 стоек на экран.

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


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

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

 

* Поддержка макросов в KB

* Макрос "rack" для красивой отрисовки содержимого стоек

* Макроc "search" для генерации списка статей, удовлетворяющих заданным критериям

* Закладки в KB - можно указать несколько стартовых точек для работы с KB

* Конвертер из MoinMoin позволяет залить уже имеющиеся wiki на MoinMoin в KB

* Поддержка InfiNet Revolution 5000 в sa/cm

* Скрипты get_vlans для DLink'ов

* Можно добавить свой маленький логотипчик в левом верхнем углу экрана

 

Детали: Release Notes

 

 

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


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

день добрый

Обновил до последней версии, валит вот такую ошибку при старте активатора

2009-05-12 13:07:44,606 DEBUG [Activator(0x2842c08c)]<None> ==> IDLE
2009-05-12 13:07:44,606 DEBUG [Activator(0x2842c08c)]<IDLE> set_timeout(5)
2009-05-12 13:07:49,608 DEBUG [Activator(0x2842c08c)]<IDLE> Timeout expired
2009-05-12 13:07:49,609 DEBUG [Activator(0x2842c08c)]<IDLE> event(timeout)
2009-05-12 13:07:49,609 DEBUG [Activator(0x2842c08c)]<IDLE> ==> CONNECT
2009-05-12 13:07:49,609 DEBUG [Activator(0x2842c08c)]<CONNECT> set_timeout(10)
2009-05-12 13:07:49,610 DEBUG register_socket(<noc.sa.activator.ActivatorSocket object at 0x28ac4d8c>,None)
2009-05-12 13:07:49,610 DEBUG [Activator(0x2842c08c)]<CONNECT> event(connect)
2009-05-12 13:07:49,610 DEBUG [Activator(0x2842c08c)]<CONNECT> ==> CONNECTED
2009-05-12 13:07:49,611 DEBUG [Activator(0x2842c08c)]<CONNECTED> set_timeout(10)
2009-05-12 13:07:49,611 INFO Registering as 'mngr'
2009-05-12 13:07:49,612 DEBUG Creating transaction id=1417721106 method=register callback=<function register_callback at 0x28c1e534>
2009-05-12 13:07:49,612 DEBUG send_request
method: register
name: "mngr"

2009-05-12 13:07:49,614 DEBUG [ActivatorSocket(0x28ac4d8c)] write('\x00\x00\x00"x\x9c\xe3\x98\xf4\xaai\t\xab\x90\x10\x17GQjzfqIj\x91\x10\x1b\x17Kn^z\x11\x00r\xe3\x08%')
2009-05-12 13:07:49,621 DEBUG on_read: '\x08\x92\xea\x82\xa4\x05\x1a,\n*\n(c26c4c72032705f17264a6ac536ba9e0b4a1c398'
2009-05-12 13:07:49,622 DEBUG rpc_handle_message:
id: 1417721106
response {
  serialized_response: "\n(c26c4c72032705f17264a6ac536ba9e0b4a1c398"
}

2009-05-12 13:07:49,623 DEBUG rpc_handle_response:
id: 1417721106
serialized_response: "\n(c26c4c72032705f17264a6ac536ba9e0b4a1c398"

2009-05-12 13:07:49,623 INFO Registration accepted
2009-05-12 13:07:49,624 DEBUG [Activator(0x2842c08c)]<CONNECTED> event(register)
2009-05-12 13:07:49,624 DEBUG [Activator(0x2842c08c)]<CONNECTED> ==> REGISTRED
2009-05-12 13:07:49,624 DEBUG [Activator(0x2842c08c)]<REGISTRED> set_timeout(10)
2009-05-12 13:07:49,624 INFO Authenticating
2009-05-12 13:07:49,625 DEBUG Creating transaction id=2044082711 method=auth callback=<function auth_callback at 0x28c1edf4>
2009-05-12 13:07:49,625 DEBUG send_request
method: auth
name: "mngr"
digest: "95cc9280d5bacecc9976cbcd647105afdfd562fe"

2009-05-12 13:07:49,626 DEBUG [ActivatorSocket(0x28ac4d8c)] write('\x00\x00\x00Gx\x9c\xe3\x98\xfe\xe5\xc69v!\x0b.\x96\xc4\xd2\x92\x0c!\x03.\x96\xdc\xbc\xf4"!\rK\xd3\xe4dK#\x0b\x83\x14\xd3\xa4\xc4\xe4T \xdb\xd2\xdc,9)9\xc5\xcc\xc4\xdc\xd0\xc041-%-\xc5\xd4\xcc(-\x15\x00\x8a\x02\x13y')
2009-05-12 13:07:49,627 DEBUG Deleting transaction 1417721106
2009-05-12 13:07:49,634 DEBUG on_read: '\x08\x97\xf4\xd8\xce\x07\x1a\x02\n\x00'
2009-05-12 13:07:49,635 DEBUG rpc_handle_message:
id: 2044082711
response {
  serialized_response: ""
}

2009-05-12 13:07:49,635 DEBUG rpc_handle_response:
id: 2044082711
serialized_response: ""

2009-05-12 13:07:49,635 INFO Authenticated
2009-05-12 13:07:49,636 DEBUG [Activator(0x2842c08c)]<REGISTRED> event(auth)
2009-05-12 13:07:49,636 DEBUG [Activator(0x2842c08c)]<REGISTRED> ==> AUTHENTICATED
2009-05-12 13:07:49,636 INFO In-bundle package. Skiping software updates
2009-05-12 13:07:49,636 DEBUG [Activator(0x2842c08c)]<AUTHENTICATED> event(establish)
2009-05-12 13:07:49,637 DEBUG [Activator(0x2842c08c)]<AUTHENTICATED> ==> ESTABLISHED
2009-05-12 13:07:49,637 DEBUG Starting trap collector
2009-05-12 13:07:49,655 ERROR UNHANDLED EXCEPTION (2009-05-12 13:07:49.639776)
Working directory: /opt/noc
<type 'exceptions.Exception'>
Invalid interface 'true'
START OF TRACEBACK
------------------------------------------------------------------------
File: /opt/noc/../noc/lib/nbsocket.py (Line: 447)
Function: loop
  440                                     try:
  441                                         self.sockets[f].close()
  442                                     except:
  443                                         pass
  444                         for f in r:
  445                             if f in self.sockets:
  446                                 try:
  447 ==>                                 self.sockets[f].handle_read()
  448                                 except:
  449                                     error_report()
  450                                     try:
  451                                         self.sockets[f].close()
  452                                     except:
  453                                         pass
Variables:
                   w = []
                   f = 3
                self = <noc.lib.nbsocket.SocketFactory object at 0x28ac4cec>
                   s = <noc.sa.activator.ActivatorSocket object at 0x28ac4d8c>
                   r = [3]
             timeout = 1
                   x = []
------------------------------------------------------------------------
File: /opt/noc/../noc/lib/nbsocket.py (Line: 255)
Function: handle_read
  248                     self.close()
  249                     return
  250                 raise socket.error,why
  251             if not data:
  252                 self.close()
  253                 return
  254             if self.protocol_class:
  255 ==>             self.protocol.feed(data)
  256             else:
  257                 self.on_read(data)
  258
  259         def can_write(self):
  260             return self.out_buffer or not self.is_connected
  261
Variables:
                self = <noc.sa.activator.ActivatorSocket object at 0x28ac4d8c>
                data = '\x00\x00\x00\x12x\x9c\xe3\x98\xfe\xe5\xc69v)&.\x06\x00\x18\xaa\x03g'
------------------------------------------------------------------------
File: /opt/noc/../noc/lib/nbsocket.py (Line: 76)
Function: feed
   69         def __init__(self,callback):
   70             self.callback=callback
   71             self.in_buffer=""
   72
   73         def feed(self,data):
   74             self.in_buffer+=data
   75             for pdu in self.parse_pdu():
   76 ==>             self.callback(pdu)
   77
   78         def parse_pdu(self):
   79             return []
   80     ##
   81     ## Line protocol. PDUs are separated by "\n"
   82     ##
Variables:
                 pdu = '\x08\x97\xf4\xd8\xce\x07\x1a\x02\n\x00'
                data = '\x00\x00\x00\x12x\x9c\xe3\x98\xfe\xe5\xc69v)&.\x06\x00\x18\xaa\x03g'
                self = <noc.sa.rpc.CompressedInt32Protocol object at 0x28ac4e4c>
------------------------------------------------------------------------
File: ./scripts/../../noc/sa/rpc.py (Line: 155)
Function: on_read
  148                 self.stat_rpc_errors+=1
  149                 self.rpc_handle_error(msg.id,msg.error)
  150             elif msg.request.ByteSize():
  151                 self.stat_rpc_requests+=1
  152                 self.rpc_handle_request(msg.id,msg.request)
  153             elif msg.response.ByteSize():
  154                 self.stat_rpc_responses+=1
  155 ==>             self.rpc_handle_response(msg.id,msg.response)
  156
  157         def rpc_handle_request(self,id,request):
  158             logging.debug("rpc_handle_request")
  159             if self.transactions.has_key(id):
  160                 self.send_error(id,ERR_TRANSACTION_EXISTS,"Transaction %s is alreasy exists"%id)
  161                 return
Variables:
                 msg = <noc.sa.protocols.sae_pb2.Message object at 0x28c16f2c>
                self = <noc.sa.activator.ActivatorSocket object at 0x28ac4d8c>
                data = '\x08\x97\xf4\xd8\xce\x07\x1a\x02\n\x00'
------------------------------------------------------------------------
File: ./scripts/../../noc/sa/rpc.py (Line: 183)
Function: rpc_handle_response
  176                 logging.error("Invalid transaction: %s"%id)
  177                 return
  178             t=self.transactions[id]
  179             method=self.service.GetDescriptor().FindMethodByName(t.method)
  180             if method:
  181                 res=self.service.GetResponseClass(method)()
  182                 res.ParseFromString(response.serialized_response)
  183 ==>             t.commit(response=res)
  184             else:
  185                 logging.error("Invalid method: %s"%t.method)
  186                 t.rollback()
  187
  188         def rpc_handle_error(self,id,error):
  189             logging.debug("rpc_handle_error:\nid: %s\n%s"%(id,str(error)))
Variables:
                 res = <noc.sa.protocols.sae_pb2.AuthResponse object at 0x28c21ddc>
                self = <noc.sa.activator.ActivatorSocket object at 0x28ac4d8c>
            response = <noc.sa.protocols.sae_pb2.Response object at 0x28c1ec6c>
              method = <google.protobuf.descriptor.MethodDescriptor object at 0x288b7e8c>
                   t = <noc.sa.rpc.Transaction object at 0x28c2804c>
                  id = 2044082711
------------------------------------------------------------------------
File: ./scripts/../../noc/sa/rpc.py (Line: 55)
Function: commit
   48             self.callback=callback
   49
   50         def __del__(self):
   51             logging.debug("Deleting transaction %s"%self.id)
   52
   53         def commit(self,response=None,error=None):
   54             if self.callback:
   55 ==>             self.callback(self,response,error)
   56             self.factory.delete_transaction(self.id)
   57
   58         def rollback(self):
   59             self.factory.delete_transaction(self.id)
   60     ##
   61     ## Transaction storage
Variables:
                self = <noc.sa.rpc.Transaction object at 0x28c2804c>
            response = <noc.sa.protocols.sae_pb2.AuthResponse object at 0x28c21ddc>
               error = None
------------------------------------------------------------------------
File: ./scripts/../../noc/sa/activator.py (Line: 407)
Function: auth_callback
  400                 if self.get_state()!="REGISTRED":
  401                     return
  402                 if error:
  403                     logging.error("Authentication failed: %s"%error.text)
  404                     self.event("error")
  405                     return
  406                 logging.info("Authenticated")
  407 ==>             self.event("auth")
  408             logging.info("Authenticating")
  409             r=AuthRequest()
  410             r.name=self.config.get("activator","name")
  411             r.digest=get_digest(r.name,self.config.get("activator","secret"),self.nonce)
  412             self.sae_stream.proxy.auth(r,auth_callback)
  413
Variables:
                self = <noc.sa.activator.Activator object at 0x2842c08c>
         transaction = <noc.sa.rpc.Transaction object at 0x28c2804c>
            response = <noc.sa.protocols.sae_pb2.AuthResponse object at 0x28c21ddc>
               error = None
------------------------------------------------------------------------
File: /opt/noc/../noc/lib/fsm.py (Line: 78)
Function: event
   71         ## Send event to FSM
   72         ##
   73         def event(self,event):
   74             self.debug("event(%s)"%event)
   75             if event not in self.STATES[self._current_state]:
   76                 raise Exception("Invalid event '%s' in state '%s'"%(event,self._current_state))
   77             self.call_state_handler(self._current_state,event)
   78 ==>         self.set_state(self.STATES[self._current_state][event])
   79         ##
   80         ## Method should be called in event loop every second to process timeout and tick events
   81         ##
   82         def tick(self):
   83             if self._state_exit_time and self._state_exit_time<time.time():
   84                 self.debug("Timeout expired")
Variables:
                self = <noc.sa.activator.Activator object at 0x2842c08c>
               event = 'auth'
------------------------------------------------------------------------
File: /opt/noc/../noc/lib/fsm.py (Line: 65)
Function: set_state
   58             if state not in self.STATES:
   59                 raise Exception("Invalid state %s"%state)
   60             if self._current_state:
   61                 self.call_state_handler(self._current_state,"exit")
   62             self._current_state=state
   63             self._state_enter_time=time.time()
   64             self._state_exit_time=None
   65 ==>         self.call_state_handler(state,"enter")
   66
   67         def set_timeout(self,timeout):
   68             self.debug("set_timeout(%s)"%timeout)
   69             self._state_exit_time=time.time()+timeout
   70         ##
   71         ## Send event to FSM
Variables:
               state = 'AUTHENTICATED'
                self = <noc.sa.activator.Activator object at 0x2842c08c>
------------------------------------------------------------------------
File: /opt/noc/../noc/lib/fsm.py (Line: 49)
Function: call_state_handler
   42                 return getattr(self,name)
   43             except:
   44                 return None
   45
   46         def call_state_handler(self,state,event,*args):
   47             h=self.get_state_handler(state,event)
   48             if h:
   49 ==>             apply(h,args)
   50
   51         def get_state(self):
   52             return self._current_state
   53
   54         def set_state(self,state):
   55             if state==self._current_state:
Variables:
                   h = <bound method Activator.on_AUTHENTICATED_enter of <noc.sa.activator.Activator object at 0x2842c08c>>
               state = 'AUTHENTICATED'
                args = ()
               event = 'enter'
                self = <noc.sa.activator.Activator object at 0x2842c08c>
------------------------------------------------------------------------
File: ./scripts/../../noc/sa/activator.py (Line: 255)
Function: on_AUTHENTICATED_enter
  248         ## AUTHENTICATED
  249         ##
  250         def on_AUTHENTICATED_enter(self):
  251             if self.stand_alone_mode:
  252                 self.event("upgrade")
  253             else:
  254                 logging.info("In-bundle package. Skiping software updates")
  255 ==>             self.event("establish")
  256         ##
  257         ## UPGRADE
  258         ##
  259         def on_UPGRADE_enter(self):
  260             logging.info("Requesting software update")
  261             self.manifest()
Variables:
                self = <noc.sa.activator.Activator object at 0x2842c08c>
------------------------------------------------------------------------
File: /opt/noc/../noc/lib/fsm.py (Line: 78)
Function: event
   71         ## Send event to FSM
   72         ##
   73         def event(self,event):
   74             self.debug("event(%s)"%event)
   75             if event not in self.STATES[self._current_state]:
   76                 raise Exception("Invalid event '%s' in state '%s'"%(event,self._current_state))
   77             self.call_state_handler(self._current_state,event)
   78 ==>         self.set_state(self.STATES[self._current_state][event])
   79         ##
   80         ## Method should be called in event loop every second to process timeout and tick events
   81         ##
   82         def tick(self):
   83             if self._state_exit_time and self._state_exit_time<time.time():
   84                 self.debug("Timeout expired")
Variables:
                self = <noc.sa.activator.Activator object at 0x2842c08c>
               event = 'establish'
------------------------------------------------------------------------
File: /opt/noc/../noc/lib/fsm.py (Line: 65)
Function: set_state
   58             if state not in self.STATES:
   59                 raise Exception("Invalid state %s"%state)
   60             if self._current_state:
   61                 self.call_state_handler(self._current_state,"exit")
   62             self._current_state=state
   63             self._state_enter_time=time.time()
   64             self._state_exit_time=None
   65 ==>         self.call_state_handler(state,"enter")
   66
   67         def set_timeout(self,timeout):
   68             self.debug("set_timeout(%s)"%timeout)
   69             self._state_exit_time=time.time()+timeout
   70         ##
   71         ## Send event to FSM
Variables:
               state = 'ESTABLISHED'
                self = <noc.sa.activator.Activator object at 0x2842c08c>
------------------------------------------------------------------------

 

подскажите пожалуйста, в чем может быть дело?

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


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

день добрый

Обновил до последней версии, валит вот такую ошибку при старте активатора

 

подскажите пожалуйста, в чем может быть дело?

Странное что-то. Оно каждый раз так повторяется?

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


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

да, с переодичностью в 5 секунд.

вот что пишет sae

2009-05-13 10:22:16,828 DEBUG register_socket(<noc.sa.sae.SAESocket object at 0x292daeec>,None)
2009-05-13 10:22:16,829 DEBUG on_read: '\x08\x90\xb5\xa4\x07\x12\x12\n\x08register\x12\x06\n\x04mngr'
2009-05-13 10:22:16,830 DEBUG rpc_handle_message:
id: 15276688
request {
  method: "register"
  serialized_request: "\n\004mngr"
}

2009-05-13 10:22:16,830 DEBUG rpc_handle_request
2009-05-13 10:22:16,831 DEBUG Request accepted:
id: 15276688
name: "mngr"

2009-05-13 10:22:16,831 DEBUG Creating transaction id=15276688 method=register callback=None
2009-05-13 10:22:16,832 INFO Requesting digest for activator 'mngr'
2009-05-13 10:22:16,833 DEBUG send_response:
id: 15276688
response:
nonce: "22d70cea81b24b46a441c5477505d80ab40513e6"

error:
None
2009-05-13 10:22:16,834 DEBUG [SAESocket(0x292daeec)] write('\x00\x00\x00;x\x9c\xe3\x98\xb0u\t\xbb\x94\x0e\x97\x16\x97\x86\x91Q\x8a\xb9Arj\xa2\x85a\x92\x91I\x92\x89Y\xa2\x89\x89a\xb2\xa9\x89\xb9\xb9\xa9\x81i\x8a\x85Ab\x92\x89\x81\xa9\xa1q\xaa\x19\x00Ur\x0c\xef')
2009-05-13 10:22:16,834 DEBUG Deleting transaction 15276688
2009-05-13 10:22:16,840 DEBUG on_read: '\x08\x9f\xa6\xe6\x93\x07\x128\n\x04auth\x120\n\x04mngr\x12(b3e01fc55fb1bbfd030654971efd3a9156239dd3'
2009-05-13 10:22:16,842 DEBUG rpc_handle_message:
id: 1920570143
request {
  method: "auth"
  serialized_request: "\n\004mngr\022(b3e01fc55fb1bbfd030654971efd3a9156239dd3"
}

2009-05-13 10:22:16,842 DEBUG rpc_handle_request
2009-05-13 10:22:16,843 DEBUG Request accepted:
id: 1920570143
name: "mngr"
digest: "b3e01fc55fb1bbfd030654971efd3a9156239dd3"

2009-05-13 10:22:16,843 DEBUG Creating transaction id=1920570143 method=auth callback=None
2009-05-13 10:22:16,845 INFO Authenticating activator 'mngr'
2009-05-13 10:22:16,845 DEBUG register_socket(<noc.sa.sae.SAESocket object at 0x292daeec>,mngr)
2009-05-13 10:22:16,845 DEBUG send_response:
id: 1920570143
response:

error:
None
2009-05-13 10:22:16,846 DEBUG [SAESocket(0x292daeec)] write('\x00\x00\x00\x12x\x9c\xe3\x98\xbf\xec\xd9dv)&.\x06\x00\x15\x82\x02\xf4')
2009-05-13 10:22:16,846 DEBUG Deleting transaction 1920570143
2009-05-13 10:22:16,883 DEBUG unregister_socket(<noc.sa.sae.SAESocket object at 0x292daeec>)

 

traceback активатора немного не полный, обрезал немного в конце. могу выслать целиком на почту.

 

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


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

день добрый

Обновил до последней версии, валит вот такую ошибку при старте активатора

File: /opt/noc/../noc/lib/nbsocket.py (Line: 447)
Function: loop
  440                                     try:
  441                                         self.sockets[f].close()
  442                                     except:
  443                                         pass
  444                         for f in r:
  445                             if f in self.sockets:
  446                                 try:
  447 ==>                                 self.sockets[f].handle_read()
  448                                 except:
  449                                     error_report()
  450                                     try:
  451                                         self.sockets[f].close()
  452                                     except:
  453                                         pass
------------------------------------------------------------------------

 

подскажите пожалуйста, в чем может быть дело?

А прав хватает трапы ловить на безопасном порту?

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


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

А прав хватает трапы ловить на безопасном порту?

Там в конфиге ошибка была.

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


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

Вышел релиз NOC 0.2.2.

 

Основные изменения в новом релизе:

* Редактор файлов конфигураций. Теперь все конфиги можно редактировать прямо из web-интерфейса. Для каждой опции доступен online help

* Задокументированы все опции конфигурации

* В предыдущих релизах возникала проблема, когда панель поиска частично перекрывает таблицу просмотра и изменения объектов. Особенно сильно это мешало в списке managed object'ов, где часто закрывались полезные ссылки Script и Config. Теперь во всех формах панель поиска можно свернуть/развернуть, кликнув на треугольник в заголовке "Filter"

* Web-интерфейс причесан в целях упрощения навигации и теперь более консистентен (особенно заметно в модуле ip)

* Появилась поддержка модулей Cisco FWSM и Ubiquiti NanoStation 2/5.

* Появилась возможность извлекать ARP cache из железок (Пока реализовано для Cisco.IOS, Juniper.JUNOS и Force10.FTOS).

* Улучшена совместимость с Cisco IOS 12.2SXF и 12.2GS

* Новые классы событий и правила для fault management

 

Рекомендую всем обновиться, местами стало намного удобнее работать.

 

Release Notes

 

 

 

 

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


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

Вышел релиз NOC 0.2.2.

День добрый!

 

обновились, все вроде как ездит проблем нет

вот только - все также не собирается встроенная документация под ./scripts/post-update, а видимо из-за этого не работает и редактор конфигов из web-интерфейса, например при попытке открыть noc.conf говорит:

 

Exception Type: IOError

Exception Value:

 

[Errno 2] No such file or directory: 'static/doc/en/ug/html/_sources/configuration.txt'

 

Exception Location: scripts/../../noc/main/views.py in config_view, line 171

 

вот пока единственный отрицательный момент, но в принципе жить не мешает:-)

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


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

Вышел релиз NOC 0.2.2.

День добрый!

 

обновились, все вроде как ездит проблем нет

вот только - все также не собирается встроенная документация под ./scripts/post-update, а видимо из-за этого не работает и редактор конфигов из web-интерфейса, например при попытке открыть noc.conf говорит:

 

Exception Type: IOError

Exception Value:

 

[Errno 2] No such file or directory: 'static/doc/en/ug/html/_sources/configuration.txt'

 

Exception Location: scripts/../../noc/main/views.py in config_view, line 171

 

вот пока единственный отрицательный момент, но в принципе жить не мешает:-)

Да, ему нужна встроенная документация, чтобы генерить ссылки на help. А почему не собирается документация? что пишет?

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


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

Да, ему нужна встроенная документация, чтобы генерить ссылки на help. А почему не собирается документация? что пишет?

Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_manager(settings)
  File "/var/lib/python-support/python2.5/django/core/management/__init__.py", line 340, in execute_manager
    utility.execute()
  File "/var/lib/python-support/python2.5/django/core/management/__init__.py", line 295, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/var/lib/python-support/python2.5/django/core/management/base.py", line 192, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/var/lib/python-support/python2.5/django/core/management/base.py", line 219, in execute
    output = self.handle(*args, **options)
  File "/opt/noc/../noc/main/management/commands/sync-doc.py", line 53, in handle
    subprocess.call(["make","html"],cwd=d,env=env)
  File "/usr/lib/python2.5/subprocess.py", line 444, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.5/subprocess.py", line 594, in __init__
    errread, errwrite)
  File "/usr/lib/python2.5/subprocess.py", line 1149, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

 

вроде где-то тут уже пролетало, что это из-за не той версии какого-то пакета и оно всегда так и есть

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


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

Прекрасный проект, всяческих успехов в развитии!

 

Чего не хватает:

1. Более продвинутой работы с ревизиями конфигураций ala trac.

2. Подсветки синтаксиса конфигураций и diff, хотя бы простенькой. У конкурирующего проекта есть даже lexer-ы для Pygments готовые, ну или можно в django-шаблон выводящий код, вставить разработку от соотечественников, там достаточно просто новый язык добавить.

3. Модуля ala IPPlan, для менеджмента не только vrf, но и любых VPN и диапазонов.

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

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


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

вроде где-то тут уже пролетало, что это из-за не той версии какого-то пакета и оно всегда так и есть
# easy_install -U Sphinx

Может быть из-за этого?

 

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


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

# easy_install -U Sphinx

Может быть из-за этого?

#apt-cache show python-sphinx

Package: python-sphinx

Priority: optional

Section: python

Installed-Size: 3232

Maintainer: Mikhail Gusarov <dottedmag@dottedmag.net>

Architecture: all

Source: sphinx

Version: 0.4.2-1

 

 

вот такой пакет установлен в системе

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


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

# easy_install -U Sphinx

Может быть из-за этого?

#apt-cache show python-sphinx

Package: python-sphinx

Priority: optional

Section: python

Installed-Size: 3232

Maintainer: Mikhail Gusarov <dottedmag@dottedmag.net>

Architecture: all

Source: sphinx

Version: 0.4.2-1

 

 

вот такой пакет установлен в системе

Вот из-за него и проблема. Нужен 0.6 и выше.

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


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

Прекрасный проект, всяческих успехов в развитии!

 

Чего не хватает:

1. Более продвинутой работы с ревизиями конфигураций ala trac.

Скорее - табличного вида в две колонки. Это давно в планах стоит, руки не доходят. Или чего-то еще нет?
2. Подсветки синтаксиса конфигураций и diff, хотя бы простенькой. У конкурирующего проекта есть даже lexer-ы для Pygments готовые, ну или можно в django-шаблон выводящий код, вставить

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

На эту тему можно подумать. Красотизм, конечно, но может быть полезным.
3. Модуля ala IPPlan, для менеджмента не только vrf, но и любых VPN и диапазонов.
L2 VPN'ы (VLAN, Q-in-Q, FR, ATM, static MPLS) у нас есть в модуле VC. MPLS VLL/VPLS (Kompella) пока ведется в Peering Management > Communities.

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


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

Скорее - табличного вида в две колонки. Это давно в планах стоит, руки не доходят. Или чего-то еще нет?
Да, в том числе и вывод в две колонки с подсветкой изменений как в trac (построчно и внутри строки).

Очень удобный на мой взгляд вариант работы с ревизиями реализован в Redmine,

хотя я понимаю что это не приоритет, но всё-же.

 

На эту тему можно подумать. Красотизм, конечно, но может быть полезным.
Было бы неплохо, облегчает чтение, да и реализуется достаточно просто.

 

L2 VPN'ы (VLAN, Q-in-Q, FR, ATM, static MPLS) у нас есть в модуле VC. MPLS VLL/VPLS (Kompella) пока ведется в Peering Management > Communities.
Имеется в виду L3 , egrp, ospf, easyvpn, dmvpn. Вообще распределение адресации в т.ч. внутри подсетей. У нас около 200-ста филиалов по стране и соответственно есть политика адресации и выделения пространств,

было бы неплохо загнать всё это в noc.

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

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


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

L2 VPN'ы (VLAN, Q-in-Q, FR, ATM, static MPLS) у нас есть в модуле VC. MPLS VLL/VPLS (Kompella) пока ведется в Peering Management > Communities.
Имеется в виду L3 , egrp, ospf, easyvpn, dmvpn. Вообще распределение адресации в т.ч. внутри подсетей. У нас около 200-ста филиалов по стране и соответственно есть политика адресации и выделения пространств,

было бы неплохо загнать всё это в noc.

Suballocate для сетей есть и сейчас. Количество уровней вложенности ограничено только количеством бит в маске IPv4.

Можно выделить сеть 10.0.0.0/8 для приватной адресации, каждому филиалу выделить по /16 сети, каждому офису, по /21, в офисе выделить серверный и юзерский сегмент

и раздать соответсвующие права доступа. Мы делали иерархию Федеральный округ/Субъект федерации/Город/Площадка/функциональный сегмент

Если понадобится добавить или убрать уровень это делается просто добавлением или удалением сети. Все вложенные блоки и IP адреса автоматически разъезжаются по нужным блокам.

 

Таблички для area IS-IS/OSPF и для IPsec/GRE/L2TP VPN'ов сделать, в принципе, не сложно, надо только хорошо подумать, что там хранить, чтобы это было достаточно универсально.

То же самое и по телефонии, раньше этот блок был, но в процессе эволюции выпал совсем.

 

А вот насчет возможности задания связи между произвольными объектами в NOC надо будет подумать весьма серьезно. Тогда можно будет описывать связи между блоками адресов и nat pool'ами, связки для static nat, привязку к блоку адресов всяких дополнительных параметров.

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


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

Suballocate для сетей есть и сейчас. Количество уровней вложенности ограничено только количеством бит в маске IPv4.

Можно выделить сеть 10.0.0.0/8 для приватной адресации, каждому филиалу выделить по /16 сети, каждому офису, по /21, в офисе выделить серверный и юзерский сегмент

и раздать соответсвующие права доступа. Мы делали иерархию Федеральный округ/Субъект федерации/Город/Площадка/функциональный сегмент

Если понадобится добавить или убрать уровень это делается просто добавлением или удалением сети. Все вложенные блоки и IP адреса автоматически разъезжаются по нужным блокам.

Благодарю, значит не вполне разобрался в имеющемся функционале.

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


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

Дмитрий, приветствую!

 

вот в версии 0.2.2 резко усилилась "текучка" памяти noc-sae, вплоть до того, что приходится его по крону 3 раза в сутки передергивать, оно часов за 8 стало съедать до гига оперативы, надо Вам какие-нить данные с работающей системы на посмотреть откуда ноги растут?

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


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

Дмитрий, приветствую!

 

вот в версии 0.2.2 резко усилилась "текучка" памяти noc-sae, вплоть до того, что приходится его по крону 3 раза в сутки передергивать, оно часов за 8 стало съедать до гига оперативы, надо Вам какие-нить данные с работающей системы на посмотреть откуда ноги растут?

Да, хорошо бы ему пару раз SIGPROF'ом по шапке двинуть. Сразу после запуска и перед kill'ом.

 

На эту тему можно подумать. Красотизм, конечно, но может быть полезным.
Было бы неплохо, облегчает чтение, да и реализуется достаточно просто.

Базовую подсветку конфигов сделал, заодно добавил номера строк в конфигах. Так действительно повеселее читать.

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


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

Дмитрий, приветствую!

 

вот в версии 0.2.2 резко усилилась "текучка" памяти noc-sae, вплоть до того, что приходится его по крону 3 раза в сутки передергивать, оно часов за 8 стало съедать до гига оперативы, надо Вам какие-нить данные с работающей системы на посмотреть откуда ноги растут?

Одну из утечек я придавил: r1216

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


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

Пытаюсь поставить данный продукт на Debian, делаю все по мануалу.

(С питоном и postgresql вообще не знаком)

На этапе где

Exit to superuser. Verify that you can connect to the noc database as the noc user and the password.

 

# su - noc

$ psql -h localhost -U noc -W

у меня получается:

flash:/home/flash# su - noc
flash:/home/flash# usermod -s /bin/bash noc
flash:/home/flash# su - noc
noc@flash:~$ psql -h localhost -U noc -W
Password for user noc: 
psql: FATAL:  password authentication failed for user "noc"

это нормально? Какой там должен быть пароль?

PS:

В процессе инсталла была только одна проблема с установкой South, сделал эту установку не через svn,

а через easy_install.

В фале /etc/postgresql/8.3/main/pg_hba.conf везде поставил метод trust

ну и +

noc@flash:~$ netstat -an 
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:46036           0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN

Это критично, или можно продолжать установку дальше?

Изменено пользователем flash.one

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


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

Одну из утечек я придавил: r1216

спасибо, обновился, "будем посмотреть" (с) :-)

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


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

Join the conversation

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

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

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

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

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

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

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