Skip to content

Commit ce77b92

Browse files
author
Jesse White
committed
HZN-1009: Add support for the WmiCollector on Minion.
1 parent 273c6b2 commit ce77b92

File tree

17 files changed

+264
-651
lines changed

17 files changed

+264
-651
lines changed

container/features/src/main/resources/features-minion.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@
110110
<bundle>mvn:org.opennms.features/org.opennms.features.jdbc-collector/${project.version}</bundle>
111111
<bundle>mvn:org.opennms.protocols/org.opennms.protocols.nsclient/${project.version}</bundle>
112112
<feature>opennms-vmware</feature>
113+
<feature>wmi-integration</feature>
113114
</feature>
114115

115116
<feature name="minion-shell-collection" description="Minion :: Shell :: Collection" version="${project.version}">

opennms-config-model/src/main/java/org/opennms/netmgt/config/wmi/WmiAgentConfig.java

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,13 @@
3333
import java.util.Map;
3434
import java.util.Objects;
3535

36+
import javax.xml.bind.annotation.XmlAccessType;
37+
import javax.xml.bind.annotation.XmlAccessorType;
38+
import javax.xml.bind.annotation.XmlAttribute;
39+
import javax.xml.bind.annotation.XmlRootElement;
40+
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
41+
42+
import org.opennms.core.network.InetAddressXmlAdapter;
3643
import org.opennms.netmgt.snmp.InetAddrUtils;
3744

3845
/**
@@ -41,6 +48,8 @@
4148
* @author ranger
4249
* @version $Id: $
4350
*/
51+
@XmlRootElement(name = "wmi-agent-config")
52+
@XmlAccessorType(XmlAccessType.NONE)
4453
public class WmiAgentConfig {
4554

4655
/** Constant <code>DEFAULT_TIMEOUT=3000</code> */
@@ -53,23 +62,26 @@ public class WmiAgentConfig {
5362
public static final String DEFAULT_USERNAME="Administrator";
5463
/** Constant <code>DEFAULT_DOMAIN="WORKGROUP"</code> */
5564
public static final String DEFAULT_DOMAIN="WORKGROUP";
56-
65+
66+
@XmlAttribute(name = "address")
67+
@XmlJavaTypeAdapter(InetAddressXmlAdapter.class)
5768
private InetAddress m_Address;
69+
70+
@XmlAttribute(name = "timeout")
5871
private int m_Timeout;
72+
73+
@XmlAttribute(name = "retries")
5974
private int m_Retries;
75+
76+
@XmlAttribute(name = "username")
6077
private String m_Username;
78+
79+
@XmlAttribute(name = "domain")
6180
private String m_Domain;
81+
82+
@XmlAttribute(name = "password")
6283
private String m_Password;
63-
64-
65-
String user = "";
66-
String pass = "";
67-
String domain = "";
68-
String matchType = "all";
69-
String compVal = "";
70-
String compOp = "NOOP";
71-
String wmiClass = "";
72-
String wmiObject = "";
84+
7385
/**
7486
* <p>Constructor for WmiAgentConfig.</p>
7587
*/

opennms-config-model/src/test/java/org/opennms/netmgt/config/wmi/WmiAgentConfigTest.java

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,33 @@
3030

3131
import static org.junit.Assert.assertEquals;
3232

33+
import java.util.Arrays;
34+
import java.util.Collection;
35+
3336
import org.junit.Test;
37+
import org.junit.runners.Parameterized.Parameters;
38+
import org.opennms.core.test.xml.XmlTestNoCastor;
3439
import org.opennms.core.utils.InetAddressUtils;
40+
import org.opennms.netmgt.snmp.InetAddrUtils;
41+
42+
public class WmiAgentConfigTest extends XmlTestNoCastor<WmiAgentConfig> {
43+
44+
public WmiAgentConfigTest(WmiAgentConfig sampleObject, Object sampleXml) {
45+
super(sampleObject, sampleXml, null);
46+
}
47+
48+
@Parameters
49+
public static Collection<Object[]> data() {
50+
WmiAgentConfig agentConfig = new WmiAgentConfig();
51+
agentConfig.setAddress(InetAddrUtils.addr("127.0.0.1"));
3552

36-
public class WmiAgentConfigTest {
53+
return Arrays.asList(new Object[][] {
54+
{
55+
agentConfig,
56+
"<wmi-agent-config address=\"127.0.0.1\" timeout=\"3000\" retries=\"1\"/>"
57+
}
58+
});
59+
}
3760

3861
@Test
3962
public void canConvertToAndFromMap() {

opennms-doc/guide-admin/src/asciidoc/index.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ include::text/performance-data-collection/collectors/nsclient.adoc[]
147147
include::text/performance-data-collection/collectors/tca.adoc[]
148148
include::text/performance-data-collection/collectors/vmware-cim.adoc[]
149149
include::text/performance-data-collection/collectors/vmware.adoc[]
150+
include::text/performance-data-collection/collectors/wmi.adoc[]
150151

151152
[[ga-performance-mgmt-shell]]
152153
=== Shell Commands
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
2+
// Allow GitHub image rendering
3+
:imagesdir: ../../../images
4+
5+
==== WmiCollector
6+
7+
The _WmiCollector_ collects peformance metrics from _Windows_ systems using Windows Management Instrumentation (WMI).
8+
9+
===== Collector Facts
10+
11+
[options="autowidth"]
12+
|===
13+
| Class Name | `org.opennms.netmgt.collectd.WmiCollector`
14+
| Package | core
15+
| Supported on Minion | `Yes`
16+
|===
17+
18+
===== Collector Parameters
19+
20+
.Collector specific parameters for the WmiCollector
21+
[options="header, autowidth"]
22+
|===
23+
| Parameter | Description | Required | Default value
24+
| `collection` | The name of the _WMI Collection_ to use | required |

opennms-wmi/pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
<Bundle-RequiredExecutionEnvironment>JavaSE-1.8</Bundle-RequiredExecutionEnvironment>
2121
<Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
2222
<Bundle-Version>${project.version}</Bundle-Version>
23+
<!-- Don't export any packages, expose services only. -->
24+
<Export-Package></Export-Package>
2325
</instructions>
2426
</configuration>
2527
</plugin>
@@ -63,6 +65,11 @@
6365
<groupId>org.opennms</groupId>
6466
<artifactId>opennms-provision-api</artifactId>
6567
</dependency>
68+
<dependency>
69+
<groupId>org.opennms.features.collection</groupId>
70+
<artifactId>org.opennms.features.collection.test-api</artifactId>
71+
<scope>test</scope>
72+
</dependency>
6673
</dependencies>
6774

6875
<repositories>

0 commit comments

Comments
 (0)