You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by st...@apache.org on 2015/11/23 18:20:30 UTC

[18/50] incubator-slider git commit: SLIDER-985 add minicluster test of AA placement

SLIDER-985 add minicluster test of AA placement


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

Branch: refs/heads/develop
Commit: 8c5065d92406b766953cc99369cc1b9af02d392d
Parents: 178bd96
Author: Steve Loughran <st...@apache.org>
Authored: Fri Nov 13 18:19:12 2015 +0000
Committer: Steve Loughran <st...@apache.org>
Committed: Fri Nov 13 18:19:12 2015 +0000

----------------------------------------------------------------------
 .../slider/providers/PlacementPolicy.java       |  2 +-
 .../providers/agent/TestAgentAAEcho.groovy      | 99 ++++++++++++++++++++
 .../slider/providers/agent/TestAgentEcho.groovy | 12 ++-
 slider-core/src/test/python/metainfo.xml        |  2 +-
 4 files changed, 109 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/8c5065d9/slider-core/src/main/java/org/apache/slider/providers/PlacementPolicy.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/providers/PlacementPolicy.java b/slider-core/src/main/java/org/apache/slider/providers/PlacementPolicy.java
index e0913a5..71d7566 100644
--- a/slider-core/src/main/java/org/apache/slider/providers/PlacementPolicy.java
+++ b/slider-core/src/main/java/org/apache/slider/providers/PlacementPolicy.java
@@ -46,7 +46,7 @@ public class PlacementPolicy {
   public static final int NO_DATA_LOCALITY = 2;
 
   /**
-   * Anti-affinity is mandatory. This is not supported in YARN
+   * Anti-affinity is mandatory.
    */
   public static final int ANTI_AFFINITY_REQUIRED = 4;
   

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/8c5065d9/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentAAEcho.groovy
----------------------------------------------------------------------
diff --git a/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentAAEcho.groovy b/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentAAEcho.groovy
new file mode 100644
index 0000000..0b89f47
--- /dev/null
+++ b/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentAAEcho.groovy
@@ -0,0 +1,99 @@
+/*
+ * 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.providers.agent
+
+import groovy.transform.CompileStatic
+import groovy.util.logging.Slf4j
+import org.apache.slider.api.ResourceKeys
+import org.apache.slider.client.SliderClient
+import org.apache.slider.common.SliderXmlConfKeys
+import org.apache.slider.core.main.ServiceLauncher
+import org.apache.slider.providers.PlacementPolicy
+import org.junit.Test
+
+import static org.apache.slider.common.params.Arguments.*
+import static org.apache.slider.providers.agent.AgentKeys.*
+
+/**
+ * Tests an echo command
+ */
+@CompileStatic
+@Slf4j
+class TestAgentAAEcho extends TestAgentEcho {
+
+  @Test
+  public void testEchoOperation() throws Throwable {
+    assumeValidServerEnv()
+
+    String clustername = createMiniCluster("",
+        configuration,
+        1,
+        1,
+        1,
+        true,
+        false)
+
+    validatePaths()
+
+    def echo = "echo"
+    Map<String, Integer> roles = [
+        (echo): 2,
+    ];
+    ServiceLauncher<SliderClient> launcher = buildAgentCluster(clustername,
+        roles,
+        [
+            ARG_OPTION, PACKAGE_PATH, slider_core.absolutePath,
+            ARG_OPTION, APP_DEF, toURIArg(app_def_path),
+            ARG_OPTION, AGENT_CONF, toURIArg(agt_conf_path),
+            ARG_OPTION, AGENT_VERSION, toURIArg(agt_ver_path),
+            ARG_RES_COMP_OPT, echo, ResourceKeys.COMPONENT_PRIORITY, "1",
+            ARG_RES_COMP_OPT, echo, ResourceKeys.COMPONENT_PLACEMENT_POLICY,
+              "" + PlacementPolicy.ANTI_AFFINITY_REQUIRED,
+            ARG_COMP_OPT, echo, SCRIPT_PATH, echo_py,
+            ARG_COMP_OPT, echo, SERVICE_NAME, "Agent",
+            ARG_DEFINE, 
+            SliderXmlConfKeys.KEY_SLIDER_AM_DEPENDENCY_CHECKS_DISABLED + "=false",
+            ARG_COMP_OPT, echo, TEST_RELAX_VERIFICATION, "true",
+
+        ],
+        true, true,
+        true)
+    SliderClient sliderClient = launcher.service
+
+
+    def onlyOneEcho = [(echo): 1]
+    waitForRoleCount(sliderClient, onlyOneEcho, AGENT_CLUSTER_STARTUP_TIME)
+    //sleep a bit
+    sleep(5000)
+    //expect the role count to be the same
+    waitForRoleCount(sliderClient, onlyOneEcho, 1000)
+
+    // flex size
+    // while running, ask for many more, expect them to still be outstanding
+    sleep(5000)
+    waitForRoleCount(sliderClient, onlyOneEcho, 1000)
+    sliderClient.flex(clustername, onlyOneEcho);
+
+    // while running, flex it with no changes
+    sliderClient.flex(clustername, [(echo): 3]);
+    sleep(1000)
+    waitForRoleCount(sliderClient, onlyOneEcho, 1000)
+
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/8c5065d9/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentEcho.groovy
----------------------------------------------------------------------
diff --git a/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentEcho.groovy b/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentEcho.groovy
index 973114d..f14fc43 100644
--- a/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentEcho.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentEcho.groovy
@@ -79,10 +79,7 @@ class TestAgentEcho extends AgentTestBase {
         true,
         false)
 
-    assert echo_py_path.exists()
-    assert app_def_path.exists()
-    assert agt_ver_path.exists()
-    assert agt_conf_path.exists()
+    validatePaths()
 
     def role = "echo"
     Map<String, Integer> roles = [
@@ -128,4 +125,11 @@ class TestAgentEcho extends AgentTestBase {
     }
 
   }
+
+  protected void validatePaths() {
+    assert echo_py_path.exists()
+    assert app_def_path.exists()
+    assert agt_ver_path.exists()
+    assert agt_conf_path.exists()
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/8c5065d9/slider-core/src/test/python/metainfo.xml
----------------------------------------------------------------------
diff --git a/slider-core/src/test/python/metainfo.xml b/slider-core/src/test/python/metainfo.xml
index cf4afe1..2a8c9e0 100644
--- a/slider-core/src/test/python/metainfo.xml
+++ b/slider-core/src/test/python/metainfo.xml
@@ -51,7 +51,7 @@
         <name>echo</name>
         <category>MASTER</category>
         <minInstanceCount>1</minInstanceCount>
-        <maxInstanceCount>2</maxInstanceCount>
+        <maxInstanceCount>200</maxInstanceCount>
         <commandScript>
           <script>echo.py</script>
           <scriptType>PYTHON</scriptType>