Перейти к содержанию



Before performing any operation on NOC upgrade be sure:

  • You have mercurial 1.3 or later
  • python's system path contain no protobuf or south

With 0.5 release new application permission system introduced, leaving old Django permissions obsolete. You need to reassing user permissions after upgrade.


New site

All NOC resources gathered together into single site: http://redmine.nocproject.org/projects/noc

New Application Framework

0.5 release is a major step towards open telecom application platform. New django-based application framework supports common development patterns while containing a lot of telecom-related features. Web interface was completely rewritten as a set of applications.

Four basic application classes are introduced:

  • Applications - common application
  • ModelApplication - wrapper for django's ModelAdmin, integrating django-based code in new framework
  • Reports - common reporting engine
  • SAApplication - Service Activation application wrapping map/reduce tasks

Each application define own set of permissions for granular access. Unittests included with every application, helping to maintain code quality

Django 1.2 migration

0.5 release based on Django 1.2, so all Django 1.2 enhancements immediately accessible from NOC applications.

New and updated third-party software in contrib/

contrib/ directory of 0.5 contains new packages and updated versions of following packages.

Protocol Buffers2.3.0

Testig Suite

0.5 release introduce new WebTest-based unittest suite with coverage reporting


0.5 release introduce tagging as universal method for additional classification of database objects

Global CSV Export/Import

0.5 release offers universal way to exchange data with scripts and third-party application by importing/exporting CSV file.

Data exchange can be performed via CLI, using::

manage.py csv-export
manage.py csv-import

commands, or via Web interface (Import link and Export selected objects admin action)

Helper scripts

Two additional helper scripts to gather diagnostic information introduced in 0.5 release

  • manage.py pythonpath - display python path
  • scripts/about - dump software components and versions for bugreports

NOC Book

Starting from 0.5 release all documentation gathered together into NOC Book <http://redmine.nocproject.org/projects/noc/docs/en/nocbook/html/index.html>_, available online


  • New user and group permission setup widget
  • "Test selected notification groups" admin action
  • NOC's configuration files are stored in backups too
  • "Pending Notifications" application

Address Space Management

Bind to VC

  • Arbitrary VC can be bound to arbitrary block

Improved navigation

  • Block preview got new text field for quick jump to entered block
  • User can set bookmarks on arbitrary page. Bookmarked blocks can easily be accessed via My Networks drop list
  • Quick jump in "Assigned Addresses"
  • IPv4 Block Bookmarks

All Allocated Blocks Application

  • New "All Allocated Blocks" report introduced. All allocated blocks shown in collapsed tree for overall analysis

Service Activation

New profiles

0.5 release introduces support for 6 new platforms

  • HP.ProCurve
  • Extreme.XOS
  • Cisco.CatOS
  • Brocade.FabricOS
  • AlliedTelesis.AT8000S
  • AlliedTelesis.AT8500

In addition, Generic.Host offers a stub profile for managed objects without any specific personality.

Topology discovery

Experimental L2 topology discovery application introduced in 0.5 release. The distinctive features of NOC topology discovery are:

  • Works on L2 with physical links
  • Aggregated-Ethernet (LAG) - aware
  • Vendor-independentent
  • Supports different discovery algorithms, some algorithms can be used to refine results of another
  • Can support vendor-specific extensions
  • MAC Address (common and per-vlan) and LLDP discovery algorithms bundled

New Applications

Version Inventory

Simple application generating version and platform report for selected objects

MAC Report

Displays MAC Addresses, and all ports that learned them

Show switchports

Display existing switchports and VLAN mappings

Run Commands

Run a series of commands on all selected object and display result

Switchport Validation

Check all VLANs mapped to switchport has active mac address and display report

Check supported.csv

Generate diffs for supported.csv for selected objects

New interfaces


Common interface for reduce tasks


Interface for retrieving port-channel status and vlan mappings via ..get_portchannel scripts. 0.5 release includes support for Force10.FTOS, Cisco.IOS and HP.ProCurve profiles


Interface for retrieving operation status of interfaces via ..get_interface_status scripts. 0.5 release includes support for Force10.FTOS profiles.


Interface for retrieving switchport status and vlan mappings via ..get_switchport scripts. 0.5 release includes support for Force10.FTOS profiles.


Interface for retrieving chassis MAC address via ..get_chassis_id scripts. 0.5 release includes support for Force10.FTOS, Cisco.IOS and HP.ProCurve profiles.


Interface for retrieving LLDP neighbors information via ..get_lldp_neighbors sscrips. 0.5 release includes support for Force10.FTOS, Cisco.IOS and HP.ProCurve profiles.

New scripts

O.5 release includes new scripts extending functionality of existing profiles:

  • DLink.DES3xxx.get_mac_address_table
  • DLink.DGS3xxx.get_mac_address_table
  • DLink.DES3xxx.get_arp
  • DLink.DGS3xxx.get_arp
  • HP.ProCurve.get_mac_address_table
  • HP.GbE2.get_mac_address_table
  • Alcatel.OS62xx.get_mac_address_table `

SNMP Bulk Operations

0.5 introduces support for SNMP BULK operations, greatly improving performance of SNMP code

API Enhancements

  • Profile.pattern_more can accept a list of (pattern,command), leaving .pattern_more_start, .pattern_more_end, .command_more_start, .command_more_end obsolete
  • Profile.cleaned_input method for profile-specific input cleanup
  • Profile.rogue_chars can accept regular expressions
  • InstanceOfParameter can accept string as class name
  • self.snmp.gethext() can accept min_index and max_index optional parameters to narrow GET range
  • HP-like mac addresses (aabbcc-ddeeff) are processed correctly
  • Interfaces can perform separate cleaning of input and output arguments via Interfaces.script_clean_input() and Interfaces.script_clean_output() methods
  • Profile.convert_interface_name() performs interface name normalization
  • InterfaceNameParameter introduces to handle interface names
  • All equipment output between authentication and first prompt collected and accessible via self.motd construction in scripts
  • ReduceTask.create_task can accept a list in map_script to perform several different scripts at once
  • self.script.has_script(...) construction for scripts
  • pyRules can be used as reduce scripts
  • xml_to_table() and list_to_ranges() helper methods
  • self.hexstring_to_mac() helper method for scripts

User Interface Improvements

  • Object groups deprecated and removed in favor of tags
  • Search by selector's name in Managed Object Selectors
  • Display selector description in index list
  • Access to the Managed Object can be granted to group
  • Display progressbar when executing map/reduce task
  • Merge "is_managed" and "is_configuration_managed" into single "Status" column in Managed Objects list
  • Sort object's scripts by name

Improved Compatibility and Reliability

  • Intelligent echo stripping and adaptive prompt patterns in CLI engine
  • TimeOutError raise when snmp.getnext left in stale state
  • Improved compatibility with Cisco 3750/CBS31X0
  • Correct handling of MapTask.retries_left parameter
  • Do not count map task, completed with ERR_OVERLOAD as retry
  • SAE terminates all activator's task when connection became lost
  • Do not hang ssh session when remote host key changed
  • Run objects scripts as map/reduce task
  • manage.py debug-script can debug snmp code correctly
  • Better error messages for DictParameter's InterfaceErrors
  • Display failure details when script failed

Fault Management

New Event Classes

  • Autonegotiation Failed
  • LBD Loop Detected
  • LBD Loop Recovered

New MIBs


New Rules

  • Zyxel.ZyNOS Authonegotiation Failed SYSLOG
  • DLink.DES3xxx Login Success SYSLOG
  • DLink.DES3xxx Logout SYSLOG
  • DLink.DES3xxx Login Failed SYSLOG
  • DLink.DES3xxx Session timed out SYSLOG
  • DLink.DES3xxx LBD Loop Detected SYSLOG

"Ignore Event" rules

0.5 release introduces "Ignore Event" rules as new method to strip unwanted events just at collector, protecting database and classifier from overload

User Interface improvements

  • Default names for classification rules, created from events, follow common convention
  • "python code" admin action for event classes and classification rules
  • Rule sheet preview replaced by "Classification Rules" report
  • Object information added to subject and body of notifications, sent from post-processing rules

API Changes

  • EventClass.trigger replaced by pyRule
  • event variable accessible from event templates

Virtual Circuit Management

  • VLAN import rewritten as map/reduce task

Peering Management

  • 32-bit ASN support

Knowledge Base

User interface improvements

  • Redirect to Article preview after saving
  • Categories deprecated and removed in favor of tags

Extended rack macro

<slot> tag introduced, allowing specifying modules and blade servers in <allocation>. In addition, <slot> and allocation tags got new attributes: model, hostname, description, assetno, serial, href.

search macro supports tags

<tags> attribute allows to search tagged articles