You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by sm...@apache.org on 2014/10/15 03:07:54 UTC

[16/23] git commit: SLIDER-516 registry command to take a user like "--user steve"

SLIDER-516 registry command to take a user like "--user steve"


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

Branch: refs/heads/feature/SLIDER-481_allow_dedicated_handling_of_exports
Commit: baa79a7464e4513e6428d66a830341c09396b1e2
Parents: d08a61d
Author: Steve Loughran <st...@apache.org>
Authored: Tue Oct 14 16:07:22 2014 -0700
Committer: Steve Loughran <st...@apache.org>
Committed: Tue Oct 14 16:07:22 2014 -0700

----------------------------------------------------------------------
 .../org/apache/slider/client/SliderClient.java  |  9 ++++++++-
 .../common/params/ActionRegistryArgs.java       |  6 +++++-
 .../apache/slider/common/params/Arguments.java  |  1 +
 .../TestStandaloneYarnRegistryAM.groovy         | 20 +++++++++++++++++++-
 4 files changed, 33 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/baa79a74/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 750bfaa..2589814 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
@@ -2728,7 +2728,14 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
   private ServiceRecord lookupServiceRecord(ActionRegistryArgs registryArgs) throws
       SliderException,
       IOException {
-    String path = servicePath(currentUser(), registryArgs.serviceType,
+    String user;
+    if (StringUtils.isNotEmpty(registryArgs.user)) {
+      user = RegistryPathUtils.encodeForRegistry(registryArgs.user);
+    } else {
+      user = currentUser();
+    }
+
+    String path = servicePath(user, registryArgs.serviceType,
         registryArgs.name);
     return resolve(path);
   }

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/baa79a74/slider-core/src/main/java/org/apache/slider/common/params/ActionRegistryArgs.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/common/params/ActionRegistryArgs.java b/slider-core/src/main/java/org/apache/slider/common/params/ActionRegistryArgs.java
index df40ef1..deae4eb 100644
--- a/slider-core/src/main/java/org/apache/slider/common/params/ActionRegistryArgs.java
+++ b/slider-core/src/main/java/org/apache/slider/common/params/ActionRegistryArgs.java
@@ -52,6 +52,7 @@ public class ActionRegistryArgs extends AbstractActionArgs {
       + Arguments.ARG_NAME + " <name> "
       + " )"
       + "[" + Arguments.ARG_VERBOSE + "] "
+      + "[" + Arguments.ARG_USER + "] "
       + "[" + Arguments.ARG_OUTPUT + " <filename> ] "
       + "[" + Arguments.ARG_SERVICETYPE + " <servicetype> ] "
       + "[" + Arguments.ARG_FORMAT + " <xml|json|properties>] "
@@ -121,7 +122,10 @@ public class ActionRegistryArgs extends AbstractActionArgs {
   @Parameter(names = {ARG_INTERNAL},
       description = "fetch internal registry entries")
   public boolean internal;
-  
+
+  @Parameter(names = {ARG_USER},
+      description = "the name of the user whose application is being resolved")
+  public String user;
   /**
    * validate health of all the different operations
    * @throws BadCommandArgumentsException

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/baa79a74/slider-core/src/main/java/org/apache/slider/common/params/Arguments.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/common/params/Arguments.java b/slider-core/src/main/java/org/apache/slider/common/params/Arguments.java
index 4deebd7..1ea575e 100644
--- a/slider-core/src/main/java/org/apache/slider/common/params/Arguments.java
+++ b/slider-core/src/main/java/org/apache/slider/common/params/Arguments.java
@@ -75,6 +75,7 @@ public interface Arguments {
   String ARG_SERVICETYPE = "--servicetype";
   String ARG_SYSPROP = "-S";
   String ARG_TEMPLATE = "--template";
+  String ARG_USER = "--user";
   String ARG_VERBOSE = "--verbose";
   String ARG_WAIT = "--wait";
   String ARG_ZKPATH = "--zkpath";

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/baa79a74/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneYarnRegistryAM.groovy
----------------------------------------------------------------------
diff --git a/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneYarnRegistryAM.groovy b/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneYarnRegistryAM.groovy
index e75cc57..78b4514 100644
--- a/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneYarnRegistryAM.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneYarnRegistryAM.groovy
@@ -23,6 +23,7 @@ import groovy.util.logging.Slf4j
 import org.apache.hadoop.fs.FileUtil
 import org.apache.hadoop.fs.PathNotFoundException
 import org.apache.hadoop.registry.client.binding.RegistryPathUtils
+import org.apache.hadoop.registry.client.binding.RegistryUtils
 import org.apache.hadoop.yarn.api.records.ApplicationReport
 import org.apache.hadoop.yarn.api.records.YarnApplicationState
 import org.apache.hadoop.yarn.conf.YarnConfiguration
@@ -61,7 +62,7 @@ import static org.apache.slider.core.registry.info.CustomRegistryConstants.*
 /**
  *  work with a YARN registry
  */
-@CompileStatic
+//@CompileStatic
 @Slf4j
 
 class TestStandaloneYarnRegistryAM extends AgentMiniClusterTestBase {
@@ -448,6 +449,7 @@ class TestStandaloneYarnRegistryAM extends AgentMiniClusterTestBase {
 
     def yarn_site_config = PublishedArtifacts.YARN_SITE_CONFIG
     registryArgs.getConf = yarn_site_config
+    registryArgs.user = currentUser()
 
     //properties format
     registryArgs.format = "properties"
@@ -463,6 +465,7 @@ class TestStandaloneYarnRegistryAM extends AgentMiniClusterTestBase {
     registryArgs = new ActionRegistryArgs(clustername)
     registryArgs.getConf = yarn_site_config
     registryArgs.out = outputDir
+    registryArgs.user = ""
     describe registryArgs.toString()
     client.actionRegistry(registryArgs)
     assert new File(outputDir, yarn_site_config + ".xml").exists()
@@ -477,6 +480,21 @@ class TestStandaloneYarnRegistryAM extends AgentMiniClusterTestBase {
     registryArgs.getConf = unknownFilename
     assert SliderExitCodes.EXIT_NOT_FOUND == client.actionRegistry(registryArgs)
 
+    //look for a different user
+    try {
+      def args = new ActionRegistryArgs(
+          name: clustername,
+          user: "unknown",
+          serviceType: SliderKeys.APP_TYPE,
+          listConf: true,
+          verbose: true
+      )
+      client.actionRegistry(args)
+      fail("registry operation succeeded unexpectedly on $args")
+    } catch (UnknownApplicationInstanceException expected) {
+      // expected
+    }
+    
     describe "stop cluster"
     //now kill that cluster
     assert 0 == clusterActionFreeze(client, clustername)