Search in sources :

Example 6 with Pipeline

use of loghub.Pipeline in project LogHub by fbacchella.

the class TestTrap method testtrapv1Generic.

@Ignore
@Test
public void testtrapv1Generic() throws InterruptedException, IOException {
    BlockingQueue<Event> receiver = new ArrayBlockingQueue<>(2);
    SnmpTrap r = new SnmpTrap(receiver, new Pipeline(Collections.emptyList(), "testbig", null));
    r.setPort(0);
    Map<String, Object> props = new HashMap<>();
    props.put("mibdirs", new String[] { "/usr/share/snmp/mibs", "/tmp/mibs" });
    Assert.assertTrue(r.configure(new Properties(props)));
    r.start();
    CommandResponderEvent trapEvent = new CommandResponderEvent(new MessageDispatcherImpl(), new DefaultUdpTransportMapping(), TransportIpAddress.parse("127.0.0.1/162"), 0, 0, null, 0, null, null, 0, null);
    PDUv1 pdu = new PDUv1();
    pdu.setEnterprise(new OID("1.3.6.1.4.1.232"));
    pdu.setAgentAddress(new IpAddress());
    pdu.setGenericTrap(1);
    pdu.setTimestamp(10);
    pdu.add(new VariableBinding(new OID("1.3.6.1.6.3.1.1.4.1"), new OctetString("lldpRemTablesChange")));
    trapEvent.setPDU(pdu);
    r.processPdu(trapEvent);
    Event e = receiver.poll();
    Assert.assertEquals(0.1, (Double) e.get("time_stamp"), 1e-10);
    Assert.assertEquals("warmStart", e.get("generic_trap"));
    Assert.assertEquals("compaq", e.get("enterprise"));
    Assert.assertEquals(null, e.get("specific_trap"));
    Assert.assertEquals("lldpRemTablesChange", e.get("snmpTrapOID"));
    Assert.assertEquals(InetAddress.getByName("0.0.0.0"), e.get("agent_addr"));
    r.interrupt();
}
Also used : OctetString(org.snmp4j.smi.OctetString) HashMap(java.util.HashMap) CommandResponderEvent(org.snmp4j.CommandResponderEvent) MessageDispatcherImpl(org.snmp4j.MessageDispatcherImpl) DefaultUdpTransportMapping(org.snmp4j.transport.DefaultUdpTransportMapping) OctetString(org.snmp4j.smi.OctetString) OID(org.snmp4j.smi.OID) Properties(loghub.configuration.Properties) Pipeline(loghub.Pipeline) ArrayBlockingQueue(java.util.concurrent.ArrayBlockingQueue) CommandResponderEvent(org.snmp4j.CommandResponderEvent) Event(loghub.Event) IpAddress(org.snmp4j.smi.IpAddress) TransportIpAddress(org.snmp4j.smi.TransportIpAddress) PDUv1(org.snmp4j.PDUv1) VariableBinding(org.snmp4j.smi.VariableBinding) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 7 with Pipeline

use of loghub.Pipeline in project LogHub by fbacchella.

the class TestUdp method testsend.

private void testsend(int size) throws IOException, InterruptedException {
    // Generate a locally binded random socket
    DatagramSocket socket = new DatagramSocket(0, InetAddress.getLoopbackAddress());
    String hostname = socket.getLocalAddress().getHostAddress();
    int port = socket.getLocalPort();
    socket.close();
    InetSocketAddress destaddr = new InetSocketAddress(hostname, port);
    BlockingQueue<Event> receiver = new ArrayBlockingQueue<>(10);
    Udp r = new Udp(receiver, new Pipeline(Collections.emptyList(), "testone", null));
    r.setBufferSize(size + 10);
    r.setHost(hostname);
    r.setPort(port);
    r.setDecoder(new StringCodec());
    Assert.assertTrue(r.configure(new Properties(Collections.emptyMap())));
    r.start();
    int originalMessageSize = 0;
    try (DatagramSocket send = new DatagramSocket()) {
        StringBuilder buffer = new StringBuilder();
        while (buffer.length() <= size) {
            buffer.append("message");
        }
        byte[] buf = buffer.toString().getBytes();
        originalMessageSize = buffer.length();
        DatagramPacket packet = new DatagramPacket(buf, buf.length, destaddr);
        try {
            logger.debug("Listening on {}", r.getListenAddress());
            send.send(packet);
            logger.debug("One message sent to {}", packet.getAddress());
        } catch (IOException e1) {
            logger.error("IO exception on port {}", r.getPort());
            throw e1;
        }
    }
    Event e = receiver.take();
    r.interrupt();
    Assert.assertTrue("Invalid message content", e.get("message").toString().startsWith("message"));
    Assert.assertEquals("Invalid message size", originalMessageSize, e.get("message").toString().length());
    Assert.assertTrue("didn't find valid hosts informations", e.get("host") instanceof InetAddress);
}
Also used : InetSocketAddress(java.net.InetSocketAddress) IOException(java.io.IOException) Properties(loghub.configuration.Properties) Pipeline(loghub.Pipeline) StringCodec(loghub.decoders.StringCodec) ArrayBlockingQueue(java.util.concurrent.ArrayBlockingQueue) DatagramSocket(java.net.DatagramSocket) DatagramPacket(java.net.DatagramPacket) Event(loghub.Event) InetAddress(java.net.InetAddress)

Example 8 with Pipeline

use of loghub.Pipeline in project LogHub by fbacchella.

the class TestTest method testSub.

@Test(timeout = 2000)
public void testSub() throws InterruptedException, ProcessorException, ConfigException, IOException {
    Properties conf = Tools.loadConf("testclause.conf");
    for (Pipeline pipe : conf.pipelines) {
        Assert.assertTrue("configuration failed", pipe.configure(conf));
    }
    Event sent = Tools.getEvent();
    sent.put("a", 2);
    conf.mainQueue.add(sent);
    EventsProcessor ep = new EventsProcessor(conf.mainQueue, conf.outputQueues, conf.namedPipeLine, conf.maxSteps, conf.repository);
    sent.inject(conf.namedPipeLine.get("subpipe"), conf.mainQueue);
    ep.start();
    Event received = conf.outputQueues.get("subpipe").take();
    Assert.assertEquals("conversion not expected", 2, received.get("d"));
    ep.interrupt();
}
Also used : Event(loghub.Event) Properties(loghub.configuration.Properties) EventsProcessor(loghub.EventsProcessor) Pipeline(loghub.Pipeline) Test(org.junit.Test)

Example 9 with Pipeline

use of loghub.Pipeline in project LogHub by fbacchella.

the class TestTest method testOK.

@Test
public void testOK() throws InterruptedException, ProcessorException, ConfigException, IOException {
    Properties conf = Tools.loadConf("testclause.conf");
    for (Pipeline pipe : conf.pipelines) {
        Assert.assertTrue("configuration failed", pipe.configure(conf));
    }
    Event sent = Tools.getEvent();
    sent.put("a", 1);
    Tools.runProcessing(sent, conf.namedPipeLine.get("main"), conf);
    Assert.assertEquals("conversion not expected", 1, sent.get("b"));
}
Also used : Event(loghub.Event) Properties(loghub.configuration.Properties) Pipeline(loghub.Pipeline) Test(org.junit.Test)

Example 10 with Pipeline

use of loghub.Pipeline in project LogHub by fbacchella.

the class TestTest method testKO.

@Test
public void testKO() throws ProcessorException, InterruptedException, ConfigException, IOException {
    Properties conf = Tools.loadConf("testclause.conf");
    for (Pipeline pipe : conf.pipelines) {
        Assert.assertTrue("configuration failed", pipe.configure(conf));
    }
    Event sent = Tools.getEvent();
    sent.put("a", 2);
    Tools.runProcessing(sent, conf.namedPipeLine.get("main"), conf);
    Assert.assertEquals("conversion not expected", 2, sent.get("c"));
}
Also used : Event(loghub.Event) Properties(loghub.configuration.Properties) Pipeline(loghub.Pipeline) Test(org.junit.Test)

Aggregations

Pipeline (loghub.Pipeline)23 Event (loghub.Event)21 Properties (loghub.configuration.Properties)20 Test (org.junit.Test)17 ArrayBlockingQueue (java.util.concurrent.ArrayBlockingQueue)8 HashMap (java.util.HashMap)6 IOException (java.io.IOException)4 Map (java.util.Map)4 File (java.io.File)2 InputStream (java.io.InputStream)2 Reader (java.io.Reader)2 InvocationTargetException (java.lang.reflect.InvocationTargetException)2 MalformedURLException (java.net.MalformedURLException)2 URI (java.net.URI)2 URISyntaxException (java.net.URISyntaxException)2 URL (java.net.URL)2 URLClassLoader (java.net.URLClassLoader)2 Files (java.nio.file.Files)2 Path (java.nio.file.Path)2 Paths (java.nio.file.Paths)2