Repository: incubator-slider
Updated Branches:
  refs/heads/develop f83ce7571 -> 9c2080baa


SLIDER-596 add processing for USER_NAME token to slider client


Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/9c2080ba
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/9c2080ba
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/9c2080ba

Branch: refs/heads/develop
Commit: 9c2080baa788f7b476e33e53dc5f5cf50490d458
Parents: f83ce75
Author: Jon Maron <jma...@hortonworks.com>
Authored: Fri Oct 31 19:20:32 2014 -0400
Committer: Jon Maron <jma...@hortonworks.com>
Committed: Fri Oct 31 19:20:32 2014 -0400

----------------------------------------------------------------------
 .../org/apache/slider/client/SliderClient.java  |  1 +
 .../slider/client/TestClientBasicArgs.groovy    |  2 -
 .../slider/client/TestReplaceTokens.groovy      | 62 ++++++++++++++++++++
 .../examples/app_configuration_tokenized.json   | 27 +++++++++
 4 files changed, 90 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/9c2080ba/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java 
b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
index 0e87906..d9100e4 100644
--- a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
+++ b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
@@ -960,6 +960,7 @@ public class SliderClient extends 
AbstractSliderLaunchedService implements RunSe
   private static String replaceTokens(String s, String userName,
       String clusterName) throws IOException {
     return s.replaceAll(Pattern.quote("${USER}"), userName)
+        .replaceAll(Pattern.quote("${USER_NAME}"), userName)
         .replaceAll(Pattern.quote("${CLUSTER_NAME}"), clusterName);
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/9c2080ba/slider-core/src/test/groovy/org/apache/slider/client/TestClientBasicArgs.groovy
----------------------------------------------------------------------
diff --git 
a/slider-core/src/test/groovy/org/apache/slider/client/TestClientBasicArgs.groovy
 
b/slider-core/src/test/groovy/org/apache/slider/client/TestClientBasicArgs.groovy
index d1e86a1..23c1ffa 100644
--- 
a/slider-core/src/test/groovy/org/apache/slider/client/TestClientBasicArgs.groovy
+++ 
b/slider-core/src/test/groovy/org/apache/slider/client/TestClientBasicArgs.groovy
@@ -55,8 +55,6 @@ class TestClientBasicArgs extends ServiceLauncherBaseTest {
                                         [])
   }
 
-  // removed due to retry policy dicating 15 minutes of retries for the
-  // generated UnknownHostExceptionj
   @Test
   public void testListUnknownRM() throws Throwable {
     try {

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/9c2080ba/slider-core/src/test/groovy/org/apache/slider/client/TestReplaceTokens.groovy
----------------------------------------------------------------------
diff --git 
a/slider-core/src/test/groovy/org/apache/slider/client/TestReplaceTokens.groovy 
b/slider-core/src/test/groovy/org/apache/slider/client/TestReplaceTokens.groovy
new file mode 100644
index 0000000..c4c755d
--- /dev/null
+++ 
b/slider-core/src/test/groovy/org/apache/slider/client/TestReplaceTokens.groovy
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.slider.client
+
+import org.apache.hadoop.yarn.conf.YarnConfiguration
+import org.apache.slider.common.params.Arguments
+import org.apache.slider.common.params.ClientArgs
+import org.apache.slider.common.tools.SliderUtils
+import org.apache.slider.core.conf.ConfTree
+import org.apache.slider.core.main.ServiceLauncher
+import org.apache.slider.core.main.ServiceLauncherBaseTest
+import org.apache.slider.core.persist.ConfTreeSerDeser
+import org.apache.slider.core.persist.JsonSerDeser
+import org.junit.Assert
+import org.junit.Test
+
+/**
+ * Test bad argument handling
+ */
+//@CompileStatic
+class TestReplaceTokens extends Assert {
+
+  static final String PACKAGE = "/org/apache/slider/core/conf/examples/"
+  static final String app_configuration = "app_configuration_tokenized.json"
+  static final String app_configuration_processed =
+    "app_configuration_processed.json"
+
+  /**
+   * help should print out help string and then succeed
+   * @throws Throwable
+   */
+  @Test
+  public void testHelp() throws Throwable {
+    JsonSerDeser<ConfTree> confTreeJsonSerDeser =
+      new JsonSerDeser<ConfTree>(ConfTree)
+    def confTree = confTreeJsonSerDeser.fromResource(PACKAGE + 
app_configuration)
+    SliderClient.replaceTokens(confTree, "testUser", "testCluster")
+    assert confTree.global.get("site.fs.defaultFS") == 
"hdfs://testCluster:8020"
+    assert confTree.global.get("site.fs.default.name") == 
"hdfs://testCluster:8020"
+    assert confTree.global.get("site.hbase.user_name") == "testUser"
+    assert confTree.global.get("site.hbase.another.user") == "testUser"
+
+
+  }
+  
+}

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/9c2080ba/slider-core/src/test/resources/org/apache/slider/core/conf/examples/app_configuration_tokenized.json
----------------------------------------------------------------------
diff --git 
a/slider-core/src/test/resources/org/apache/slider/core/conf/examples/app_configuration_tokenized.json
 
b/slider-core/src/test/resources/org/apache/slider/core/conf/examples/app_configuration_tokenized.json
new file mode 100644
index 0000000..b902469
--- /dev/null
+++ 
b/slider-core/src/test/resources/org/apache/slider/core/conf/examples/app_configuration_tokenized.json
@@ -0,0 +1,27 @@
+{
+  "schema": "http://example.org/specification/v2.0.0";,
+
+  "global": {
+
+    "zookeeper.port": "2181",
+    "zookeeper.path": "/yarnapps_small_cluster",
+    "zookeeper.hosts": "zoo1,zoo2,zoo3",
+    "env.MALLOC_ARENA_MAX": "4",
+    "site.hbase.master.startup.retainassign": "true",
+    "site.fs.defaultFS": "hdfs://${CLUSTER_NAME}:8020",
+    "site.fs.default.name": "hdfs://${CLUSTER_NAME}:8020",
+    "site.hbase.master.info.port": "0",
+    "site.hbase.regionserver.info.port": "0",
+    "site.hbase.user_name": "${USER}",
+    "site.hbase.another.user": "${USER_NAME}"
+  },
+  "components": {
+
+    "worker": {
+      "jvm.heapsize": "512M"
+    },
+    "master": {
+      "jvm.heapsize": "512M"
+    }
+  }
+}
\ No newline at end of file

Reply via email to