[jboss-cvs] JBossAS SVN: r110838 - in branches/snmp4j-intv3: component-matrix and 3 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Mar 4 09:30:05 EST 2011
Author: thauser at redhat.com
Date: 2011-03-04 09:30:05 -0500 (Fri, 04 Mar 2011)
New Revision: 110838
Modified:
branches/snmp4j-intv3/build/build.xml
branches/snmp4j-intv3/component-matrix/pom.xml
branches/snmp4j-intv3/varia/pom.xml
branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpAgentService.java
branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpRequest.java
branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/test/Test.java
Log:
trying to commit work from yesterday
Modified: branches/snmp4j-intv3/build/build.xml
===================================================================
--- branches/snmp4j-intv3/build/build.xml 2011-03-04 10:45:34 UTC (rev 110837)
+++ branches/snmp4j-intv3/build/build.xml 2011-03-04 14:30:05 UTC (rev 110838)
@@ -2177,7 +2177,6 @@
<fileset refid="org.jboss.scanning:scanning-deployers:jar"/>
<fileset refid="org.jboss.mc-int:jboss-mc-int-servlet:jar"/>
<fileset refid="org.beanshell:bsh:jar"/>
- <fileset refid="joesnmp:joesnmp:jar"/>
<fileset refid="org.snmp4j:snmp4j:jar"/>
<fileset refid="wutka-dtdparser:dtdparser:jar"/>
<fileset refid="apache-bsf:bsf:jar"/>
Modified: branches/snmp4j-intv3/component-matrix/pom.xml
===================================================================
--- branches/snmp4j-intv3/component-matrix/pom.xml 2011-03-04 10:45:34 UTC (rev 110837)
+++ branches/snmp4j-intv3/component-matrix/pom.xml 2011-03-04 14:30:05 UTC (rev 110838)
@@ -157,7 +157,7 @@
<version.weld.api>1.1.Beta2</version.weld.api>
<version.xdoclet>1.2.3</version.xdoclet>
<version.xmlschema>1.4.5</version.xmlschema>
- <version.org.snmp4j>1.11.1</version.org.snmp4j>
+ <version.org.snmp4j>1.11.2</version.org.snmp4j>
</properties>
<!-- Build Configuration -->
@@ -1631,15 +1631,15 @@
</dependency>
<dependency>
- <groupId>joesnmp</groupId>
- <artifactId>joesnmp</artifactId>
- <version>0.3.4</version>
+ <groupId>org.snmp4j</groupId>
+ <artifactId>snmp4j</artifactId>
+ <version>1.11.2</version>
</dependency>
-
+
<dependency>
<groupId>org.snmp4j</groupId>
- <artifactId>snmp4j</artifactId>
- <version>1.11.1</version>
+ <artifactId>snmp4j-agent</artifactId>
+ <version>1.4.2</version>
</dependency>
<dependency>
Modified: branches/snmp4j-intv3/varia/pom.xml
===================================================================
--- branches/snmp4j-intv3/varia/pom.xml 2011-03-04 10:45:34 UTC (rev 110837)
+++ branches/snmp4j-intv3/varia/pom.xml 2011-03-04 14:30:05 UTC (rev 110838)
@@ -238,13 +238,13 @@
</dependency>
<dependency>
- <groupId>joesnmp</groupId>
- <artifactId>joesnmp</artifactId>
+ <groupId>org.snmp4j</groupId>
+ <artifactId>snmp4j</artifactId>
</dependency>
<dependency>
<groupId>org.snmp4j</groupId>
- <artifactId>snmp4j</artifactId>
+ <artifactId>snmp4j-agent</artifactId>
</dependency>
<dependency>
Modified: branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpAgentService.java
===================================================================
--- branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpAgentService.java 2011-03-04 10:45:34 UTC (rev 110837)
+++ branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpAgentService.java 2011-03-04 14:30:05 UTC (rev 110838)
@@ -33,10 +33,11 @@
import org.snmp4j.AbstractTarget;
import org.snmp4j.CommandResponder;
import org.snmp4j.CommandResponderEvent;
-import org.snmp4j.MessageDispatcher;
+import org.snmp4j.MessageDispatcherImpl;
import org.snmp4j.MessageException;
import org.snmp4j.Snmp;
import org.snmp4j.Target;
+import org.snmp4j.TransportMapping;
import org.snmp4j.event.CounterEvent;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.mp.StateReference;
@@ -133,13 +134,28 @@
/** The trap emitting subsystem*/
private TrapEmitter trapEmitter = null;
-
- /** the snmp agent session for handling get/set requests */
-// private SnmpAgentSession agentSession = null;
/** the request handler instance handling get/set requests */
private RequestHandler requestHandler;
+ /** the location of the agent's settings**/
+ private String configFileResName = null;
+
+ /** the location of the boot counter persistent store **/
+ private String bootCounterResName = null;
+
+ private Snmp session;
+
+ private TransportMapping[] transportMappings;
+
+ private SnmpRequest responder;
+
+ private USM usm;
+
+ private MPv3 mpv3;
+
+ private MessageDispatcherImpl dispatcher;
+
// Constructors --------------------------------------------------
/**
@@ -524,7 +540,6 @@
// initialise the snmp agent
log.debug("Starting snmp agent ...");
- //At the moment does nothing
startAgent();
log.info("SNMP agent going active");
@@ -554,7 +569,7 @@
log.debug("Stopping snmp agent ...");
// this.agentSession.close();
// this.agentSession = null;
-
+ session.close();
log.info("SNMP agent stopped");
}
@@ -581,39 +596,90 @@
}
// Private -------------------------------------------------------
+
+ private void initResponder(){
+ OctetString localEngineID=new OctetString(MPv3.createLocalEngineID());
+ this.responder = new SnmpRequest(this.requestHandler, log, localEngineID);
+ }
+ // add updateEngineBoots to USM constuctor call
+ private void initMessageDispatcher(){
+ this.dispatcher = new MessageDispatcherImpl();
+ mpv3 = new MPv3(responder.getLocalEngineID().getValue());
+ usm = new USM(SecurityProtocols.getInstance(),
+ responder.getLocalEngineID(),
+ 0);
+ SecurityModels.getInstance().addSecurityModel(usm);
+ SecurityProtocols.getInstance().addDefaultProtocols();
+ dispatcher.addMessageProcessingModel(new MPv1());
+ dispatcher.addMessageProcessingModel(new MPv2c());
+ dispatcher.addMessageProcessingModel(mpv3);
+ }
+
+ private void initRequestHandler()throws Exception{
+ this.requestHandler = (RequestHandler)Class.forName(this.requestHandlerClassName,true,this.getClass().getClassLoader()).newInstance();
+ this.requestHandler.initialize(this.requestHandlerResName,
+ this.getServer(),
+ this.log,
+ this.clock);
+ }
+
+ private void initTransportMapping(){
+ this.transportMappings = new TransportMapping[1];
+ try{
+ this.transportMappings[0] = new DefaultUdpTransportMapping(new UdpAddress(this.bindAddress, this.port));
+ }catch(Exception e){
+ log.debug("Exception in initialization of Tranport Map!!");
+ }
+ }
+
+ private void initSession(){
+ this.session = new Snmp(dispatcher);
+ for (int i = 0; i < transportMappings.length;i++){
+ try{
+ session.addTransportMapping(transportMappings[i]);
+ }
+ catch(Exception e){
+ log.warn("Tranport mapping invalid. Failed to initialize mapping '"+
+ transportMappings[i]+"' with: "+e.getMessage());
+
+ }
+ }
+ this.session.addCommandResponder(responder);
+ }
+
+ //add initial users. this will be read from an xml once a better solution is in place.
+ private void addUsmUsers(){
+ UsmUser user = new UsmUser(new OctetString("SHADES"),
+ AuthSHA.ID,
+ new OctetString("SHADESAuthPassword"),
+ PrivDES.ID,
+ new OctetString("SHADESPrivPassword"));
+ this.usm.addUser(user.getSecurityName(), usm.getLocalEngineID(),user);
+ user = new UsmUser(new OctetString("TEST"),
+ AuthSHA.ID,
+ new OctetString("maplesyrup"),
+ PrivDES.ID,
+ new OctetString("maplesyrup"));
+ this.usm.addUser(user.getSecurityName(), usm.getLocalEngineID(), user);
+ }
+ //TODO: for v3 support we need to have this Snmp object have a USM (user security model) associated with it
+ // as well as the appropriate MP.
+ // the new Snmp(TransportMapping) constructor already initializes a MessageDispatcherImpl with all MP's associated.
/**
* Start the embedded agent
*/
private void startAgent()
throws Exception
{
-
- // Instantiate and initialize the RequestHandler implementation
- requestHandler = (RequestHandler)Class.forName(
- this.requestHandlerClassName, true, this.getClass().getClassLoader()).newInstance();
- requestHandler.initialize(this.requestHandlerResName, this.getServer(), this.log, this.clock);
-
- //TODO: for v3 support we need to have this Snmp object have a USM (user security model) associated with it
- // as well as the appropriate MP.
- // the new Snmp(TransportMapping) constructor already initializes a MessageDispatcherImpl with all MP's associated.
-
- //Snmp snmp = new Snmp(new DefaultTcpTransportMapping(new TcpAddress(this.bindAddress, this.port)));
- Snmp snmp = new Snmp(new DefaultUdpTransportMapping(new UdpAddress(this.bindAddress, this.port)));
- OctetString localEngineID=new OctetString(snmp.getLocalEngineID());
- USM usm = new USM(SecurityProtocols.getInstance(), localEngineID, 0);
- //** THIS MUST BE READ FROM A FILE **//
- usm.addUser(new OctetString("MD5DES"),
- new UsmUser(new OctetString("MD5DES"),
- AuthMD5.ID,
- new OctetString("MD5DESUserAuthPassword"),
- PrivDES.ID,
- new OctetString("MD5DESUserPrivPassword")));
- SecurityModels.getInstance().addSecurityModel(usm);
- SnmpRequest request = new SnmpRequest(requestHandler, log);
- snmp.addCommandResponder(request);
-
- snmp.listen();
+ initResponder();
+ initMessageDispatcher();
+ initRequestHandler();
+ initTransportMapping();
+ initSession();
+ addUsmUsers();
+
+ session.listen();
}
/**
Modified: branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpRequest.java
===================================================================
--- branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpRequest.java 2011-03-04 10:45:34 UTC (rev 110837)
+++ branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/agent/SnmpRequest.java 2011-03-04 14:30:05 UTC (rev 110838)
@@ -8,6 +8,7 @@
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.mp.StateReference;
import org.snmp4j.mp.StatusInformation;
+import org.snmp4j.smi.OctetString;
public class SnmpRequest implements CommandResponder {
@@ -16,11 +17,22 @@
/** the request handler instance handling get/set requests */
private RequestHandler requestHandler;
+
+
+ // the local engine ID for our CommandResponder. This is needed for
+ // v3 communication
+ private OctetString localContextEngineID;
public SnmpRequest(RequestHandler requestHandler, Logger log){
this.requestHandler = requestHandler;
this.log = log;
}
+ // constructor with engine ID as well
+ public SnmpRequest(RequestHandler requestHandler, Logger log, OctetString ceID){
+ this.requestHandler = requestHandler;
+ this.log = log;
+ this.localContextEngineID = ceID;
+ }
public void setRequestHandler(RequestHandler requestHandler){
this.requestHandler = requestHandler;
@@ -117,4 +129,8 @@
status);
}
}
+
+ public OctetString getLocalEngineID(){
+ return this.localContextEngineID;
+ }
}
Modified: branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/test/Test.java
===================================================================
--- branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/test/Test.java 2011-03-04 10:45:34 UTC (rev 110837)
+++ branches/snmp4j-intv3/varia/src/main/java/org/jboss/jmx/adaptor/snmp/test/Test.java 2011-03-04 14:30:05 UTC (rev 110838)
@@ -124,7 +124,7 @@
target.setRetries(2);
target.setTimeout(10000);
target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
- target.setSecurityName(new OctetString("MD5DE"));
+ target.setSecurityName(new OctetString("MD5DES"));
try {
DefaultUdpTransportMapping transport = new DefaultUdpTransportMapping();
@@ -164,16 +164,18 @@
}
public static void getnext(String [] oids){
- PDU pdu = new PDU();
+ ScopedPDU pdu = new ScopedPDU();
pdu.setType(PDU.GETNEXT);
for (int i =1; i < oids.length; i++){
pdu.add(new VariableBinding(new OID(oids[i])));
}
- CommunityTarget target = new CommunityTarget();
- OctetString community = new OctetString("public");
- target.setCommunity(community);
- target.setVersion(SnmpConstants.version2c);
+ //CommunityTarget target = new CommunityTarget();
+ //OctetString community = new OctetString("public");
+ //target.setCommunity(community);
+ //target.setVersion(SnmpConstants.version2c);
+ UserTarget target = new UserTarget();
+ target.setVersion(SnmpConstants.version3);
Address targetAddress = GenericAddress.parse("udp:127.0.0.1/1161");
target.setAddress(targetAddress);
target.setRetries(2);
More information about the jboss-cvs-commits
mailing list