SchedConfCLI extends Configured implements Tool { @VisibleForTesting void updateQueues(String args, SchedConfUpdateInfo updateInfo) { if (args == null) { return; } ArrayList<QueueConfigInfo> queueConfigInfos = new ArrayList<>(); for (String arg : args.split(";")) { queueConfigInfos.add(getQueueConfigInfo(arg)); } updateInfo.setUpdateQueueInfo(queueConfigInfos); } SchedConfCLI(); static void main(String[] args); @Override int run(String[] args);  }
@Test(timeout = 10000) public void testUpdateQueues() { SchedConfUpdateInfo schedUpdateInfo = new SchedConfUpdateInfo(); Map<String, String> paramValues = new HashMap<>(); cli.updateQueues("root.a:a1=aVal1,a2=aVal2,a3=", schedUpdateInfo); List<QueueConfigInfo> updateQueueInfo = schedUpdateInfo .getUpdateQueueInfo(); paramValues.put("a1", "aVal1"); paramValues.put("a2", "aVal2"); paramValues.put("a3", null); validateQueueConfigInfo(updateQueueInfo, 0, "root.a", paramValues); schedUpdateInfo = new SchedConfUpdateInfo(); cli.updateQueues("root.b:b1=bVal1;root.c:c1=cVal1", schedUpdateInfo); updateQueueInfo = schedUpdateInfo.getUpdateQueueInfo(); assertEquals(2, updateQueueInfo.size()); paramValues.clear(); paramValues.put("b1", "bVal1"); validateQueueConfigInfo(updateQueueInfo, 0, "root.b", paramValues); paramValues.clear(); paramValues.put("c1", "cVal1"); validateQueueConfigInfo(updateQueueInfo, 1, "root.c", paramValues); }
@Test(timeout = 10000) public void testUpdateQueuesWithCommaInValue() { SchedConfUpdateInfo schedUpdateInfo = new SchedConfUpdateInfo(); cli.updateQueues("root.a:a1=a1Val1\\,a1Val2 a1Val3,a2=a2Val1\\,a2Val2", schedUpdateInfo); List<QueueConfigInfo> updateQueueInfo = schedUpdateInfo .getUpdateQueueInfo(); Map<String, String> paramValues = new HashMap<>(); paramValues.put("a1", "a1Val1,a1Val2 a1Val3"); paramValues.put("a2", "a2Val1,a2Val2"); validateQueueConfigInfo(updateQueueInfo, 0, "root.a", paramValues); }