[jboss-cvs] JBossAS SVN: r97863 - in branches/snmp4j-integration: component-matrix and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Dec 15 16:53:52 EST 2009
Author: bshim
Date: 2009-12-15 16:53:51 -0500 (Tue, 15 Dec 2009)
New Revision: 97863
Modified:
branches/snmp4j-integration/component-matrix/pom.xml
branches/snmp4j-integration/pom.xml
branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpAgentService.java
branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/TrapEmitter.java
branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/TrapFactory.java
branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/TrapFactorySupport.java
branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/config/manager/Manager.java
branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/trapd/TrapdService.java
branches/snmp4j-integration/varia/src/resources/services/snmp/deploy/managers.xml
Log:
Setup template for SNMPv2c and SNMPv3 traps
Modified: branches/snmp4j-integration/component-matrix/pom.xml
===================================================================
--- branches/snmp4j-integration/component-matrix/pom.xml 2009-12-15 20:37:56 UTC (rev 97862)
+++ branches/snmp4j-integration/component-matrix/pom.xml 2009-12-15 21:53:51 UTC (rev 97863)
@@ -124,7 +124,7 @@
<version.xdoclet>1.2.3</version.xdoclet>
<version.weld.api>1.0-CR1</version.weld.api>
<version.spring.integration>1.0.0.CR2</version.spring.integration>
- <version.snmp4j>1.10.1</version.snmp4j>
+ <version.snmp4j>1.10.2</version.snmp4j>
</properties>
<!-- Build Configuration -->
@@ -2178,7 +2178,7 @@
<dependency>
<groupId>snmp4j</groupId>
<artifactId>snmp4j</artifactId>
- <version>1.10.1</version>
+ <version>1.10.2</version>
</dependency>
<dependency>
Modified: branches/snmp4j-integration/pom.xml
===================================================================
--- branches/snmp4j-integration/pom.xml 2009-12-15 20:37:56 UTC (rev 97862)
+++ branches/snmp4j-integration/pom.xml 2009-12-15 21:53:51 UTC (rev 97863)
@@ -501,18 +501,6 @@
</snapshots>
</repository>
- <repository>
- <id>local.maven.repo</id>
- <name>Local Maven Repo</name>
- <url>file:///notnfs/bshim/local-maven-repo</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
-
</repositories>
<!-- Plugin Repositories -->
Modified: branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpAgentService.java
===================================================================
--- branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpAgentService.java 2009-12-15 20:37:56 UTC (rev 97862)
+++ branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpAgentService.java 2009-12-15 21:53:51 UTC (rev 97863)
@@ -27,9 +27,9 @@
import org.jboss.bootstrap.spi.as.config.JBossASServerConfig;
import org.jboss.system.ListenerServiceMBeanSupport;
-import org.opennms.protocols.snmp.SnmpAgentSession;
-import org.opennms.protocols.snmp.SnmpPeer;
-import org.opennms.protocols.snmp.SnmpSMI;
+//import org.opennms.protocols.snmp.SnmpAgentSession;
+//import org.opennms.protocols.snmp.SnmpPeer;
+//import org.opennms.protocols.snmp.SnmpSMI;
//SNMP4J IMPORTS
import org.snmp4j.Snmp;
@@ -122,7 +122,7 @@
private TrapEmitter trapEmitter = null;
/** the snmp agent session for handling get/set requests */
- private SnmpAgentSession agentSession = null;
+// private SnmpAgentSession agentSession = null;
/** the request handler instance handling get/set requests */
private RequestHandler requestHandler;
@@ -539,8 +539,8 @@
this.trapEmitter = null;
log.debug("Stopping snmp agent ...");
- this.agentSession.close();
- this.agentSession = null;
+// this.agentSession.close();
+// this.agentSession = null;
log.info("SNMP agent stopped");
}
Modified: branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/TrapEmitter.java
===================================================================
--- branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/TrapEmitter.java 2009-12-15 20:37:56 UTC (rev 97862)
+++ branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/TrapEmitter.java 2009-12-15 21:53:51 UTC (rev 97863)
@@ -37,9 +37,9 @@
import org.jboss.xb.binding.MappingObjectModelFactory;
import org.jboss.xb.binding.Unmarshaller;
import org.jboss.xb.binding.UnmarshallerFactory;
-import org.opennms.protocols.snmp.SnmpIPAddress;
-import org.opennms.protocols.snmp.SnmpPduPacket;
-import org.opennms.protocols.snmp.SnmpPduTrap;
+//import org.opennms.protocols.snmp.SnmpIPAddress;
+//import org.opennms.protocols.snmp.SnmpPduPacket;
+//import org.opennms.protocols.snmp.SnmpPduTrap;
import org.snmp4j.CommunityTarget;
import org.snmp4j.PDUv1;
@@ -179,8 +179,9 @@
// Cache the translated notification
PDUv1 v1TrapPdu = null;
- ScopedPDU v2TrapPdu = null;
-
+ ScopedPDU v2cTrapPdu = null;
+ ScopedPDU v3TrapPdu = null;
+
// Send trap. Synchronise on the subscription collection while
// iterating
synchronized(this.managers) {
@@ -211,13 +212,14 @@
// Send
//s.getSession().send(v1TrapPdu);
snmp = createSnmpSession(t.getAddress());
+ log.debug("Sending trap: "+v1TrapPdu.toString() + "\n to target: "+ t.toString());
snmp.send(v1TrapPdu, t);
break;
case SnmpConstants.version2c:
//case SnmpAgentService.SNMPV2:
- if (v2TrapPdu == null)
- v2TrapPdu = this.trapFactory.generateV2V3Trap(n);
+ if (v2cTrapPdu == null)
+ v2cTrapPdu = this.trapFactory.generateV2cTrap(n);
// Advance the trap counter
this.trapCount.advance();
@@ -225,13 +227,21 @@
// Send
//t.getSession().send(v2TrapPdu);
snmp = createSnmpSession(t.getAddress());
- snmp.send(v2TrapPdu, t);
-
+ snmp.send(v2cTrapPdu, t);
break;
case SnmpConstants.version3:
//case SnmpAgentService.SNMPV3:
- //do something
+ if (v3TrapPdu == null)
+ v3TrapPdu = this.trapFactory.generateV3Trap(n);
+
+ // Advance the trap counter
+ this.trapCount.advance();
+
+ // Send
+ //t.getSession().send(v2TrapPdu);
+ snmp = createSnmpSession(t.getAddress());
+ snmp.send(v3TrapPdu, t);
break;
default:
@@ -360,22 +370,33 @@
}
private Target createTarget(Manager m){
- Target target;
- String newAddr;
- if (m.getAddress() != null){
- System.out.println("*************************************");
- System.out.println("Address" + m.getAddress());
- System.out.println("Port" + m.getPort());
- System.out.println("*************************************");
- newAddr = m.getAddress()+"/"+m.getPort();
- }
- else {return null;}
+ Target target = null;
+// String newAddr;
+// if (m.getAddress() != null){
+// System.out.println("*************************************");
+// System.out.println("Address" + m.getAddress());
+// System.out.println("Port" + m.getPort());
+// System.out.println("*************************************");
+// newAddr = m.getAddress()+"/"+m.getPort();
+// }
+// else {return null;}
int version = m.getVersion();
if (version == SnmpConstants.version1 || version == SnmpConstants.version2c){
+
//change 'public' to a constant somewhere
- target = new CommunityTarget(new TcpAddress(newAddr), new OctetString("public"));
+ //target = new CommunityTarget(new TcpAddress(newAddr), new OctetString("public"));
+ try{
+ if (m.getAddress() != null){
+ target = new CommunityTarget(new TcpAddress(InetAddress.getByName(m.getAddress()), m.getPort()), new OctetString(m.getCommunityString()));
+
+ //Timeout and Retries needs to be a field later on
+ //target.setRetries(3);
+ target.setTimeout(8000);
+
+ }
+ }catch (UnknownHostException e) {} //something goes here
}
else if (version == SnmpConstants.version3) {
//won't be used at the moment
Modified: branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/TrapFactory.java
===================================================================
--- branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/TrapFactory.java 2009-12-15 20:37:56 UTC (rev 97862)
+++ branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/TrapFactory.java 2009-12-15 21:53:51 UTC (rev 97863)
@@ -77,25 +77,31 @@
public void start()
throws Exception;
+
/**
- * Translates a Notification to an SNMP V2 trap.
+ * Traslates a Notification to an SNMP V1 trap.
*
* @param the notification to be translated
**/
+ public PDUv1 generateV1Trap(Notification n)
+ throws MappingFailedException;
+
+ /**
+ * Translates a Notification to an SNMP V2c trap.
+ *
+ * @param the notification to be translated
+ **/
// public SnmpPduPacket generateV2Trap(Notification n)
// throws MappingFailedException;
- public ScopedPDU generateV2V3Trap(Notification n)
+ public ScopedPDU generateV2cTrap(Notification n)
throws MappingFailedException;
/**
- * Traslates a Notification to an SNMP V1 trap.
+ * Traslates a Notification to an SNMP V3 trap.
*
* @param the notification to be translated
**/
-// public SnmpPduTrap generateV1Trap(Notification n)
-// throws MappingFailedException;
-
- public PDUv1 generateV1Trap(Notification n)
+ public ScopedPDU generateV3Trap(Notification n)
throws MappingFailedException;
} // TrapFactory
Modified: branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/TrapFactorySupport.java
===================================================================
--- branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/TrapFactorySupport.java 2009-12-15 20:37:56 UTC (rev 97862)
+++ branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/TrapFactorySupport.java 2009-12-15 21:53:51 UTC (rev 97863)
@@ -38,9 +38,9 @@
import org.jboss.xb.binding.Unmarshaller;
import org.jboss.xb.binding.UnmarshallerFactory;
import org.jboss.xb.binding.UnmarshallingContext;
-import org.opennms.protocols.snmp.SnmpPduPacket;
-import org.opennms.protocols.snmp.SnmpPduRequest;
-import org.opennms.protocols.snmp.SnmpPduTrap;
+//import org.opennms.protocols.snmp.SnmpPduPacket;
+//import org.opennms.protocols.snmp.SnmpPduRequest;
+//import org.opennms.protocols.snmp.SnmpPduTrap;
import org.snmp4j.PDU;
import org.snmp4j.PDUv1;
import org.snmp4j.ScopedPDU;
@@ -338,15 +338,15 @@
}
/**
- * Traslates a Notification to an SNMP V2 trap.
+ * Traslates a Notification to an SNMP V2c trap.
*
* TODO: how do you get timestamp, generic, and specific stuff in the trap
**/
- public ScopedPDU generateV2V3Trap(Notification n)
+ public ScopedPDU generateV2cTrap(Notification n)
throws MappingFailedException
{
if (log.isTraceEnabled())
- log.trace("generateV2V3Trap");
+ log.trace("generateV2cTrap");
// Locate mapping for incomming event
int index = -1;
@@ -365,9 +365,8 @@
// Create trap
ScopedPDU trapPdu = new ScopedPDU();
+ trapPdu.setType(PDU.TRAP);
- //**remember to set trap type ie) ScopedPDU.setType(distinguish types) ....
-
//--SnmpPduRequest trapPdu = new SnmpPduRequest(SnmpPduPacket.V2TRAP);
// Append the specified varbinds. Get varbinds from mapping and for
@@ -407,6 +406,72 @@
}
/**
+ * Traslates a Notification to an SNMP V3 trap.
+ *
+ * TODO: how do you get timestamp, generic, and specific stuff in the trap
+ **/
+ public ScopedPDU generateV3Trap(Notification n)
+ throws MappingFailedException
+ {
+ if (log.isTraceEnabled())
+ log.trace("generateV3Trap");
+
+ // Locate mapping for incomming event
+ int index = -1;
+
+ try
+ {
+ index = findMappingIndex(n);
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ throw new MappingFailedException(
+ "No mapping found for notification type: '" + n.getType() + "'");
+ }
+
+ Mapping m = (Mapping)this.notificationMapList.get(index);
+
+ // Create trap
+ ScopedPDU trapPdu = new ScopedPDU();
+ trapPdu.setType(PDU.TRAP);
+
+ // Append the specified varbinds. Get varbinds from mapping and for
+ // each one of the former use the wrapper to get data from the
+ // notification
+
+ // Get the coresponding wrapper
+ NotificationWrapper wrapper =
+ (NotificationWrapper)this.notificationWrapperCache.get(index);
+
+ if (wrapper != null)
+ {
+ // Prime the wrapper with the notification contents
+ wrapper.prime(n);
+
+ List vbList = m.getVarBindList().getVarBindList();
+
+ for (int i = 0; i < vbList.size(); i++)
+ {
+ VarBind vb = (VarBind)vbList.get(i);
+
+ // Append the var bind. Interrogate read vb for OID and
+ // variable tag. The later is used as the key passed to the
+ // wrapper in order for it to locate the required value. That
+ // value and the aforementioned OID are used to generate the
+ // variable binding
+ trapPdu.add(
+ this.snmpVBFactory.make(vb.getOid(), wrapper.get(vb.getTag())));
+ }
+ }
+ else
+ {
+ log.warn("Varbind mapping failure: null wrapper defined for " +
+ " notification type '" + m.getNotificationType() + "'" );
+ }
+ return trapPdu;
+ }
+
+ /**
* Utility class used by JBossXB to help parse notifications.xml
*/
private static class NotificationBinding implements GenericObjectModelFactory
Modified: branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/config/manager/Manager.java
===================================================================
--- branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/config/manager/Manager.java 2009-12-15 20:37:56 UTC (rev 97862)
+++ branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/config/manager/Manager.java 2009-12-15 21:53:51 UTC (rev 97863)
@@ -37,6 +37,7 @@
private String localAddress;
private int localPort;
private int version;
+ private String communityString;
// Constructors -------------------------------------------------
@@ -102,6 +103,17 @@
}
/**
+ * Method getCommunityString returns the value of field 'communityString'.
+ *
+ * @return the value of field 'communityString'.
+ *
+ */
+ public String getCommunityString()
+ {
+ return communityString;
+ }
+
+ /**
* Method setAddress sets the value of field 'address'.
*
* @param address the value of field 'address'.
@@ -152,6 +164,17 @@
this.version = version;
}
+ /**
+ * Method getCommunityString sets the value of field 'communityString'.
+ *
+ * @return the value of field 'communityString'.
+ *
+ */
+ public void setCommunityString(String communityString)
+ {
+ this.communityString = communityString;
+ }
+
// Object overrides ----------------------------------------------
public String toString()
@@ -163,7 +186,8 @@
.append(", port=").append(port)
.append(", localAddress=").append(localAddress)
.append(", localPort=").append(localPort)
- .append(", version=").append(version)
+ .append(", version=").append(version)
+ .append(", communityString=").append(communityString)
.append(']');
return sbuf.toString();
Modified: branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/trapd/TrapdService.java
===================================================================
--- branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/trapd/TrapdService.java 2009-12-15 20:37:56 UTC (rev 97862)
+++ branches/snmp4j-integration/varia/src/main/java/org/jboss/jmx/adaptor/snmp/trapd/TrapdService.java 2009-12-15 21:53:51 UTC (rev 97863)
@@ -26,9 +26,9 @@
import org.jboss.bootstrap.spi.as.config.JBossASServerConfig;
import org.jboss.system.ServiceMBeanSupport;
-import org.opennms.protocols.snmp.SnmpPduRequest;
-import org.opennms.protocols.snmp.SnmpTrapSession;
-import org.opennms.protocols.snmp.SnmpVarBind;
+//import org.opennms.protocols.snmp.SnmpPduRequest;
+//import org.opennms.protocols.snmp.SnmpTrapSession;
+//import org.opennms.protocols.snmp.SnmpVarBind;
import org.snmp4j.CommandResponder;
import org.snmp4j.CommandResponderEvent;
@@ -36,6 +36,7 @@
import org.snmp4j.MessageDispatcherImpl;
import org.snmp4j.PDU;
import org.snmp4j.PDUv1;
+import org.snmp4j.ScopedPDU;
import org.snmp4j.Snmp;
import org.snmp4j.TransportMapping;
import org.snmp4j.mp.MPv1;
@@ -184,8 +185,27 @@
@Override
public void processPdu(CommandResponderEvent e) {
- PDUv1 pdu = (PDUv1)e.getPDU();
+// PDUv1 pdu = (PDUv1)e.getPDU();
+ PDU pdu = e.getPDU();
if (pdu != null){
+
+ if (pdu instanceof PDUv1){
+ processPDUv1((PDUv1)pdu);
+ } else if (pdu instanceof ScopedPDU) {
+ processScopedPDU((ScopedPDU)pdu);
+ } else {
+ log.warn("Unknown PDU type: " + PDU.getTypeString(pdu.getType()));
+ }
+
+ }
+ }
+
+ private void processScopedPDU(ScopedPDU pdu) {
+ // TODO Auto-generated method stub
+
+ }
+
+ private void processPDUv1(PDUv1 pdu) {
//*****
StringBuffer sbuf = new StringBuffer();
//sbuf.append("\n***************NEW SNMP4J ADAPTOR******************");
@@ -215,8 +235,6 @@
}
sbuf.append("\nLength............. ").append(counter);
log.debug(sbuf.toString());
- }
- //*****
}
} // class TrapdService
Modified: branches/snmp4j-integration/varia/src/resources/services/snmp/deploy/managers.xml
===================================================================
--- branches/snmp4j-integration/varia/src/resources/services/snmp/deploy/managers.xml 2009-12-15 20:37:56 UTC (rev 97862)
+++ branches/snmp4j-integration/varia/src/resources/services/snmp/deploy/managers.xml 2009-12-15 21:53:51 UTC (rev 97863)
@@ -32,5 +32,6 @@
<local-address></local-address>
<local-port></local-port>
<version>1</version>
+ <community-string>public</community-string>
</manager>
</manager-list>
More information about the jboss-cvs-commits
mailing list