Dev-Jam 2006/Use Cases

From OpenNMS
Jump to navigation Jump to search


Use cases

An authenticated user can schedule the generation of availability reports in the WebUI - sartin

Currently scheduling of reports can be achieved by creating a cronjob on the system level and initiate the generation of the report. Add a Possibility to select a report and schedule the generation of that report in the webUI.

The user should be able to select options for the frequency of the report at minimum, one-time, daily, weekly, monthly, or yearly. This could be accomplished with either the Spring Quartz scheduler or the Java5 scheduler. At some point in time we need to centralize the scheduling.

An authenticated user browses to the OpenNMS WebUI and Views scheduled Availability Reports - sartin

Current use of Availabiity Reports in OpenNMS is that reports are generated on demand and emailed to the user that demanded the report. Change the usage so that users are able to browse and view scheduled they are authorized to see as well as their requested reports. Reports that are currently being generated should be reflected as such in this interface.

An authenticated user browses to the OpenNMS WebUI and Web Starts a distributed poller - brozow

OpenNMS supports polling from remote locations. In cases where users are reporting problems with either performance or with outages, a network manager will define a polling package for a user with the intent that the user will login and webstart the poller.jar and begin polling from that location. The user, in this case, will browse to the OpenNMS Web Application, log in, and click on the now available "start service monitor" link.

An authenticated user browses to the OpenNMS WebUI and views current status of OpenNMS Entities - FASTjay

The current OpenNMS web application main page displays outages and a rolling window availability %, however, users want a more robust status indicator. For example, a category that is meeting its 24hr availability will display as green even though there is currently an outage.

Distributed Polling - brozow

An authenticated user browses to the OpenNMS WebUI and views current status of OpenNMS entities as reported from multiple pollers

Currently, OpenNMS represents the status of a service associated with one node/interface. When OpenNMS is distributed, the same service can be monitored from multiple locations. The status of that service should be available as viewed from each location.

Note: The ability to show the status of an alarm/alarms associated with the service will be important when alarm behavior is more tightly coordinated with correlation and notifications.

Demand polling - mhuot

Functional Spec: Demand polling

An authenticated user browses to the OpenNMS WebUI and is able to view OpenNMS entities that match their ACL - drv4doe

Current OpenNMS security is dependent on Tomcat realm code. This moves security outside of the Tomcat container and is able to be used in the Web Application interface as well as in the OpenNMS API and integration code (Web Services, XML-RPC, RMI, JMS, etc.) This would be using Acegi probably.

I think Zac Tolly has some version of this implemented in his environment.

An authenticated user browses to the OpenNMS WebUI and can graphically view OpenNMS entity relationships in layer-2/layer-3 topology map - russo/djgregor

Replace the current OpenNMS mapping code with mapping code from the Italian Adventures branch so that the user has a graphical view of the layer2/layer3 topology based on discovery code from Italian Adventures branch.

An authenticated user browses to the OpenNMS WebUI and can build RRD graphs from multiple data sources that dynamically update - sample slice

The user is presented with a blank RRD graph and dynamically can add compatible data sources from a node(s) that is graphed immediately based on a default range and scale. Range and scale can be adjusted as well. This graph can be saved as a template for later use to make graph building faster by allowing the user to simply drop a node(s) on the graph and the corresponding data sources, ranges, and scales will be set in the template.

Dynamically created graphs can also be booked marked for later retrieval.

Development Solution (This is a HOWTO that will be moved to Bulletin #2)

  1. Create service layer Interface ( that defines the methods required to support this use case
  2. Create supporting model classes for the service layer
  3. Create tests for service layer
  4. Create a Mock Implementation service layer that passes tests
    1. Create Web View code (simo)
    2. Create persistence code (simo)
  5. Create application context wiring code
  6. Create integration tests methods

An authenticated user browses to the OpenNMS WebUI and views a cross section of OpenNMS entities and their current status and rolling window availability - sfb


The idea here is to enhance the viewsdisplay configuration and code so that a cross section of categories can be displayed. In this example, the "Data Center" and "ISP Info columns are very much like the single column of categories we have now. In the center is three more columns that have categories high, med, low crossed with "Access Controller", "Access Point", and "BCPC" categories.

Make sense?

An authenticated user browses to the OpenNMS WebUI and views topology correlated outages - ayres

The user browses to the current list of outages and can expand an outage showing all correlated events based on node topology (current correlation) and network related outages (layer2/layer3). The user can see the impacted services of an outages (root cause) based on topology.

An authenticated user browses to the OpenNMS WebUI and views business logic correlated outages - Gallen

OpenNMS is enhanced with rule based correlation (see JSR-94) and the user is able to outage, alarm, and notification behaviors based on business rules.

File:Ossj usecase.pdf

An authenticated user browses to the OpenNMS WebUI and can view/manage the current status of the OpenNMS Daemons - Kumar/Tiffani

Functional Spec: Services

An authenticated user browses to the OpenNMS WebUI and stops or delays the escalation of alarms and notifications - joed

The OpenNMS user browses to an outage and can suspend the outage for a period of time. This suspension also suspends notification escalations, other daemon schedules such as polling and data collection, etc.

       We need to add some detail on how the interface for this works.



Thank you, I think this is a killer usecase. I started looking at possible venues, and I can see right away the design of a uei to notify all services of 'Ignore Me For A while'/'This Time' or manipulating the Database while tracking back to the initial outage reported for a purge of outstanding notices, as well as setting a time to resolution that of course should be incremented from Date.RightNow as a helpdesk continues to 'stall' all notifications.

I'd like to be able to look at outages, have a link to Outage Administration, say 'ignore' this outage and the end-result would block any further transmission of notices in a large network, i.e the big red stop-button.

Non-WebUI related use cases:

Maven builds packages - urandom/Sortova "The Dream Team"

The Maven2 build process is enhanced to support DPKG, RPM, and PKG packaging. No-arch packaging is implemented.

OpenNMS Daemons are Spring Loaded to support dependency injection of DAOs, etc. - brozow

The current JMX implementation is replaced with a Spring based manager so that daemons are dependency injected ("wired") with required properties instead of the complicated initialization phase.

A JMX implementation of the new manager API is implemented. (Other possible implementations are secure RMI, XML-RPC, Web Services, and JMS for asynchronous integration.

System Testing, System Adminstration and Builds - J-Bob, Mike McCall

Provide validation of changes and verification that everything works. Tests both the daemons and web ui as well as the installation images (.rpm and .deb). In addition this team is responsibile to maintain cruisecontrol and/or continuum.

Create a Mock agent to handle the SNMP based tests - jeffg

Develop a SNMP Agent (MockSNMPAgent) that responds with test data for use in validating, scanning, collection, and topology code. Combine it with the MockNetwork code to provide an entire test harness. Use SNMP4J-Agent for this; see SNMP4J-Agent Notes

User can build OpenNMS with valid unit tests that run in < 5 minutes and valid integration tests that run in < 30 minutes

This is just an indication that we want to improve the overall speed of the tests so that they are run with more frequency.

An authenticated user browses to the OpenNMS WebUI and views performance data by domain and ifAlias - Ayres and ???

This is an optional way to store and view rrd performance data. It was submitted to head in working order but is not working now due to major rewriting of collectd. See for more information.