From 6f07644ddf1bfa21ae41b8896dfb2709561ff066 Mon Sep 17 00:00:00 2001
From: lutoff <lutoff@localhost>
Date: Mon, 23 Jul 2007 13:26:31 +0000
Subject: [PATCH] Fix for issue 2008 add-to-group checks if the server in registered in the ADS
---
opends/src/server/org/opends/server/messages/AdminMessages.java | 11 +++++++++++
opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliReturnCode.java | 7 ++++++-
opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliServerGroup.java | 20 ++++++++++++++++++++
3 files changed, 37 insertions(+), 1 deletions(-)
diff --git a/opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliReturnCode.java b/opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliReturnCode.java
index 393199a..7749b2f 100644
--- a/opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliReturnCode.java
+++ b/opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliReturnCode.java
@@ -142,7 +142,12 @@
/**
* Unexpected error (potential bug).
*/
- CONFLICTING_ARGS(18, MSGID_ADMIN_NO_MESSAGE);
+ CONFLICTING_ARGS(18, MSGID_ADMIN_NO_MESSAGE),
+
+ /**
+ * The server entity is not yet registered.
+ */
+ SERVER_NOT_REGISTERED(19, MSGID_ADMIN_SERVER_NOT_REGISTERED);
// The retunCodevalue of the value.
private final int returnCode;
diff --git a/opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliServerGroup.java b/opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliServerGroup.java
index fa3873b..33bb021 100644
--- a/opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliServerGroup.java
+++ b/opends/src/server/org/opends/server/admin/client/cli/DsFrameworkCliServerGroup.java
@@ -46,6 +46,7 @@
import org.opends.admin.ads.ADSContext;
import org.opends.admin.ads.ADSContextException;
import org.opends.admin.ads.ADSContext.ServerGroupProperty;
+import org.opends.admin.ads.ADSContext.ServerProperty;
import org.opends.server.admin.client.cli.DsFrameworkCliReturnCode.ReturnCode;
import org.opends.server.util.args.ArgumentException;
import org.opends.server.util.args.BooleanArgument;
@@ -725,6 +726,25 @@
}
adsCtx = new ADSContext(ctx) ;
+ // Check if the server is registered inside to ADS
+ Set<Map<ServerProperty, Object>> serverList = adsCtx
+ .readServerRegistry();
+ boolean found = false ;
+ for (Map<ServerProperty, Object> serverProperties : serverList)
+ {
+ String serverId = ADSContext
+ .getServerIdFromServerProperties(serverProperties);
+ if (addToGoupMemberNameArg.getValue().equals(serverId))
+ {
+ found = true;
+ break;
+ }
+ }
+ if ( !found )
+ {
+ return ReturnCode.SERVER_NOT_REGISTERED;
+ }
+
// get the current member list
Set<String> memberList = adsCtx.getServerGroupMemberList(groupId);
if (memberList == null)
diff --git a/opends/src/server/org/opends/server/messages/AdminMessages.java b/opends/src/server/org/opends/server/messages/AdminMessages.java
index 7548dae..58d22e0 100644
--- a/opends/src/server/org/opends/server/messages/AdminMessages.java
+++ b/opends/src/server/org/opends/server/messages/AdminMessages.java
@@ -556,6 +556,15 @@
public static final int MSGID_ADMIN_ARG_SERVERID_DESCRIPTION =
CATEGORY_MASK_ADMIN | SEVERITY_MASK_INFORMATIONAL | 65;
+ /**
+ * The message ID for the message that will be used server that the user
+ * wants to add in a group is not yet register in the ADS.
+ * This does not take any arguments.
+ */
+ public static final int MSGID_ADMIN_SERVER_NOT_REGISTERED=
+ CATEGORY_MASK_ADMIN | SEVERITY_MASK_FATAL_ERROR | 66;
+
+
// Prevent instantiation.
private AdminMessages() {
// Do nothing.
@@ -763,5 +772,7 @@
registerMessage(MSGID_ADMIN_ARG_SERVERID_DESCRIPTION,
"The registered server's unique identifier. " +
"This is a required argument");
+ registerMessage(MSGID_ADMIN_SERVER_NOT_REGISTERED,
+ "The provided serverId is not registered");
}
}
--
Gitblit v1.10.0