From 9e4f312fe9c0820638503b40b5fcbb6571e23354 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 27 Jul 2007 17:29:33 +0000
Subject: [PATCH] Partial 95% fix for issue 1831 - dsconfig interactive mode.
---
opends/src/server/org/opends/server/tools/dsconfig/CreateSubCommandHandler.java | 34 +++++++++++++++++++++++++++++++++-
1 files changed, 33 insertions(+), 1 deletions(-)
diff --git a/opends/src/server/org/opends/server/tools/dsconfig/CreateSubCommandHandler.java b/opends/src/server/org/opends/server/tools/dsconfig/CreateSubCommandHandler.java
index da46c18..489d4fc 100644
--- a/opends/src/server/org/opends/server/tools/dsconfig/CreateSubCommandHandler.java
+++ b/opends/src/server/org/opends/server/tools/dsconfig/CreateSubCommandHandler.java
@@ -40,7 +40,9 @@
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
+import java.util.SortedSet;
import java.util.TreeMap;
+import java.util.TreeSet;
import org.opends.server.admin.AbstractManagedObjectDefinition;
import org.opends.server.admin.Configuration;
@@ -407,6 +409,10 @@
// Create the naming arguments.
this.namingArgs = createNamingArgs(subCommand, c, true);
+ // Register common arguments.
+ registerAdvancedModeArgument(this.subCommand,
+ MSGID_DSCFG_DESCRIPTION_ADVANCED_SET, r.getUserFriendlyName());
+
// Create the --property argument which is used to specify
// property values.
this.propertySetArgument = new StringArgument(OPTION_DSCFG_LONG_SET,
@@ -588,6 +594,32 @@
setProperty(child, provider, pd);
}
+ // Interactively set properties if applicable.
+ if (getConsoleApplication().isInteractive()) {
+ SortedSet<PropertyDefinition<?>> properties =
+ new TreeSet<PropertyDefinition<?>>();
+
+ for (PropertyDefinition<?> pd : d.getAllPropertyDefinitions()) {
+ if (pd.hasOption(PropertyOption.HIDDEN)) {
+ continue;
+ }
+
+ if (pd.hasOption(PropertyOption.MONITORING)) {
+ continue;
+ }
+
+ if (!isAdvancedMode() && pd.hasOption(PropertyOption.ADVANCED)) {
+ continue;
+ }
+
+ properties.add(pd);
+ }
+
+ PropertyValueReader reader =
+ new PropertyValueReader(getConsoleApplication());
+ reader.readAll(child, properties);
+ }
+
// Confirm commit.
String prompt = String.format(Messages.getString("create.confirm"), d
.getUserFriendlyName());
@@ -649,7 +681,7 @@
final List<DefaultBehaviorException> exceptions)
throws ArgumentException, ClientException {
int msgID = MSGID_DSCFG_CREATE_NAME_PROMPT;
- String msg = getMessage(msgID, relation.getUserFriendlyName());
+ String msg = getMessage(msgID, d.getUserFriendlyName());
ValidationCallback<ManagedObject<? extends C>> validator =
new ValidationCallback<ManagedObject<? extends C>>() {
--
Gitblit v1.10.0