keith-turner commented on a change in pull request #370: ACCUMULO-4772 Update
shell to use NewTableConfiguration methods
URL: https://github.com/apache/accumulo/pull/370#discussion_r164917471
##########
File path:
shell/src/main/java/org/apache/accumulo/shell/commands/CreateTableCommand.java
##########
@@ -150,9 +169,83 @@ public int execute(final String fullCommand, final
CommandLine cl, final Shell s
return 0;
}
+ /**
+ * Add supplied locality groups information to a NewTableConfiguration
object.
+ *
+ * Used in conjunction with createtable shell command to allow locality
groups to be configured upon table creation.
+ */
+ private NewTableConfiguration setLocalityForNewTable(CommandLine cl,
NewTableConfiguration ntc) {
+ HashMap<String,Set<Text>> localityGroupMap = new HashMap<>();
+ String[] options =
cl.getOptionValues(createTableOptLocalityProps.getOpt());
+ for (String localityInfo : options) {
+ final String parts[] = localityInfo.split("=", 2);
+ if (parts.length < 2)
+ throw new IllegalArgumentException("Missing '=' or there are spaces
between entries");
+ final String groupName = parts[0];
+ final HashSet<Text> colFams = new HashSet<>();
+ for (String family : parts[1].split(","))
+ colFams.add(new Text(family.getBytes(Shell.CHARSET)));
+ if (localityGroupMap.containsKey(groupName))
Review comment:
Instead of calling containsKey, could check that put returns null. However
the current code is probably more readable and it does not need to be
efficient.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services