From 3beceb095561bff52b4fb6bf3bb7bb7a2d9e079f Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Wed, 15 Nov 2006 19:50:12 +0000
Subject: [PATCH] Update the LDAPSearch, LDAPModify, LDAPCompare, and LDAPDelete tools to rename the "--controls" argument to "--control", since each instance only allows the user to specify information about a single control. Issue #1009.
---
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java | 24 +++--
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPDeleteTestCase.java | 28 +++++++
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java | 25 +++--
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPCompare.java | 25 +++--
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPDelete.java | 26 +++--
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPModifyTestCase.java | 32 ++++++++
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java | 30 +++++++
7 files changed, 146 insertions(+), 44 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPCompare.java b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPCompare.java
index 8558177..6a099c6 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPCompare.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPCompare.java
@@ -464,7 +464,7 @@
argParser.addArgument(assertionFilter);
controlStr =
- new StringArgument("controls", 'J', "controls", false, false, true,
+ new StringArgument("control", 'J', "control", false, true, true,
"{controloid[:criticality[:value|::b64value|:<filePath]]}",
null, null, MSGID_DESCRIPTION_CONTROLS);
argParser.addArgument(controlStr);
@@ -698,19 +698,22 @@
compareOptions.setVerbose(verbose.isPresent());
compareOptions.setContinueOnError(continueOnError.isPresent());
compareOptions.setEncoding(encodingStr.getValue());
- if(controlStr.hasValue())
+
+ if(controlStr.isPresent())
{
- String ctrlString = controlStr.getValue();
- LDAPControl ctrl = LDAPToolUtils.getControl(ctrlString, err);
- if(ctrl == null)
+ for (String ctrlString : controlStr.getValues())
{
- int msgID = MSGID_TOOL_INVALID_CONTROL_STRING;
- String message = getMessage(msgID, ctrlString);
- err.println(wrapText(message, MAX_LINE_WIDTH));
- err.println(argParser.getUsage());
- return 1;
+ LDAPControl ctrl = LDAPToolUtils.getControl(ctrlString, err);
+ if(ctrl == null)
+ {
+ int msgID = MSGID_TOOL_INVALID_CONTROL_STRING;
+ String message = getMessage(msgID, ctrlString);
+ err.println(wrapText(message, MAX_LINE_WIDTH));
+ err.println(argParser.getUsage());
+ return 1;
+ }
+ compareOptions.getControls().add(ctrl);
}
- compareOptions.getControls().add(ctrl);
}
if (assertionFilter.isPresent())
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPDelete.java b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPDelete.java
index 0a8830e..1e9db57 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPDelete.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPDelete.java
@@ -440,7 +440,7 @@
argParser.addArgument(deleteSubtree);
controlStr =
- new StringArgument("controls", 'J', "controls", false, false, true,
+ new StringArgument("control", 'J', "control", false, true, true,
"{controloid[:criticality[:value|::b64value|:<fileurl]]}",
null, null, MSGID_DESCRIPTION_CONTROLS);
argParser.addArgument(controlStr);
@@ -591,20 +591,24 @@
deleteOptions.setContinueOnError(continueOnError.isPresent());
deleteOptions.setEncoding(encodingStr.getValue());
deleteOptions.setDeleteSubtree(deleteSubtree.isPresent());
- if(controlStr.hasValue())
+
+ if(controlStr.isPresent())
{
- String ctrlString = controlStr.getValue();
- LDAPControl ctrl = LDAPToolUtils.getControl(ctrlString, err);
- if(ctrl == null)
+ for (String ctrlString : controlStr.getValues())
{
- int msgID = MSGID_TOOL_INVALID_CONTROL_STRING;
- String message = getMessage(msgID, ctrlString);
- err.println(wrapText(message, MAX_LINE_WIDTH));
- err.println(argParser.getUsage());
- return 1;
+ LDAPControl ctrl = LDAPToolUtils.getControl(ctrlString, err);
+ if(ctrl == null)
+ {
+ int msgID = MSGID_TOOL_INVALID_CONTROL_STRING;
+ String message = getMessage(msgID, ctrlString);
+ err.println(wrapText(message, MAX_LINE_WIDTH));
+ err.println(argParser.getUsage());
+ return 1;
+ }
+ deleteOptions.getControls().add(ctrl);
}
- deleteOptions.getControls().add(ctrl);
}
+
if(deleteOptions.getDeleteSubtree())
{
LDAPControl control = new LDAPControl(OID_SUBTREE_DELETE_CONTROL);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java
index eea5826..65cc23a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java
@@ -726,7 +726,7 @@
argParser.addArgument(postReadAttributes);
controlStr =
- new StringArgument("controls", 'J', "controls", false, false, true,
+ new StringArgument("control", 'J', "control", false, true, true,
"{controloid[:criticality[:value|::b64value|:<fileurl]]}",
null, null, MSGID_DESCRIPTION_CONTROLS);
argParser.addArgument(controlStr);
@@ -878,19 +878,22 @@
modifyOptions.setContinueOnError(continueOnError.isPresent());
modifyOptions.setEncoding(encodingStr.getValue());
modifyOptions.setDefaultAdd(defaultAdd.isPresent());
- if(controlStr.hasValue())
+
+ if (controlStr.isPresent())
{
- String ctrlString = controlStr.getValue();
- LDAPControl ctrl = LDAPToolUtils.getControl(ctrlString, err);
- if(ctrl == null)
+ for (String ctrlString : controlStr.getValues())
{
- int msgID = MSGID_TOOL_INVALID_CONTROL_STRING;
- String message = getMessage(msgID, ctrlString);
- err.println(wrapText(message, MAX_LINE_WIDTH));
- err.println(argParser.getUsage());
- return 1;
+ LDAPControl ctrl = LDAPToolUtils.getControl(ctrlString, err);
+ if(ctrl == null)
+ {
+ int msgID = MSGID_TOOL_INVALID_CONTROL_STRING;
+ String message = getMessage(msgID, ctrlString);
+ err.println(wrapText(message, MAX_LINE_WIDTH));
+ err.println(argParser.getUsage());
+ return 1;
+ }
+ modifyOptions.getControls().add(ctrl);
}
- modifyOptions.getControls().add(ctrl);
}
if (proxyAuthzID.isPresent())
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java
index a283b60..538b086 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java
@@ -702,7 +702,7 @@
argParser.addArgument(matchedValuesFilter);
controlStr =
- new StringArgument("controls", 'J', "controls", false, false, true,
+ new StringArgument("control", 'J', "control", false, true, true,
"{controloid[:criticality[:value|::b64value|:<fileurl]]}",
null, null, MSGID_DESCRIPTION_CONTROLS);
argParser.addArgument(controlStr);
@@ -955,19 +955,21 @@
return 1;
}
- if(controlStr.hasValue())
+ if(controlStr.isPresent())
{
- String ctrlString = controlStr.getValue();
- LDAPControl ctrl = LDAPToolUtils.getControl(ctrlString, err);
- if(ctrl == null)
+ for (String ctrlString : controlStr.getValues())
{
- int msgID = MSGID_TOOL_INVALID_CONTROL_STRING;
- String message = getMessage(msgID, ctrlString);
- err.println(wrapText(message, MAX_LINE_WIDTH));
- err.println(argParser.getUsage());
- return 1;
+ LDAPControl ctrl = LDAPToolUtils.getControl(ctrlString, err);
+ if(ctrl == null)
+ {
+ int msgID = MSGID_TOOL_INVALID_CONTROL_STRING;
+ String message = getMessage(msgID, ctrlString);
+ err.println(wrapText(message, MAX_LINE_WIDTH));
+ err.println(argParser.getUsage());
+ return 1;
+ }
+ searchOptions.getControls().add(ctrl);
}
- searchOptions.getControls().add(ctrl);
}
if (proxyAuthzID.isPresent())
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPDeleteTestCase.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPDeleteTestCase.java
index 735099f..844c7a4 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPDeleteTestCase.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPDeleteTestCase.java
@@ -850,6 +850,34 @@
/**
+ * Tests the inclusion of multiple arbitrary controls in the request to the
+ * server.
+ *
+ * @throws Exception If an unexpectd problem occurs.
+ */
+ @Test()
+ public void testMultipleRequestControls()
+ throws Exception
+ {
+ TestCaseUtils.initializeTestBackend(true);
+
+ String[] args =
+ {
+ "-h", "127.0.0.1",
+ "-p", String.valueOf(TestCaseUtils.getServerLdapPort()),
+ "-D", "cn=Directory Manager",
+ "-w", "password",
+ "-J", OID_MANAGE_DSAIT_CONTROL + ":false",
+ "-J", OID_SUBTREE_DELETE_CONTROL + ":true",
+ "o=test"
+ };
+
+ assertEquals(LDAPDelete.mainDelete(args, false, null, System.err), 0);
+ }
+
+
+
+ /**
* Tests the LDAPDelete tool with the "--help" option.
*/
@Test()
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPModifyTestCase.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPModifyTestCase.java
index 0eb0858..5419bed 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPModifyTestCase.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPModifyTestCase.java
@@ -1549,6 +1549,38 @@
/**
+ * Tests the inclusion of multiple arbitrary controls in the request to the
+ * server.
+ *
+ * @throws Exception If an unexpectd problem occurs.
+ */
+ @Test()
+ public void testMultipleRequestControls()
+ throws Exception
+ {
+ TestCaseUtils.initializeTestBackend(true);
+
+ String path = TestCaseUtils.createTempFile(
+ "dn: o=test",
+ "changetype: delete");
+
+ String[] args =
+ {
+ "-h", "127.0.0.1",
+ "-p", String.valueOf(TestCaseUtils.getServerLdapPort()),
+ "-D", "cn=Directory Manager",
+ "-w", "password",
+ "-J", OID_MANAGE_DSAIT_CONTROL + ":false",
+ "-J", OID_SUBTREE_DELETE_CONTROL + ":true",
+ "-f", path
+ };
+
+ assertEquals(LDAPModify.mainModify(args, false, null, System.err), 0);
+ }
+
+
+
+ /**
* Tests with various forms of malformed LDIF changes.
*
* @throws Exception If an unexpected problem occurs.
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java
index 3672f92..e587352 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java
@@ -1350,6 +1350,36 @@
/**
+ * Tests the inclusion of multiple arbitrary controls in the request to the
+ * server.
+ *
+ * @throws Exception If an unexpectd problem occurs.
+ */
+ @Test()
+ public void testMultipleRequestControls()
+ throws Exception
+ {
+ TestCaseUtils.initializeTestBackend(true);
+
+ String[] args =
+ {
+ "-h", "127.0.0.1",
+ "-p", String.valueOf(TestCaseUtils.getServerLdapPort()),
+ "-D", "cn=Directory Manager",
+ "-w", "password",
+ "-b", "o=test",
+ "-s", "base",
+ "-J", OID_ACCOUNT_USABLE_CONTROL + ":true",
+ "-J", OID_MANAGE_DSAIT_CONTROL + ":false",
+ "(objectClass=*)"
+ };
+
+ assertEquals(LDAPSearch.mainSearch(args, false, null, System.err), 0);
+ }
+
+
+
+ /**
* Tests the LDAPSearch tool with the "--help" option.
*/
@Test()
--
Gitblit v1.10.0