Skip to content

Commit

Permalink
OIA-55: Fix collector extension example
Browse files Browse the repository at this point in the history
  • Loading branch information
fooker authored and Benjamin Reed committed Apr 10, 2023
1 parent ce9ef08 commit ade44c8
Show file tree
Hide file tree
Showing 3 changed files with 129 additions and 0 deletions.
16 changes: 16 additions & 0 deletions sample/src/main/resources/collector/collector-configuration1.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0"?>
<collector-configuration xmlns="http://xmlns.opennms.org/xsd/config/collector/api">
<package name="example1">
<filter>IPADDR IPLIKE 2.*.*.*</filter>
<include-range begin="2.1.1.1" end="2.254.254.254"/>
<service name="ICMP" interval="300000">
<parameter key="retry" value="2"/>
<parameter key="timeout" value="3000"/>
<parameter key="rrd-repository" value="/share/rrd/response"/>
<parameter key="rrd-base-name" value="icmp"/>
<parameter key="ds-name" value="icmp"/>
</service>
</package>

<collector service="Example1" class-name="org.opennms.netmgt.collectd.collectors.ExampleCollector"/>
</collector-configuration>
33 changes: 33 additions & 0 deletions sample/src/main/resources/collector/collector-configuration2.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?xml version="1.0"?>
<collector-configuration xmlns="http://xmlns.opennms.org/xsd/config/collector/api">
<package name="example2">
<filter>IPADDR != '0.0.0.0'</filter>
<include-range begin="1.1.1.1" end="2.2.2.2"/>
<include-range begin="2.2.2.2" end="254.254.254.254"/>
<service name="Example2" interval="300000">
<parameter key="retry" value="2"/>
<parameter key="timeout" value="5000"/>
<parameter key="port" value="53"/>
<parameter key="lookup" value="localhost"/>
<parameter key="fatal-response-codes" value="2,3,5"/><!-- ServFail, NXDomain, Refused -->
<parameter key="rrd-repository" value="/share/rrd/response"/>
<parameter key="rrd-base-name" value="dns"/>
<parameter key="ds-name" value="dns"/>
</service>
<service name="Example3" interval="300000">
<pattern><![CDATA[^abc.*def$]]></pattern>
<parameter key="retry" value="1"/>
<parameter key="timeout" value="3000"/>
<parameter key="port" value="25"/>
<parameter key="rrd-repository" value="/share/rrd/response"/>
<parameter key="rrd-base-name" value="smtp"/>
<parameter key="ds-name" value="smtp"/>
</service>
</package>

<collector service="Example2" class-name="org.opennms.netmgt.collectd.collectors.Example"/>
<collector service="Example3" class-name="org.opennms.netmgt.collectd.collectors.Example">
<parameter key="param1" value="value1" />
<parameter key="param2" value="value2" />
</collector>
</collector-configuration>
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/*******************************************************************************
* This file is part of OpenNMS(R).
*
* Copyright (C) 2022 The OpenNMS Group, Inc.
* OpenNMS(R) is Copyright (C) 1999-2022 The OpenNMS Group, Inc.
*
* OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc.
*
* OpenNMS(R) is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* OpenNMS(R) is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with OpenNMS(R). If not, see:
* http://www.gnu.org/licenses/
*
* For more information contact:
* OpenNMS(R) Licensing <[email protected]>
* http://www.opennms.org/
* http://www.opennms.com/
*******************************************************************************/

package org.opennms.integration.api.sample;

import static org.junit.Assert.assertEquals;

import java.util.List;

import org.junit.Test;
import org.opennms.integration.api.v1.config.collector.AddressRange;
import org.opennms.integration.api.v1.config.collector.Package;
import org.opennms.integration.api.v1.config.collector.Collector;
import org.opennms.integration.api.v1.config.collector.Service;

public class MyCollectorConfigurationExtensionTest {

@Test
public void test() {
MyCollectorConfigurationExtension collectorConfig = new MyCollectorConfigurationExtension();
final List<Collector> collectors = collectorConfig.getCollectors();
final List<Package> packages = collectorConfig.getPackages();

assertEquals(2, packages.size());

final Package package1 = packages.get(0);
final Package package2 = packages.get(1);
assertEquals("example1", package1.getName());
assertEquals("example2", package2.getName());

assertEquals("IPADDR IPLIKE 2.*.*.*", package1.getFilter());

final List<AddressRange> includeRanges2 = package2.getIncludeRanges();
assertEquals(2, includeRanges2.size());
assertEquals("1.1.1.1", includeRanges2.get(0).getBegin());
assertEquals("254.254.254.254", includeRanges2.get(1).getEnd());

final List<Service> services = package2.getServices();
assertEquals(2, services.size());

final Service service = services.get(1);
assertEquals("Example3", service.getName());
assertEquals(300000, service.getInterval());
assertEquals("retry", service.getParameters().get(0).getKey());
assertEquals("smtp", service.getParameters().get(4).getValue());

assertEquals(3, collectors.size());
assertEquals("Example1", collectors.get(0).getService());
assertEquals("org.opennms.netmgt.collectd.collectors.Example", collectors.get(1).getClassName());
assertEquals(2, collectors.get(2).getParameters().size());
assertEquals("param1", collectors.get(2).getParameters().get(0).getKey());
assertEquals("value2", collectors.get(2).getParameters().get(1).getValue());
}

}

0 comments on commit ade44c8

Please sign in to comment.