Status: Resolved (View Workflow)
Affects Version/s: 1.10.0
Fix Version/s: 14.0.0
Component/s: Provisioning / Discovery / Importer
Security Level: Default (Default Security Scheme)
Oracle JDK 7u0
Sprint:NMS Sprint 1
I make heavy use of surveillance categories, and I primarily use provisioning group policies to control category membership on nodes.
A common workflow for me is to add a new node to an existing provisioning group that has existing nodes in it. When I do this, I've noticed that all of the policy-defined category memberships of nodes that are already in the group disappear as provisiond goes through some kind of rescan/reimport process on the existing nodes. Since it takes a while to complete the scan + import process, it can be minutes where an existing node will lose the majority of its categories. Obviously this is a problem for anything using those categories (and I use a lot of category-based filters).
I have also noticed that per-node category memberships defined in the requisition, rather than via a group-wide foreign source policy, are unaffected.
Steps to reproduce:
- Create a two surveillance categories "TestPolicyCategory" and "TestRequisitionCategory"
- Create the following provisioning group "TestGroup" and synchronize it:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<foreign-source date-stamp="2011-11-17T12:52:38.522-06:00" name="TestGroup" xmlns="http://xmlns.opennms.org/xsd/config/foreign-source">
<detector class="org.opennms.netmgt.provision.detector.icmp.IcmpDetector" name="ICMP"/>
<detector class="org.opennms.netmgt.provision.detector.snmp.SnmpDetector" name="SNMP"/>
<policy class="org.opennms.netmgt.provision.persist.policies.NodeCategorySettingPolicy" name="SetCategory">
<parameter value="TestPolicyCategory" key="category"/>
<parameter value="ALL_PARAMETERS" key="matchBehavior"/>
- Find a node that takes a little while to scan (SNMP-enabled Windows boxes with SNMP Informant seem to work well in our environment). Use the "Add Node" link in the WebUI to provision this node as "TestNode1" into the provisioning group "TestGroup". Assign the additional category "TestRequisitionCategory" to the node via the dropdowns available through this UI.
- Go to the node page of the newly provisioned node TestNode1, and refresh until the Surveillance Category Memberships section shows both "TestRequsitionCategory" and "TestPolicyCategory".
- Add another node to the test provisioning group (or you may simply be able to just hit synchronize again)
- (BUG) Hit refresh on the node page of TestNode1 and watch as TestPolicyCategory disappears for the duration of the provisiond scan/import process (starting with the nodeUpdated event), then reappears once the nodeScanCompleted event occurs. However, TestRequisitionCategory is unaffected.
Expected behavior would be for the node to retain its existing policy-based category memberships during the scan/import process, and have any adjustments take place only once the process is complete.