Bulletin2

From OpenNMS

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.

Scheduling daemon to store the items for schedule. brozow has a cron like scheduler in the model importer. See also the Sun Java 1.5 schedluer (which is Quartz... this is what was used in the importer).


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.

This is to view the reports generated in the earlier use case. Whether it is via the UI or e-mail.

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. This allows a higher level of troubleshooting beyond pinging a client device. The client(PC?) device can load this poller and it will attach to the OpenNMS server, and report performance information for the poller. Initially this will be a Web Start app. When you web start the app it is a jar, that runs on the users machine. THe app will pull a config from the server. Alternative to the web start would be a CLI launched jar.

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.

Create a view where you can get better visability of the current outages that may be important to you. Enhance the center section of the main page, maybe adding a "current" status column to the section with red or green. Then clicking the column, could bring a list of current outages for the categories. This should possibly have users who want to be SLA vs current centric.

OpenNMS entity is a Node or an Interface or a Monitored Service. More data than the simple node has an outage.

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. This allows users to divide the data up for their customers, to not allow other customers access to their data. This is a huge feature for ISPs and other service providers. This provides a subset node view to a particular group via an ACL(Access Control List). Also to break down levels of acces based on operations. This also removes the dependency on Tomcat's realm. This gives us the ability to use RADIUS or LDAP or other mechanisms. Acegi is very extensible and has been used by many other java based projects. This allows us to ship OpenNMS web app as a WAR file. THIS IS WICKED COOL!

Portal use case is along the lines of this item. It allows us to customize the user experience based on the username.

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.

Mapping may have to wait, but topology is the underlying bits. This is the first step.


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.

Dynamically created graphs can also be booked marked for later retrieval. Automation of the building of the paths based on the topo.


An authenticated user browses to the OpenNMS WebUI and stops or delays the escalation of alarms and notifications by suspending an outage.

The OpenNMS user browses to an outage and can suspend the outage for a period of time. This suspension acknowledges any notifications (and perhaps alarms) but doesn't effect availability or polling schedules.

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

See http://bugzilla.opennms.org/cgi-bin/bugzilla/show_bug.cgi?id=583

joed:

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.

If outage has been "suspended" all associated notifications should be acknowledged.


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. Using an external correlation system. This is to match the ability of other NMS systems. How to get the alarms back in and out of the system. TO things like drools.

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

The OpenNMS user can view the current general (running, paused, resumed, stopped) state of a daemon(s). Additionally, status information provide can be made available by a daemon (i.e. the poller could show current polling schedule, that PSK could show the current status map, etc.)

The OpenNMS admin user can change the current status of an OpenNMS daemon including a re-initialize and start feature that causes the daemon to reprocess it's configuration and restart it's behavior.

Image:DaemonServicesUI.jpg

The scedhuled should be regarding the daemon's current status, like how many devices schedules to poll, or collectd how many devices to collect on. Also report on number of completed operations. It would also be nice to show the current QS from uncategorized log for collectd.


web page drafting tool (Mike McCall recommended this) http://dub.washington.edu/denim/

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. Make it work, so that anyone can easily build packages for the distros we currently release for. Make it "sane".

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. This is a continuos integration testing project.

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

Develop a SNMP Agent 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

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 http://opennms.org/index.php/Data_Storage_and_Display_Options for more information.

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.

Unit vs Integration testing -

Most of the tests are written after the fact, which is more of an integration test like testing against an installed system. A junit is more about testing using "fake" answers getting the expected result. In unit tests there are not interdependent pieces, like having to run eventd and all the other pieces. This is more about testing one small piece than all of the parts as a whole.

Main Success Scenario

  1. An authenticated user browses to the OpenNMS WebUI.
  2. User selects an OpenNMS entity (node, interface, service).
  3. User clicks on the "Poll Now" link in the entity menu bar.
  4. The webUI takes the user to a demand poll results page. The results will show the per-service status, in particular whether the poll is scheduled, whether it is currently running, or completed. If the poll is completed, the up/down status will be shown, as well as the message from the poll result.
  5. There will be some way to refresh the poll status page, manually and/or automatically. 


134.84.118.152

Process for use cases

1. Go through and enhance the use case. Describing the users steps in using the feature. Before you being we need to decide how the user interface should look. User experience. Don't forget to consider alternative options (errors, etc.).

2. Service layer. This is the layer that does all the work for you. It creates all the data you want to display on the screen. This middle sections is the "glue" between the UI and the DAOs/daemons. Define the operation in this layer.

3. To write tests for service layer

4. Develop service layer and its mechanisms.

5. Objects for the view, using the services of the DAOs

NOTES: Use cases: http://www.opennms.org/index.php/Dev-Jam_2006_Use_Cases

Personal tools
DevJam 2008 Sponsors
DevJam 2008 Sponsor: Google
DevJam 2008 Sponsor: Netregistry
DevJam 2008 Sponsor: Papa John's
NewEdge Networks
OpenNMS takes home the gold award!
Join the Free Software Foundation
Support This Project Commercial OpenNMS Support OpenNMS Italia Get OpenNMS at SourceForge.net. Fast, secure and Free Open Source software downloads Our Network Simulator Our Java Profiler