From f73b655466092169abac34833fb628fce1fcdebe Mon Sep 17 00:00:00 2001
From: jcduff <jcduff@localhost>
Date: Thu, 23 Oct 2008 14:04:24 +0000
Subject: [PATCH] The commit will bring the following features : - An updated version of the underlying database. BDB JE 3.3 is now used. - Attribute API refactoring providing a better abstraction and offering improved performances. - A new GUI called the Control-Panel to replace the Status-Panel: the specifications for this GUI are available on OpenDS Wiki and contains a link to a mockup. See <https://www.opends.org/wiki/page/ControlPanelUISpecification>. - Some changes in the replication protocol to implement "Assured Replication Mode". The specifications are on OpenDS Wiki at <https://www.opends.org/wiki/page/AssuredMode> and section 7 described some of the replication changes required to support this. Assured Replication is not finished, but the main replication protocol changes to support it are done. As explained by Gilles on an email on the Dev mailing list (http://markmail.org/message/46rgo3meq3vriy4a), with these changes the newer versions of OpenDS may not be able to replicate with OpenDS 1.0 instances. - Support for Service Tags on the platforms where the functionality is available and enabled. Specifications are published at <https://www.opends.org/wiki/page/OpenDSServiceTagEnabled>. For more information on Service Tags see <http://wikis.sun.com/display/ServiceTag/Sun+Service+Tag+FAQ>. - The Admin Connector service. In order to provide agentry of the OpenDS server at any time, a new service has been added, dedicated to the administration, configuration and monitoring of the server. An overview of the Admin Connector service and it's use is available on the OpenDS wiki <https://www.opends.org/wiki/page/ManagingAdministrationTrafficToTheServer> - Updates to the various command line tools to support the Admin Connector service. - Some internal re-architecting of the server to put the foundation of future developments such as virtual directory services. The new NetworkGroups and WorkFlow internal services which have been specified in <https://www.opends.org/wiki/page/BasicOperationRoutingThroughNetworkGroup> are now implemented. - Many bug fixes...
---
opends/tests/unit-tests-testng/src/server/org/opends/server/snmp/SNMPConnectionManager.java | 431 +++++++++++++++++++++++++++++------------------------
1 files changed, 236 insertions(+), 195 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/snmp/SNMPConnectionManager.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/snmp/SNMPConnectionManager.java
index 631af6d..f462b8c 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/snmp/SNMPConnectionManager.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/snmp/SNMPConnectionManager.java
@@ -26,6 +26,8 @@
*/
package org.opends.server.snmp;
+
+
import com.sun.management.snmp.SnmpEngine;
import com.sun.management.snmp.SnmpOid;
import com.sun.management.snmp.SnmpOidTableSupport;
@@ -45,228 +47,267 @@
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.ModifyOperationBasis;
import org.opends.server.protocols.internal.InternalClientConnection;
+import org.opends.server.types.Attributes;
import org.opends.server.types.Control;
import org.opends.server.types.DN;
import org.opends.server.types.Modification;
import org.opends.server.types.ModificationType;
import org.testng.annotations.Test;
+
+
/**
* An abstract class that all SNMP unit test should extend.
*/
-@Test(enabled=true, groups = {"precommit", "snmp"}, sequential = true)
-public abstract class SNMPConnectionManager extends DirectoryServerTestCase {
+@Test(enabled = true, groups =
+{
+ "precommit", "snmp"
+}, sequential = true)
+public abstract class SNMPConnectionManager extends DirectoryServerTestCase
+{
- /**
- * Snmp Port
- */
- private int snmpPort;
-
- /**
- * Snmp Trap Port
- */
- private int trapSnmpPort;
+ /**
+ * Snmp Port
+ */
+ private int snmpPort;
- /**
- * Set Up the Directory Server
- * @throws java.lang.Exception
- */
- protected void setUp() throws Exception {
-
- // Make sure that the server is up and running.
- TestCaseUtils.restartServer();
- synchronized (this) {
- this.wait(500);
+ /**
+ * Snmp Trap Port
+ */
+ private int trapSnmpPort;
+
+
+
+ /**
+ * Set Up the Directory Server
+ *
+ * @throws java.lang.Exception
+ */
+ protected void setUp() throws Exception
+ {
+
+ // Make sure that the server is up and running.
+ TestCaseUtils.restartServer();
+ synchronized (this)
+ {
+ this.wait(500);
+ }
+ SNMPConnectionHandler snmpHandler = getSNMPConnectionHandler();
+ if (snmpHandler == null)
+ {
+ throw new Exception("Unable to get a SNMP connector");
+ }
+ }
+
+
+
+ /**
+ * Set Down the Directory Server.
+ *
+ * @throws java.lang.Exception
+ */
+ protected void setDown() throws Exception
+ {
+ TestCaseUtils.restartServer();
+ }
+
+
+
+ /**
+ * Gets the Snmp port on which the Connection Handler is listening
+ *
+ * @return
+ */
+ protected int getSnmpPort()
+ {
+ return this.snmpPort;
+ }
+
+
+
+ /**
+ * Gets the Snmp trap port on which the Connection Handler is
+ * listening
+ *
+ * @return
+ */
+ protected int getTrapSnmpPort()
+ {
+ return this.trapSnmpPort;
+ }
+
+
+
+ /**
+ * Gets an SNMP V3 peer agent (proxy)
+ *
+ * @param port
+ * @return
+ */
+ protected SnmpUsmPeer getSnmpV3Peer(int port)
+ {
+
+ try
+ {
+ String host = InetAddress.getLocalHost().getCanonicalHostName();
+ SnmpOidTableSupport oidTable = new DIRECTORY_SERVER_MIBOidTable();
+ SnmpOid.setSnmpOidTable(oidTable);
+
+ SnmpSession session = new SnmpSession("SyncManagerV3 session");
+ SnmpEngine engine = session.getEngine();
+ return new SnmpUsmPeer(engine, host, port);
+ }
+ catch (Exception ex)
+ {
+ return null;
+ }
+ }
+
+
+
+ /**
+ * Gets an SNMP V2 agent peer (proxy)
+ *
+ * @param port
+ * @return
+ */
+ protected SnmpPeer getSnmpV2Peer(int port)
+ {
+
+ try
+ {
+ String host = InetAddress.getLocalHost().getCanonicalHostName();
+ SnmpOidTableSupport oidTable = new DIRECTORY_SERVER_MIBOidTable();
+ SnmpOid.setSnmpOidTable(oidTable);
+ return new SnmpPeer(host, port);
+ }
+ catch (Exception ex)
+ {
+ return null;
+ }
+ }
+
+
+
+ /**
+ * Get a reference to the SNMP connection handler.
+ *
+ * @return an SNMP Connection handler
+ * @throws an
+ * Exception is something went wrong.
+ */
+ protected SNMPConnectionHandler getSNMPConnectionHandler() throws Exception
+ {
+ List<ConnectionHandler> handlers = DirectoryServer.getConnectionHandlers();
+ assertNotNull(handlers);
+ SNMPConnectionHandler snmpConnectionHandler = null;
+ for (ConnectionHandler handler : handlers)
+ {
+ if (handler instanceof SNMPConnectionHandler)
+ {
+ snmpConnectionHandler = (SNMPConnectionHandler) handler;
+ break;
+ }
+ }
+
+ if (snmpConnectionHandler == null)
+ {
+ enableSnmp();
+ synchronized (this)
+ {
+ this.wait(500);
+ }
+ for (ConnectionHandler handler : handlers)
+ {
+ if (handler instanceof SNMPConnectionHandler)
+ {
+ snmpConnectionHandler = (SNMPConnectionHandler) handler;
+ break;
}
- SNMPConnectionHandler snmpHandler = getSNMPConnectionHandler();
- if (snmpHandler == null) {
- throw new Exception("Unable to get a SNMP connector");
- }
+ }
}
-
- /**
- * Set Down the Directory Server.
- * @throws java.lang.Exception
- */
- protected void setDown() throws Exception {
- TestCaseUtils.restartServer();
- }
-
- /**
- * Gets the Snmp port on which the Connection Handler is listening
- * @return
- */
- protected int getSnmpPort() {
- return this.snmpPort;
- }
-
- /**
- * Gets the Snmp trap port on which the Connection Handler is listening
- * @return
- */
- protected int getTrapSnmpPort() {
- return this.trapSnmpPort;
- }
+ assertNotNull(snmpConnectionHandler);
+ return snmpConnectionHandler;
+ }
- /**
- * Gets an SNMP V3 peer agent (proxy)
- * @param port
- * @return
- */
- protected SnmpUsmPeer getSnmpV3Peer(int port) {
- try {
- String host = InetAddress.getLocalHost().getCanonicalHostName();
- SnmpOidTableSupport oidTable =
- new DIRECTORY_SERVER_MIBOidTable();
- SnmpOid.setSnmpOidTable(oidTable);
+ /**
+ * Enable SNMP with the port chosen in TestCaseUtils.
+ *
+ * @throws Exception
+ * if the handler cannot be enabled.
+ */
+ protected void enableSnmp() throws Exception
+ {
- SnmpSession session = new SnmpSession("SyncManagerV3 session");
- SnmpEngine engine = session.getEngine();
- return new SnmpUsmPeer(engine, host, port);
- } catch (Exception ex) {
- return null;
- }
- }
+ // Get a free port
+ this.snmpPort = TestCaseUtils.bindFreePort().getLocalPort();
+ this.trapSnmpPort = TestCaseUtils.bindFreePort().getLocalPort();
- /**
- * Gets an SNMP V2 agent peer (proxy)
- * @param port
- * @return
- */
- protected SnmpPeer getSnmpV2Peer(int port) {
+ ArrayList<Modification> mods = new ArrayList<Modification>();
- try {
- String host = InetAddress.getLocalHost().getCanonicalHostName();
- SnmpOidTableSupport oidTable = new DIRECTORY_SERVER_MIBOidTable();
- SnmpOid.setSnmpOidTable(oidTable);
- return new SnmpPeer(host, port);
- } catch (Exception ex) {
- return null;
- }
- }
+ InternalClientConnection conn = InternalClientConnection
+ .getRootConnection();
- /**
- * Get a reference to the SNMP connection handler.
- * @return an SNMP Connection handler
- * @throws an Exception is something went wrong.
- */
- protected SNMPConnectionHandler getSNMPConnectionHandler() throws Exception {
- List<ConnectionHandler> handlers =
- DirectoryServer.getConnectionHandlers();
- assertNotNull(handlers);
- SNMPConnectionHandler snmpConnectionHandler = null;
- for (ConnectionHandler handler : handlers) {
- if (handler instanceof SNMPConnectionHandler) {
- snmpConnectionHandler = (SNMPConnectionHandler) handler;
- break;
- }
- }
+ mods.add(new Modification(ModificationType.REPLACE, Attributes.create(
+ "ds-cfg-listen-port", String.valueOf(this.snmpPort))));
- if (snmpConnectionHandler == null) {
- enableSnmp();
- synchronized (this) {
- this.wait(500);
- }
- for (ConnectionHandler handler : handlers) {
- if (handler instanceof SNMPConnectionHandler) {
- snmpConnectionHandler = (SNMPConnectionHandler) handler;
- break;
- }
- }
- }
- assertNotNull(snmpConnectionHandler);
- return snmpConnectionHandler;
- }
+ mods.add(new Modification(ModificationType.REPLACE, Attributes.create(
+ "ds-cfg-trap-port", String.valueOf(this.trapSnmpPort))));
- /**
- * Enable SNMP with the port chosen in TestCaseUtils.
- *
- * @throws Exception
- * if the handler cannot be enabled.
- */
- protected void enableSnmp() throws Exception {
+ String hosts = InetAddress.getLocalHost().getCanonicalHostName();
- // Get a free port
- this.snmpPort = TestCaseUtils.bindFreePort().getLocalPort();
- this.trapSnmpPort = TestCaseUtils.bindFreePort().getLocalPort();
-
+ mods.add(new Modification(ModificationType.ADD, Attributes.create(
+ "ds-cfg-traps-destination", hosts)));
- ArrayList<Modification> mods = new ArrayList<Modification>();
+ String jarFileLocation = System
+ .getProperty("org.opends.server.snmp.opendmk");
- InternalClientConnection conn =
- InternalClientConnection.getRootConnection();
-
- mods.add(new Modification(ModificationType.REPLACE,
- new org.opends.server.types.Attribute(
- "ds-cfg-listen-port", String.valueOf(this.snmpPort))));
-
- mods.add(new Modification(ModificationType.REPLACE,
- new org.opends.server.types.Attribute(
- "ds-cfg-trap-port", String.valueOf(this.trapSnmpPort))));
-
- String hosts = InetAddress.getLocalHost().getCanonicalHostName();
-
- mods.add(new Modification(ModificationType.ADD,
- new org.opends.server.types.Attribute(
- "ds-cfg-traps-destination", hosts)));
+ mods.add(new Modification(ModificationType.ADD, Attributes.create(
+ "ds-cfg-opendmk-jarfile", jarFileLocation + File.separator
+ + "jdmkrt.jar")));
- String jarFileLocation =
- System.getProperty("org.opends.server.snmp.opendmk");
-
- mods.add(new Modification(ModificationType.ADD,
- new org.opends.server.types.Attribute(
- "ds-cfg-opendmk-jarfile", jarFileLocation + File.separator +
- "jdmkrt.jar")));
-
- ModifyOperationBasis op = new ModifyOperationBasis(
- conn,
- conn.nextOperationID(),
- conn.nextMessageID(),
- new ArrayList<Control>(),
- DN.decode("cn=SNMP Connection Handler,cn=Connection Handlers,cn=config"),
- mods);
- op.run();
-
- mods.clear();
+ ModifyOperationBasis op = new ModifyOperationBasis(conn, conn
+ .nextOperationID(), conn.nextMessageID(), new ArrayList<Control>(), DN
+ .decode("cn=SNMP Connection Handler,cn=Connection Handlers,cn=config"),
+ mods);
+ op.run();
- mods.add(new Modification(ModificationType.REPLACE,
- new org.opends.server.types.Attribute(
- "ds-cfg-enabled", "true")));
-
- op = new ModifyOperationBasis(
- conn,
- conn.nextOperationID(),
- conn.nextMessageID(),
- new ArrayList<Control>(),
- DN.decode("cn=SNMP Connection Handler,cn=Connection Handlers,cn=config"),
- mods);
-
- op.run();
- }
+ mods.clear();
- /**
- * Enable JMX with the port chosen in TestCaseUtils.
- *
- * @throws Exception
- * if the handler cannot be enabled.
- */
- protected void enableJmx() throws Exception {
- ArrayList<Modification> mods = new ArrayList<Modification>();
+ mods.add(new Modification(ModificationType.REPLACE, Attributes
+ .create("ds-cfg-enabled", "true")));
- InternalClientConnection conn = InternalClientConnection.getRootConnection();
- mods.add(new Modification(ModificationType.REPLACE,
- new org.opends.server.types.Attribute(
- "ds-cfg-enabled", "true")));
-
- ModifyOperationBasis op = new ModifyOperationBasis(
- conn,
- conn.nextOperationID(),
- conn.nextMessageID(),
- new ArrayList<Control>(),
- DN.decode("cn=JMX Connection Handler,cn=Connection Handlers,cn=config"),
- mods);
- op.run();
- }
+ op = new ModifyOperationBasis(conn, conn.nextOperationID(), conn
+ .nextMessageID(), new ArrayList<Control>(), DN
+ .decode("cn=SNMP Connection Handler,cn=Connection Handlers,cn=config"),
+ mods);
+
+ op.run();
+ }
+
+
+
+ /**
+ * Enable JMX with the port chosen in TestCaseUtils.
+ *
+ * @throws Exception
+ * if the handler cannot be enabled.
+ */
+ protected void enableJmx() throws Exception
+ {
+ ArrayList<Modification> mods = new ArrayList<Modification>();
+
+ InternalClientConnection conn = InternalClientConnection
+ .getRootConnection();
+ mods.add(new Modification(ModificationType.REPLACE, Attributes.create(
+ "ds-cfg-enabled", "true")));
+
+ ModifyOperationBasis op = new ModifyOperationBasis(conn, conn
+ .nextOperationID(), conn.nextMessageID(), new ArrayList<Control>(), DN
+ .decode("cn=JMX Connection Handler,cn=Connection Handlers,cn=config"),
+ mods);
+ op.run();
+ }
}
--
Gitblit v1.10.0