From 2a10590dbf762f008cf32db42bbb36b0579cb633 Mon Sep 17 00:00:00 2001
From: lutoff <lutoff@localhost>
Date: Mon, 04 Jun 2007 08:05:35 +0000
Subject: [PATCH] This is another commit related to issue https://opends.dev.java.net/issues/show_bug.cgi?id=1334

---
 opends/src/ads/org/opends/admin/ads/DsServiceCliServerGroup.java |   81 ++++++++++++++++++++++++----------------
 1 files changed, 49 insertions(+), 32 deletions(-)

diff --git a/opends/src/ads/org/opends/admin/ads/DsServiceCliServerGroup.java b/opends/src/ads/org/opends/admin/ads/DsServiceCliServerGroup.java
index 1fab2e3..77215c8 100644
--- a/opends/src/ads/org/opends/admin/ads/DsServiceCliServerGroup.java
+++ b/opends/src/ads/org/opends/admin/ads/DsServiceCliServerGroup.java
@@ -38,8 +38,11 @@
 import java.util.Map;
 import java.util.Set;
 
+import javax.naming.ldap.Rdn;
+
 
 import org.opends.admin.ads.ADSContext.ServerGroupProperty;
+import org.opends.admin.ads.DsServiceCliReturnCode.ReturnCode;
 import org.opends.server.util.args.ArgumentException;
 import org.opends.server.util.args.BooleanArgument;
 import org.opends.server.util.args.StringArgument;
@@ -224,65 +227,65 @@
     // Create-group subcommand
     createGoupSubCmd = new SubCommand(argParser, SubCommandNameEnum.CREATE_GROUP
         .toString(), true, 1, 1, OPERAND_GROUPID,
-        MSGID_DSSERVICE_SUBCMD_CREATE_GROUP_DESCRIPTION);
+        MSGID_ADMIN_SUBCMD_CREATE_GROUP_DESCRIPTION);
     createGoupDescriptionArg = new StringArgument("description",
         OPTION_SHORT_DESCRIPTION, OPTION_LONG_DESCRIPTION, false, false,
         true, OPTION_VALUE_DESCRIPTION, "", null,
-        MSGID_DSSERVICE_ARG_DESCRIPTION_DESCRIPTION);
+        MSGID_ADMIN_ARG_DESCRIPTION_DESCRIPTION);
     createGoupSubCmd.addArgument(createGoupDescriptionArg);
 
     // modify-group
     modifyGroupSubCmd = new SubCommand(argParser,
         SubCommandNameEnum.MODIFY_GROUP.toString(), true, 1, 1,
-        OPERAND_GROUPID, MSGID_DSSERVICE_SUBCMD_MODIFY_GROUP_DESCRIPTION);
+        OPERAND_GROUPID, MSGID_ADMIN_SUBCMD_MODIFY_GROUP_DESCRIPTION);
     modifyGroupDescriptionArg = new StringArgument("new-description",
         OPTION_SHORT_DESCRIPTION, OPTION_LONG_DESCRIPTION, false, false,
         true, OPTION_VALUE_DESCRIPTION, "", null,
-        MSGID_DSSERVICE_ARG_NEW_DESCRIPTION_DESCRIPTION);
+        MSGID_ADMIN_ARG_NEW_DESCRIPTION_DESCRIPTION);
     modifyGroupSubCmd.addArgument(modifyGroupDescriptionArg);
     modifyGroupGroupIdArg = new StringArgument("new-groupID",
         OPTION_SHORT_GROUPID, OPTION_LONG_GROUPID, false, false, true,
         OPTION_VALUE_GROUPID, "", null,
-        MSGID_DSSERVICE_ARG_NEW_GROUPID_DESCRIPTION);
+        MSGID_ADMIN_ARG_NEW_GROUPID_DESCRIPTION);
     modifyGroupSubCmd.addArgument(modifyGroupGroupIdArg);
 
     // delete-group
     deleteGroupSubCmd = new SubCommand(argParser,SubCommandNameEnum.DELETE_GROUP
         .toString(), true, 1, 1, OPERAND_GROUPID,
-        MSGID_DSSERVICE_SUBCMD_DELETE_GROUP_DESCRIPTION);
+        MSGID_ADMIN_SUBCMD_DELETE_GROUP_DESCRIPTION);
 
     // list-groups
     listGroupSubCmd = new SubCommand(argParser, "list-groups",
-        MSGID_DSSERVICE_SUBCMD_LIST_GROUPS_DESCRIPTION);
+        MSGID_ADMIN_SUBCMD_LIST_GROUPS_DESCRIPTION);
 
     // add-to-group
     addToGroupSubCmd = new SubCommand(argParser, SubCommandNameEnum.ADD_TO_GROUP
         .toString(), true, 1, 1, OPERAND_GROUPID,
-        MSGID_DSSERVICE_SUBCMD_ADD_TO_GROUP_DESCRIPTION);
+        MSGID_ADMIN_SUBCMD_ADD_TO_GROUP_DESCRIPTION);
     addToGoupMemberIdArg = new StringArgument("memberID", OPTION_SHORT_MEMBERID,
         OPTION_LONG_MEMBERID, false, false, true, OPTION_VALUE_MEMBERID, "",
-        null, MSGID_DSSERVICE_ARG_ADD_MEMBERID_DESCRIPTION);
+        null, MSGID_ADMIN_ARG_ADD_MEMBERID_DESCRIPTION);
     addToGroupSubCmd.addArgument(addToGoupMemberIdArg);
 
     // remove-from-group
     removeFromGroupSubCmd = new SubCommand(argParser,
         SubCommandNameEnum.REMOVE_FROM_GROUP.toString(), true, 1, 1,
-        OPERAND_GROUPID, MSGID_DSSERVICE_SUBCMD_REMOVE_FROM_GROUP_DESCRIPTION);
+        OPERAND_GROUPID, MSGID_ADMIN_SUBCMD_REMOVE_FROM_GROUP_DESCRIPTION);
     removeFromGoupMemberIdArg = new StringArgument("memberID",
         OPTION_SHORT_MEMBERID, OPTION_LONG_MEMBERID, false, false, true,
         OPTION_VALUE_MEMBERID, "", null,
-        MSGID_DSSERVICE_ARG_REMOVE_MEMBERID_DESCRIPTION);
+        MSGID_ADMIN_ARG_REMOVE_MEMBERID_DESCRIPTION);
     removeFromGroupSubCmd.addArgument(removeFromGoupMemberIdArg);
 
     // list-members
     listMembersSubCmd = new SubCommand(argParser,SubCommandNameEnum.LIST_MEMBERS
         .toString(), true, 1, 1, OPERAND_GROUPID,
-        MSGID_DSSERVICE_SUBCMD_LIST_MEMBERS_DESCRIPTION);
+        MSGID_ADMIN_SUBCMD_LIST_MEMBERS_DESCRIPTION);
 
     // list-membership
     listMembershipSubCmd = new SubCommand(argParser,
         SubCommandNameEnum.LIST_MEMBERSHIP.toString(), true, 1, 1,
-        OPERAND_MEMBERID, MSGID_DSSERVICE_SUBCMD_LIST_MEMBERSHIP_DESCRIPTION);
+        OPERAND_MEMBERID, MSGID_ADMIN_SUBCMD_LIST_MEMBERSHIP_DESCRIPTION);
   }
 
   /**
@@ -297,7 +300,7 @@
   /**
    * {@inheritDoc}
    */
-  public int performSubCommand(ADSContext adsContext, SubCommand subCmd,
+  public ReturnCode performSubCommand(ADSContext adsContext, SubCommand subCmd,
       OutputStream outStream, OutputStream errStream)
       throws ADSContextException
   {
@@ -322,7 +325,7 @@
 
       // Create the group
       adsContext.createServerGroup(serverGroupProperties);
-      return 0;
+      return ReturnCode.SUCCESSFUL;
     }
     // -----------------------
     // delete-group subcommand
@@ -338,7 +341,7 @@
 
       // Delete the group
       adsContext.deleteServerGroup(serverGroupProperties);
-      return 0;
+      return ReturnCode.SUCCESSFUL;
     }
     // -----------------------
     // list-group subcommand
@@ -391,7 +394,7 @@
       catch (IOException e)
       {
       }
-      return 0;
+      return ReturnCode.SUCCESSFUL;
     }
     // -----------------------
     // modify-group subcommand
@@ -410,7 +413,9 @@
       if (modifyGroupGroupIdArg.isPresent())
       {
         // rename the entry !
-        serverGroupProperties.put(ServerGroupProperty.UID, groupId);
+        serverGroupProperties.put(ServerGroupProperty.UID,
+            modifyGroupGroupIdArg.getValue());
+        updateRequired = true;
       }
       else
       {
@@ -447,7 +452,14 @@
             serverGroupPropertiesToRemove);
       }
 
-      return 0;
+      if (updateRequired || removeRequired)
+      {
+        return ReturnCode.SUCCESSFUL;
+      }
+      else
+      {
+       return ReturnCode.SUCCESSFUL_NOP;
+      }
     }
     // -----------------------
     // add-to-group subcommand
@@ -464,13 +476,19 @@
       {
         memberList = new HashSet<String>();
       }
-      memberList.add("cn=" + addToGoupMemberIdArg.getValue());
+      String newMember = "cn="
+          + Rdn.escapeValue(addToGoupMemberIdArg.getValue());
+      if (memberList.contains(newMember))
+      {
+        return ReturnCode.ALREADY_REGISTERED;
+      }
+      memberList.add(newMember);
       serverGroupProperties.put(ServerGroupProperty.MEMBERS, memberList);
 
       // Update the server group
       adsContext.updateServerGroup(groupId, serverGroupProperties);
 
-      return 0;
+      return ReturnCode.SUCCESSFUL;
     }
     // -----------------------
     // remove-from-group subcommand
@@ -485,14 +503,13 @@
       Set<String> memberList = adsContext.getServerGroupMemberList(groupId);
       if (memberList == null)
       {
-        // TODO Error message
-        return 1;
+        return ReturnCode.NOT_YET_REGISTERED;
       }
-      String memberToRemove = "cn=" + removeFromGoupMemberIdArg.getValue();
-      if (! memberList.contains(memberToRemove))
+      String memberToRemove = "cn="
+          + Rdn.escapeValue(removeFromGoupMemberIdArg.getValue());
+      if (!memberList.contains(memberToRemove))
       {
-        // TODO Error message
-        return 1;
+        return ReturnCode.NOT_YET_REGISTERED;
       }
 
       memberList.remove(memberToRemove);
@@ -501,7 +518,7 @@
       // Update the server group
       adsContext.updateServerGroup(groupId, serverGroupProperties);
 
-      return 0;
+      return ReturnCode.SUCCESSFUL;
     }
     // -----------------------
     // list-members subcommand
@@ -514,7 +531,7 @@
       Set<String> memberList = adsContext.getServerGroupMemberList(groupId);
       if (memberList == null)
       {
-        return 0;
+        return ReturnCode.SUCCESSFUL;
       }
       StringBuffer buffer = new StringBuffer();
       for (String member : memberList)
@@ -530,7 +547,7 @@
       {
       }
 
-      return 0;
+      return ReturnCode.SUCCESSFUL;
     }
     // -----------------------
     // list-membership subcommand
@@ -577,11 +594,11 @@
       catch (IOException e)
       {
       }
-      return 0;
+      return ReturnCode.SUCCESSFUL;
     }
 
     // Should never occurs: If we are here, it means that the code to
     // handle to subcommand is not yet written.
-    return 1;
+    return ReturnCode.ERROR_UNEXPECTED;
   }
 }

--
Gitblit v1.10.0