0.5¶
Migration¶
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.
General¶
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.
Package | Version |
---|---|
WebOb | 0.9.8 |
WebTest | 1.2.1 |
South | 0.7.1 |
docutils | 0.7 |
Django | 1.2 |
django-tagging | 0.3.1 |
jquery-ui | 1.8 |
Protocol Buffers | 2.3.0 |
Testig Suite¶
0.5 release introduce new WebTest-based unittest suite with coverage reporting
Tagging¶
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 pathscripts/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
Main¶
- 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¶
IReduceTask¶
Common interface for reduce tasks
IGetPortchannel¶
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
IGetInterfaceStatus¶
Interface for retrieving operation status of interfaces via ..get_interface_status scripts. 0.5 release includes support for Force10.FTOS
profiles.
IGetSwitchport¶
Interface for retrieving switchport status and vlan mappings via ..get_switchport scripts. 0.5 release includes support for Force10.FTOS
profiles.
IGetChassisID¶
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.
IGetLLDPNeighbors¶
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¶
- RMON-MIB
- TOKEN-RING-RMON-MIB
- RMON2-MIB
- P-BRIDGE-MIB
- Q-BRIDGE-MIB
- JUNIPER-JS-SMI
- JUNIPER-JS-SCREENING-MIB
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