Search in sources :

Example 56 with DirtiesContext

use of org.springframework.test.annotation.DirtiesContext in project opennms by OpenNMS.

the class DependencyRulesIT method testSimpleDownUpCase.

@Test
@DirtiesContext
public void testSimpleDownUpCase() throws Exception {
    // Get engine
    DroolsCorrelationEngine engine = findEngineByName("dependencyRules");
    // Antecipate down event
    getAnticipator().reset();
    anticipate(transform(findPathToSubcomponent(m_svc, "NA-SvcElemComp", "9876,jnxVpnPw-vcid(50)"), toComponentImpactedEvent(17)));
    // Generate down event
    System.err.println("SENDING VpnPwDown EVENT!!");
    // "NA-SvcElemComp", "9876,jnxVpnPw-vcid(50)"
    engine.correlate(createVpnPwDownEvent(17, m_pe2NodeId, "10.1.1.1", "5", "ge-3/1/4.50"));
    // Check down event
    getAnticipator().verifyAnticipated();
    // Anticipate up event
    getAnticipator().reset();
    anticipate(transform(findPathToSubcomponent(m_svc, "NA-SvcElemComp", "9876,jnxVpnPw-vcid(50)"), toComponentResolvedEvent(17)));
    // Generate up event
    System.err.println("SENDING VpnPwUp EVENT!!");
    engine.correlate(createVpnPwUpEvent(19, m_pe2NodeId, "10.1.1.1", "5", "ge-3/1/4.50"));
    // Check up event
    getAnticipator().verifyAnticipated();
    // Memory should be clean!
    assertEquals(0, engine.getKieSessionObjects().size());
}
Also used : DroolsCorrelationEngine(org.opennms.netmgt.correlation.drools.DroolsCorrelationEngine) Test(org.junit.Test) DirtiesContext(org.springframework.test.annotation.DirtiesContext)

Example 57 with DirtiesContext

use of org.springframework.test.annotation.DirtiesContext in project opennms by OpenNMS.

the class DependencyRulesIT method testTwoCauseDownUpCase.

@Test
@DirtiesContext
public void testTwoCauseDownUpCase() throws Exception {
    // Get engine
    DroolsCorrelationEngine engine = findEngineByName("dependencyRules");
    // Antecipate down event
    getAnticipator().reset();
    anticipate(transform(findPathToSubcomponent(m_svc, "NA-SvcElemComp", "9876,jnxVpnPw-vcid(50)"), toComponentImpactedEvent(17)));
    // Generate down event
    System.err.println("SENDING VpnPwDown EVENT!!");
    // "NA-SvcElemComp", "9876,jnxVpnPw-vcid(50)"
    engine.correlate(createVpnPwDownEvent(17, m_pe2NodeId, "10.1.1.1", "5", "ge-3/1/4.50"));
    // Check down event
    getAnticipator().verifyAnticipated();
    getAnticipator().reset();
    // Second outage
    anticipate(transform(singleton(findSubcomponent(m_svc, "NA-SvcElemComp", "9876,jnxVpnIf")), toComponentImpactedEvent(18)));
    System.err.println("SENDING VpnIfDown EVENT!!");
    engine.correlate(createVpnIfDownEvent(18, m_pe2NodeId, "10.1.1.1", "5", "ge-3/1/4.50"));
    getAnticipator().verifyAnticipated();
    getAnticipator().reset();
    // expect only the resolved subelement to come back up
    anticipate(transform(singleton(findSubcomponent(m_svc, "NA-SvcElemComp", "9876,jnxVpnPw-vcid(50)")), toComponentResolvedEvent(17)));
    // Generate up event
    System.err.println("SENDING VpnPwUp EVENT!!");
    engine.correlate(createVpnPwUpEvent(19, m_pe2NodeId, "10.1.1.1", "5", "ge-3/1/4.50"));
    // Check up event
    getAnticipator().verifyAnticipated();
    getAnticipator().reset();
    anticipate(transform(findPathToSubcomponent(m_svc, "NA-SvcElemComp", "9876,jnxVpnIf"), toComponentResolvedEvent(18)));
    System.err.println("SENDING VpnIfUp EVENT!!");
    engine.correlate(createVpnIfUpEvent(20, m_pe2NodeId, "10.1.1.1", "5", "ge-3/1/4.50"));
    getAnticipator().verifyAnticipated();
    // Memory should be clean!
    assertEquals(0, engine.getKieSessionObjects().size());
}
Also used : DroolsCorrelationEngine(org.opennms.netmgt.correlation.drools.DroolsCorrelationEngine) Test(org.junit.Test) DirtiesContext(org.springframework.test.annotation.DirtiesContext)

Example 58 with DirtiesContext

use of org.springframework.test.annotation.DirtiesContext in project opennms by OpenNMS.

the class DependencyRulesIT method testTwoOutagesCase.

@Test
@DirtiesContext
public void testTwoOutagesCase() throws Exception {
    // Test what happens to the parent when there are two children impacted one is resolved
    // Get engine
    DroolsCorrelationEngine engine = findEngineByName("dependencyRules");
    // Anticipate 1st down event
    getAnticipator().reset();
    anticipate(createComponentImpactedEvent(findSubcomponent(m_svc, "NA-SvcElemComp", "8765,jnxVpnPw-vcid(50)"), 17));
    anticipate(createComponentImpactedEvent(findSubcomponent(m_svc, "NA-ServiceElement", "8765"), 17));
    anticipate(createComponentImpactedEvent(findSubcomponent(m_svc, "NA-Service", "123"), 17));
    // Generate down event
    System.err.println("SENDING VpnPwDown EVENT!!");
    engine.correlate(createVpnPwDownEvent(17, m_pe1NodeId, "10.1.1.1", "5", "ge-1/0/2.50"));
    // Check down event
    getAnticipator().verifyAnticipated();
    // Anticipate 2nd down event
    getAnticipator().reset();
    anticipate(createComponentImpactedEvent(findSubcomponent(m_svc, "NA-SvcElemComp", "9876,jnxVpnPw-vcid(50)"), 18));
    anticipate(createComponentImpactedEvent(findSubcomponent(m_svc, "NA-ServiceElement", "9876"), 18));
    // Should we get this?
    // anticipate(  createComponentImpactedEvent( "Service", "CokeP2P", "NA-Service", "123", 18 ) );
    // Generate another down event for the other PE
    System.err.println("SENDING 2nd VpnPwDown EVENT!!");
    engine.correlate(createVpnPwDownEvent(18, m_pe2NodeId, "10.1.1.2", "5", "ge-3/1/4.50"));
    // Check 2nd down event
    getAnticipator().verifyAnticipated();
    // Anticipate up event
    getAnticipator().reset();
    anticipate(createComponentResolvedEvent(findSubcomponent(m_svc, "NA-SvcElemComp", "8765,jnxVpnPw-vcid(50)"), 17));
    anticipate(createComponentResolvedEvent(findSubcomponent(m_svc, "NA-ServiceElement", "8765"), 17));
    // Generate up event
    System.err.println("SENDING VpnPwUp EVENT!!");
    engine.correlate(createVpnPwUpEvent(19, m_pe1NodeId, "10.1.1.1", "5", "ge-1/0/2.50"));
    // Check up event
    getAnticipator().verifyAnticipated();
    // Anticipate 2nd up event
    getAnticipator().reset();
    anticipate(createComponentResolvedEvent(findSubcomponent(m_svc, "NA-SvcElemComp", "9876,jnxVpnPw-vcid(50)"), 18));
    anticipate(createComponentResolvedEvent(findSubcomponent(m_svc, "NA-ServiceElement", "9876"), 18));
    anticipate(createComponentResolvedEvent(findSubcomponent(m_svc, "NA-Service", "123"), 18));
    // Generate up event
    System.err.println("SENDING VpnPwUp EVENT!!");
    engine.correlate(createVpnPwUpEvent(20, m_pe2NodeId, "10.1.1.2", "5", "ge-3/1/4.50"));
    // Check up event
    getAnticipator().verifyAnticipated();
    // Memory should be clean!
    assertEquals(0, engine.getKieSessionObjects().size());
}
Also used : DroolsCorrelationEngine(org.opennms.netmgt.correlation.drools.DroolsCorrelationEngine) Test(org.junit.Test) DirtiesContext(org.springframework.test.annotation.DirtiesContext)

Example 59 with DirtiesContext

use of org.springframework.test.annotation.DirtiesContext in project opennms by OpenNMS.

the class DependencyRulesIT method testTwoOutagesTwoResolutionsCase.

// Test two down and two up events where the initial event that caused the propagation is
// resolved but a new component goes down. The expectation is that the service should remain
// down instead of going back up and then down again. This was reproduced with the following :
// echo "Send IfDown and PwDown"
// send-event.pl --parm "jnxVpnIfVpnName ge-1/3/2.1" --parm "jnxVpnIfVpnType 5" -n 5 uei.opennms.org/vendor/Juniper/traps/jnxVpnIfDown
// send-event.pl  --parm "jnxVpnPwVpnName ge-1/3/2.1" --parm "jnxVpnPwVpnType 5" -n 5 uei.opennms.org/vendor/Juniper/traps/jnxVpnPwDown
// sleep 10
// echo "Send IfUp and PwUp in same order this causes issue with clearing"
// send-event.pl --parm "jnxVpnIfVpnName ge-1/3/2.1" --parm "jnxVpnIfVpnType 5" -n 5 uei.opennms.org/vendor/Juniper/traps/jnxVpnIfUp
// send-event.pl --parm "jnxVpnPwVpnName ge-1/3/2.1" --parm "jnxVpnPwVpnType 5" -n 5 uei.opennms.org/vendor/Juniper/traps/jnxVpnPwUp
@Test
@DirtiesContext
public void testTwoOutagesTwoResolutionsCase() throws Exception {
    // Test what happens to the parent when there are two children impacted one is resolved
    // Get engine
    DroolsCorrelationEngine engine = findEngineByName("dependencyRules");
    // Anticipate 1st down event
    getAnticipator().reset();
    anticipate(createComponentImpactedEvent(findSubcomponent(m_svc, "NA-SvcElemComp", "8765,jnxVpnIf"), 17));
    anticipate(createComponentImpactedEvent(findSubcomponent(m_svc, "NA-ServiceElement", "8765"), 17));
    anticipate(createComponentImpactedEvent(findSubcomponent(m_svc, "NA-Service", "123"), 17));
    // Generate vpn if down event
    System.err.println("SENDING VpnIfDown EVENT!!");
    engine.correlate(createVpnIfDownEvent(17, m_pe1NodeId, "10.1.1.1", "5", "ge-1/0/2.50"));
    // Check down event
    getAnticipator().verifyAnticipated();
    // Anticipate 2nd down event
    getAnticipator().reset();
    anticipate(createComponentImpactedEvent(findSubcomponent(m_svc, "NA-SvcElemComp", "8765,jnxVpnPw-vcid(50)"), 18));
    // anticipate(  createComponentImpactedEvent( findSubcomponent (m_svc, "NA-ServiceElement", "8765"), 18 ) );
    // Should we get this?
    // anticipate(  createComponentImpactedEvent( "Service", "CokeP2P", "NA-Service", "123", 18 ) );
    // Generate vpn down event
    System.err.println("SENDING VpnPwDown EVENT!!");
    engine.correlate(createVpnPwDownEvent(18, m_pe1NodeId, "10.1.1.1", "5", "ge-1/0/2.50"));
    // Check 2nd down event
    getAnticipator().verifyAnticipated();
    // Anticipate up event
    getAnticipator().reset();
    anticipate(createComponentResolvedEvent(findSubcomponent(m_svc, "NA-SvcElemComp", "8765,jnxVpnIf"), 17));
    // The next two should not happen until the underlying subcomponents are also resolved
    // anticipate(  createComponentResolvedEvent( findSubcomponent (m_svc, "NA-ServiceElement", "8765"), 17 ) );
    // anticipate(  createComponentResolvedEvent( findSubcomponent (m_svc, "NA-Service", "123"), 17 ) );
    // anticipate(  createComponentImpactedEvent( findSubcomponent (m_svc, "NA-ServiceElement", "8765"), 18 ) );
    // anticipate(  createComponentImpactedEvent( findSubcomponent (m_svc, "NA-Service", "123"), 18 ) );
    // Generate up event
    System.err.println("SENDING VpnIfUp EVENT!!");
    engine.correlate(createVpnIfUpEvent(19, m_pe1NodeId, "10.1.1.1", "5", "ge-1/0/2.50"));
    // Check up event
    getAnticipator().verifyAnticipated();
    // Anticipate 2nd up event
    getAnticipator().reset();
    anticipate(createComponentResolvedEvent(findSubcomponent(m_svc, "NA-SvcElemComp", "8765,jnxVpnPw-vcid(50)"), 18));
    anticipate(createComponentResolvedEvent(findSubcomponent(m_svc, "NA-ServiceElement", "8765"), 18));
    anticipate(createComponentResolvedEvent(findSubcomponent(m_svc, "NA-Service", "123"), 18));
    // Generate up event
    System.err.println("SENDING VpnPwUp EVENT!!");
    engine.correlate(createVpnPwUpEvent(20, m_pe1NodeId, "10.1.1.1", "5", "ge-1/0/2.50"));
    // Check up event
    getAnticipator().verifyAnticipated();
    // Memory should be clean!
    assertEquals(0, engine.getKieSessionObjects().size());
}
Also used : DroolsCorrelationEngine(org.opennms.netmgt.correlation.drools.DroolsCorrelationEngine) Test(org.junit.Test) DirtiesContext(org.springframework.test.annotation.DirtiesContext)

Example 60 with DirtiesContext

use of org.springframework.test.annotation.DirtiesContext in project opennms by OpenNMS.

the class DependencyRulesIT method testMultipleDownAndSingleUpCase.

@Test
@DirtiesContext
public // @Ignore("not yet implemented")
void testMultipleDownAndSingleUpCase() throws Exception {
    // Get engine
    DroolsCorrelationEngine engine = findEngineByName("dependencyRules");
    // Anticipate down event
    getAnticipator().reset();
    anticipate(createComponentImpactedEvent(findSubcomponent(m_svc, "NA-SvcElemComp", "9876,jnxVpnPw-vcid(50)"), 17));
    anticipate(createComponentImpactedEvent(findSubcomponent(m_svc, "NA-ServiceElement", "9876"), 17));
    anticipate(createComponentImpactedEvent(findSubcomponent(m_svc, "NA-Service", "123"), 17));
    // Generate down event
    System.err.println("SENDING VpnPwDown EVENT!!");
    engine.correlate(createVpnPwDownEvent(17, m_pe2NodeId, "10.1.1.1", "5", "ge-3/1/4.50"));
    // Check down event
    getAnticipator().verifyAnticipated();
    // Generate additional down event - nothing should happen
    getAnticipator().reset();
    System.err.println("SENDING VpnPwDown EVENT!!");
    engine.correlate(createVpnPwDownEvent(18, m_pe2NodeId, "10.1.1.1", "5", "ge-3/1/4.50"));
    getAnticipator().verifyAnticipated();
    // Anticipate up event
    getAnticipator().reset();
    anticipate(createComponentResolvedEvent(findSubcomponent(m_svc, "NA-SvcElemComp", "9876,jnxVpnPw-vcid(50)"), 17));
    anticipate(createComponentResolvedEvent(findSubcomponent(m_svc, "NA-ServiceElement", "9876"), 17));
    anticipate(createComponentResolvedEvent(findSubcomponent(m_svc, "NA-Service", "123"), 17));
    // Generate up event
    System.err.println("SENDING VpnPwUp EVENT!!");
    engine.correlate(createVpnPwUpEvent(19, m_pe2NodeId, "10.1.1.1", "5", "ge-3/1/4.50"));
    // Check up event
    getAnticipator().verifyAnticipated();
}
Also used : DroolsCorrelationEngine(org.opennms.netmgt.correlation.drools.DroolsCorrelationEngine) Test(org.junit.Test) DirtiesContext(org.springframework.test.annotation.DirtiesContext)

Aggregations

DirtiesContext (org.springframework.test.annotation.DirtiesContext)86 Test (org.junit.Test)83 Exchange (org.apache.camel.Exchange)21 Event (org.opennms.netmgt.xml.event.Event)19 Processor (org.apache.camel.Processor)11 DroolsCorrelationEngine (org.opennms.netmgt.correlation.drools.DroolsCorrelationEngine)10 IOException (java.io.IOException)9 NCSComponent (org.opennms.netmgt.model.ncs.NCSComponent)9 ProducerTemplate (org.apache.camel.ProducerTemplate)7 Ignore (org.junit.Ignore)7 SnmpValue (org.opennms.netmgt.snmp.SnmpValue)6 JsonNode (com.fasterxml.jackson.databind.JsonNode)5 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)5 LinkedHashMap (java.util.LinkedHashMap)5 CommonBindyTest (org.apache.camel.dataformat.bindy.CommonBindyTest)5 FactHandle (org.kie.api.runtime.rule.FactHandle)5 SnmpValueFactory (org.opennms.netmgt.snmp.SnmpValueFactory)5 Message (org.apache.camel.Message)4 BigDecimal (java.math.BigDecimal)3 Registration (org.opennms.core.soa.Registration)3