[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