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/17 22:12:56 UTC

[6/8] incubator-slider git commit: SLIDER-979 AM web UI to show state of AA request

SLIDER-979 AM web UI to show state of AA request


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

Branch: refs/heads/feature/SLIDER-82-pass-3.1
Commit: b2b58d35e624ba877f0db684c988e4e44ce289fb
Parents: 830864f
Author: Steve Loughran <st...@apache.org>
Authored: Tue Nov 17 19:56:22 2015 +0000
Committer: Steve Loughran <st...@apache.org>
Committed: Tue Nov 17 19:56:22 2015 +0000

----------------------------------------------------------------------
 .../slider/api/types/ComponentInformation.java  |   4 +-
 .../server/appmaster/web/view/IndexBlock.java   | 131 ++++++++++++++-----
 .../server/appmaster/web/view/NavBlock.java     |   1 -
 .../slider/agent/rest/TestStandaloneREST.groovy |   3 +-
 .../providers/agent/DemoAgentAAEcho.groovy      |   8 +-
 .../providers/agent/TestAgentAAEcho.groovy      |  54 ++++++--
 .../appmaster/web/view/TestIndexBlock.groovy    |   6 +-
 .../apache/slider/test/SliderTestUtils.groovy   |   6 +-
 slider-core/src/test/python/agent/main.py       |   2 +-
 .../src/test/resources/example-slider-test.xml  |  70 ----------
 10 files changed, 150 insertions(+), 135 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b2b58d35/slider-core/src/main/java/org/apache/slider/api/types/ComponentInformation.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/api/types/ComponentInformation.java b/slider-core/src/main/java/org/apache/slider/api/types/ComponentInformation.java
index 3771988..c46a59f 100644
--- a/slider-core/src/main/java/org/apache/slider/api/types/ComponentInformation.java
+++ b/slider-core/src/main/java/org/apache/slider/api/types/ComponentInformation.java
@@ -91,14 +91,14 @@ public class ComponentInformation {
     sb.append(", failureMessage='").append(failureMessage).append('\'');
     sb.append(", placementPolicy=").append(placementPolicy);
     sb.append(", isAARequestOutstanding=").append(isAARequestOutstanding);
-    sb.append(", pendingAntiAffineRequestCount").append(pendingAntiAffineRequestCount);
+    sb.append(", pendingAntiAffineRequestCount=").append(pendingAntiAffineRequestCount);
     sb.append(", priority=").append(priority);
     sb.append(", releasing=").append(releasing);
     sb.append(", requested=").append(requested);
     sb.append(", started=").append(started);
     sb.append(", startFailed=").append(startFailed);
     sb.append(", totalRequested=").append(totalRequested);
-    sb.append("container count='")
+    sb.append(", container count='")
         .append(containers == null ? 0 : containers.size())
         .append('\'');
     sb.append('}');

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b2b58d35/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/IndexBlock.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/IndexBlock.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/IndexBlock.java
index 8152f27..b3be3bf 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/IndexBlock.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/IndexBlock.java
@@ -32,6 +32,7 @@ import org.apache.slider.server.appmaster.web.WebAppApi;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -40,7 +41,7 @@ import java.util.Map.Entry;
 import static org.apache.slider.server.appmaster.web.rest.RestPaths.LIVE_COMPONENTS;
 
 /**
- * 
+ * The main content on the Slider AM web page
  */
 public class IndexBlock extends SliderHamletBlock {
   private static final Logger log = LoggerFactory.getLogger(IndexBlock.class);
@@ -59,16 +60,13 @@ public class IndexBlock extends SliderHamletBlock {
 
   @Override
   protected void render(Block html) {
-    final String providerName = getProviderName();
-
-    doIndex(html, providerName);
+    doIndex(html, getProviderName());
   }
 
   // An extra method to make testing easier since you can't make an instance of Block
   @VisibleForTesting
   protected void doIndex(Hamlet html, String providerName) {
     ClusterDescription clusterStatus = appState.getClusterStatus();
-    RoleStatistics roleStats = appState.getRoleStatistics();
     String name = clusterStatus.name;
     if (name != null && (name.startsWith(" ") || name.endsWith(" "))) {
       name = "'" + name + "'";
@@ -111,21 +109,27 @@ public class IndexBlock extends SliderHamletBlock {
           .td("Application configuration path: ")
           .td(clusterStatus.originConfigurationPath)
           ._();
-    table1._()._();
+    table1._();
+    div._();
+    div = null;
 
+    DIV<Hamlet> containers = html.div("container_instances")
+      .h3("Component Instances");
 
-    html.div("container_instances").h3("Component Instances");
+    int aaRoleWithNoSuitableLocations = 0;
+    int aaRoleWithOpenRequest = 0;
+    int roleWithOpenRequest = 0;
 
-    Hamlet.TABLE<DIV<Hamlet>> table = div.table();
-    Hamlet.TR<Hamlet.THEAD<Hamlet.TABLE<DIV<Hamlet>>>> tr = table.thead().tr();
-    trb(tr, "Component");
-    trb(tr, "Desired");
-    trb(tr, "Actual");
-    trb(tr, "Outstanding Requests");
-    trb(tr, "Failed");
-    trb(tr, "Failed to start");
-    trb(tr, "Placement");
-    tr._()._();
+    Hamlet.TABLE<DIV<Hamlet>> table = containers.table();
+    Hamlet.TR<Hamlet.THEAD<Hamlet.TABLE<DIV<Hamlet>>>> header = table.thead().tr();
+    trb(header, "Component");
+    trb(header, "Desired");
+    trb(header, "Actual");
+    trb(header, "Outstanding Requests");
+    trb(header, "Failed");
+    trb(header, "Failed to start");
+    trb(header, "Placement");
+    header._()._();  // tr & thead
 
     List<RoleStatus> roleStatuses = appState.cloneRoleStatusList();
     Collections.sort(roleStatuses, new RoleStatus.CompareByName());
@@ -134,13 +138,26 @@ public class IndexBlock extends SliderHamletBlock {
       String nameUrl = apiPath(LIVE_COMPONENTS) + "/" + roleName;
       String aatext;
       if (status.isAntiAffinePlacement()) {
-        int outstanding = status.isAARequestOutstanding() ? 1: 0;
+        boolean aaRequestOutstanding = status.isAARequestOutstanding();
         int pending = (int)status.getPendingAntiAffineRequests();
-        aatext = String.format("Anti-affine: %d outstanding %s, %d pending %s",
-          outstanding, plural(outstanding, "request"),
-          pending, plural(pending, "request"));
+        aatext = buildAADetails(aaRequestOutstanding, pending);
+        if (SliderUtils.isSet(status.getLabelExpression())) {
+          aatext += " (label: " + status.getLabelExpression() + ")";
+        }
+        if (pending > 0 && !aaRequestOutstanding) {
+          aaRoleWithNoSuitableLocations ++;
+        } else if (aaRequestOutstanding) {
+          aaRoleWithOpenRequest++;
+        }
       } else {
-        aatext = "";
+        if (SliderUtils.isSet(status.getLabelExpression())) {
+          aatext = "label: " + status.getLabelExpression();
+        } else {
+          aatext = "";
+        }
+        if (status.getRequested() > 0) {
+          roleWithOpenRequest ++;
+        }
       }
       table.tr()
         .td().a(nameUrl, roleName)._()
@@ -153,23 +170,69 @@ public class IndexBlock extends SliderHamletBlock {
         ._();
     }
 
-    table._()._();
+    // empty row for some more spacing
+    table.tr()._();
+    // close table
+    table._();
+
+    containers._();
+    containers = null;
 
     // some spacing
-    html.p()._();
-    html.p()._();
+    html.div()._();
+    html.div()._();
+
+    DIV<Hamlet> diagnostics = html.div("diagnostics");
+
+    List<String> statusEntries = new ArrayList<>(0);
+    if (roleWithOpenRequest > 0) {
+      statusEntries.add(String.format("%d %s with requests unsatisfiable by cluster",
+          roleWithOpenRequest, plural(roleWithOpenRequest, "component")));
+    }
+    if (aaRoleWithNoSuitableLocations > 0) {
+      statusEntries.add(String.format("%d anti-affinity %s no suitable nodes in the cluster",
+        aaRoleWithNoSuitableLocations,
+        plural(aaRoleWithNoSuitableLocations, "component has", "components have")));
+    }
+    if (aaRoleWithOpenRequest > 0) {
+      statusEntries.add(String.format("%d anti-affinity %s with requests unsatisfiable by cluster",
+        aaRoleWithOpenRequest,
+        plural(aaRoleWithOpenRequest, "component has", "components have")));
+
+    }
+    if (!statusEntries.isEmpty()) {
+      diagnostics.h3("Diagnostics");
+      Hamlet.TABLE<DIV<Hamlet>> diagnosticsTable = diagnostics.table();
+      for (String entry : statusEntries) {
+        diagnosticsTable.tr().td(entry)._();
+      }
+      diagnosticsTable._();
+    }
+    diagnostics._();
 
-    html.div("provider_info").h3(providerName + " information");
-    UL<DIV<Hamlet>> ul = div.ul();
+    DIV<Hamlet> provider_info = html.div("provider_info");
+    provider_info.h3(providerName + " information");
+    UL<Hamlet> ul = html.ul();
     addProviderServiceOptions(providerService, ul, clusterStatus);
-    ul._()._();
+    ul._();
+    provider_info._();
   }
 
-  private String plural(int n, String text) {
-    return n == 1 ? text : (text + "s");
+  @VisibleForTesting
+  String buildAADetails(boolean outstanding, int pending) {
+    return String.format("Anti-affinity:%s %d pending %s",
+      (outstanding ? " 1 active request and" : ""),
+      pending, plural(pending, "request"));
+  }
+
+  private String plural(int n, String singular) {
+    return plural(n, singular, singular + "s");
+  }
+  private String plural(int n, String singular, String plural) {
+    return n == 1 ? singular : plural;
   }
 
-  private void trb(Hamlet.TR<Hamlet.THEAD<Hamlet.TABLE<DIV<Hamlet>>>> tr,
+  private void trb(Hamlet.TR tr,
       String text) {
     tr.td().b(text)._();
   }
@@ -184,9 +247,9 @@ public class IndexBlock extends SliderHamletBlock {
     return null == createTime ? "N/A" : createTime;
   }
 
-  protected void addProviderServiceOptions(ProviderService providerService,
-      UL<DIV<Hamlet>> ul, ClusterDescription clusterStatus) {
-    Map<String, String> details = providerService.buildMonitorDetails(
+  protected void addProviderServiceOptions(ProviderService provider,
+      UL ul, ClusterDescription clusterStatus) {
+    Map<String, String> details = provider.buildMonitorDetails(
         clusterStatus);
     if (null == details) {
       return;

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b2b58d35/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/NavBlock.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/NavBlock.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/NavBlock.java
index 515b1a3..069d386 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/NavBlock.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/view/NavBlock.java
@@ -41,7 +41,6 @@ public class NavBlock extends SliderHamletBlock {
           li().a(this.prefix(), "Overview")._().
           li().a(relPath(CONTAINER_STATS), "Statistics")._().
           li().a(relPath(CLUSTER_SPEC), "Specification")._().
-          li().a(relPath(CLUSTER_SPEC), "Specification")._().
           li().a(rootPath(SYSTEM_METRICS_JSON), "Metrics")._().
           li().a(rootPath(SYSTEM_HEALTHCHECK), "Health")._().
           li().a(rootPath(SYSTEM_THREADS), "Threads")._().

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b2b58d35/slider-core/src/test/groovy/org/apache/slider/agent/rest/TestStandaloneREST.groovy
----------------------------------------------------------------------
diff --git a/slider-core/src/test/groovy/org/apache/slider/agent/rest/TestStandaloneREST.groovy b/slider-core/src/test/groovy/org/apache/slider/agent/rest/TestStandaloneREST.groovy
index 0bd1df0..b0ae102 100644
--- a/slider-core/src/test/groovy/org/apache/slider/agent/rest/TestStandaloneREST.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/agent/rest/TestStandaloneREST.groovy
@@ -87,8 +87,7 @@ class TestStandaloneREST extends AgentMiniClusterTestBase  {
 
     // using the metrics, await the first node status update.
     // this should be from AM launch itself
-    awaitGaugeValue(
-        appendToURL(proxyAM, SYSTEM_METRICS_JSON),
+    awaitGaugeValue(proxyAM,
         NODES_UPDATED_FLAG_METRIC,
         1,
         WEB_STARTUP_TIME  * 2, 500)

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b2b58d35/slider-core/src/test/groovy/org/apache/slider/providers/agent/DemoAgentAAEcho.groovy
----------------------------------------------------------------------
diff --git a/slider-core/src/test/groovy/org/apache/slider/providers/agent/DemoAgentAAEcho.groovy b/slider-core/src/test/groovy/org/apache/slider/providers/agent/DemoAgentAAEcho.groovy
index 8606417..94e7320 100644
--- a/slider-core/src/test/groovy/org/apache/slider/providers/agent/DemoAgentAAEcho.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/providers/agent/DemoAgentAAEcho.groovy
@@ -31,15 +31,15 @@ class DemoAgentAAEcho extends TestAgentAAEcho {
       SliderClient sliderClient,
       String clustername,
       String roleName,
-      Map<String, Integer> roles) {
+      Map<String, Integer> roles,
+      String proxyAM) {
 
-    def applicationReport = sliderClient.applicationReport
-    def url = applicationReport.trackingUrl
+    def url = proxyAM
     // spin repeating the URl in the logs so YARN chatter doesn't lose it
     describe("Web UI is at $url")
 
     // run the superclass rest tests
-  //  queryRestAPI(sliderClient, roles)
+  //  queryRestAPI(sliderClient, roles, proxyAM)
 
     5.times {
       describe("Web UI is at $url")

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b2b58d35/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
index f2f38e0..255dcaf 100644
--- 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
@@ -20,20 +20,20 @@ package org.apache.slider.providers.agent
 
 import groovy.transform.CompileStatic
 import groovy.util.logging.Slf4j
-import org.apache.slider.agent.rest.RestAPIClientTestDelegates
 import org.apache.slider.api.ResourceKeys
-import org.apache.slider.api.types.ComponentInformation
 import org.apache.slider.client.SliderClient
 import org.apache.slider.client.rest.SliderApplicationApiRestClient
 import org.apache.slider.common.SliderXmlConfKeys
 import org.apache.slider.core.main.ServiceLauncher
 import org.apache.slider.providers.PlacementPolicy
+import org.apache.slider.server.appmaster.management.MetricsConstants
 import org.junit.Test
 
 import static org.apache.slider.common.params.Arguments.*
 import static org.apache.slider.providers.agent.AgentKeys.*
 import static org.apache.slider.server.appmaster.management.MetricsKeys.METRICS_LOGGING_ENABLED
 import static org.apache.slider.server.appmaster.management.MetricsKeys.METRICS_LOGGING_LOG_INTERVAL
+import static org.apache.slider.server.appmaster.web.rest.RestPaths.SYSTEM_METRICS_JSON
 
 /**
  * Tests an echo command
@@ -75,11 +75,31 @@ class TestAgentAAEcho extends TestAgentEcho {
             ARG_DEFINE, 
             SliderXmlConfKeys.KEY_SLIDER_AM_DEPENDENCY_CHECKS_DISABLED + "=false",
             ARG_COMP_OPT, echo, TEST_RELAX_VERIFICATION, "true",
-
         ],
         true, true,
         true)
-    postLaunchActions(launcher.service, clustername, echo, roles)
+    SliderClient sliderClient = launcher.service
+    initHttpTestSupport(sliderClient.config)
+    def applicationReport = sliderClient.applicationReport
+    def proxyAM = applicationReport.trackingUrl
+    try {
+      postLaunchActions(sliderClient, clustername, echo, roles, proxyAM)
+    } catch (Exception ex) {
+      logMetricsQuietly(proxyAM)
+      throw ex;
+    }
+  }
+
+  /**
+   * retrieve cluster metrics and log quietly
+   * @param proxyAM
+   */
+  protected void logMetricsQuietly(String proxyAM) {
+    try {
+      log.error prettyPrintAsJson(GET(proxyAM, SYSTEM_METRICS_JSON));
+    } catch (Exception ex) {
+      log.warn("failed to get AM", ex)
+    }
   }
 
   /**
@@ -94,16 +114,20 @@ class TestAgentAAEcho extends TestAgentEcho {
   }
 
   /**
-   * Any actions to perform after starting the agent cluster
+   * Any actions to perform after starting the agent cluster.
+   * HTTP client operations will have been set up already.
    * @param sliderClient client for the cluster
    * @param clustername cluster name
    * @param roleName name of the echo role
-   * @parm original set of roles
+   * @param roles original set of roles
+   * @param proxyAM URl to proxy AM.
    */
-  protected void postLaunchActions(SliderClient sliderClient,
+  protected void postLaunchActions(
+      SliderClient sliderClient,
       String clustername,
       String roleName,
-      Map<String, Integer> roles) {
+      Map<String, Integer> roles,
+      String proxyAM) {
     def onlyOneEcho = [(roleName): 1]
     waitForRoleCount(sliderClient, onlyOneEcho, AGENT_CLUSTER_STARTUP_TIME)
     //sleep a bit
@@ -111,7 +135,7 @@ class TestAgentAAEcho extends TestAgentEcho {
     //expect the role count to be the same
     waitForRoleCount(sliderClient, onlyOneEcho, 1000)
 
-    queryRestAPI(sliderClient, roles)
+    queryRestAPI(sliderClient, roles, proxyAM)
     // flex size
     // while running, ask for many more, expect them to still be outstanding
     sleep(5000)
@@ -125,16 +149,18 @@ class TestAgentAAEcho extends TestAgentEcho {
 
   }
 
-  protected void queryRestAPI(SliderClient sliderClient, Map<String, Integer> roles) {
-    initHttpTestSupport(sliderClient.config)
-    def applicationReport = sliderClient.applicationReport
-    def proxyAM = applicationReport.trackingUrl
+  protected void queryRestAPI(SliderClient sliderClient, Map<String, Integer> roles, String proxyAM) {
     GET(proxyAM)
     describe "Proxy SliderRestClient Tests"
     SliderApplicationApiRestClient restAPI =
         new SliderApplicationApiRestClient(createUGIJerseyClient(), proxyAM)
+    awaitGaugeValue(proxyAM,
+        MetricsConstants.PREFIX_SLIDER_ROLES + "echo.pendingAntiAffineRequests",
+        2,
+        WEB_STARTUP_TIME * 2, 500)
+
     def echoInfo = restAPI.getComponent(ECHO)
-    assert echoInfo.pendingAntiAffineRequestCount == 3
+    assert echoInfo.pendingAntiAffineRequestCount == 2
     // no active requests ... there's no capacity
     assert !echoInfo.isAARequestOutstanding
   }

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b2b58d35/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestIndexBlock.groovy
----------------------------------------------------------------------
diff --git a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestIndexBlock.groovy b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestIndexBlock.groovy
index a4db705..de5fdc7 100644
--- a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestIndexBlock.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestIndexBlock.groovy
@@ -128,12 +128,10 @@ public class TestIndexBlock extends BaseMockAppStateAATest {
 
     Hamlet hamlet = new Hamlet(pw, 0, false);
 
-    int level = hamlet.nestLevel();
     indexBlock.doIndex(hamlet, "accumulo");
 
     def body = sw.toString()
     log.info(body)
-    assertEquals(body, level, hamlet.nestLevel())
     // verify role data came out
     assert body.contains("role0")
     assertContains(role0_desired, body)
@@ -146,8 +144,9 @@ public class TestIndexBlock extends BaseMockAppStateAATest {
 
     assertContains(aarole_desired, body)
     assertContains(aarole_actual, body)
-    assertContains(aarole_requested, body)
+//    assertContains(aarole_requested, body)
     assertContains(aarole_failures, body)
+    assert body.contains(indexBlock.buildAADetails(true, aarole_pending))
 
     // verify that the sorting took place
     assert body.indexOf("role0") < body.indexOf("role1")
@@ -159,6 +158,5 @@ public class TestIndexBlock extends BaseMockAppStateAATest {
 
   def assertContains(int ex, String html) {
     assertStringContains(Integer.toString(ex), html)
-
   }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b2b58d35/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy
----------------------------------------------------------------------
diff --git a/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy b/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy
index ab81c46..5ef388a 100644
--- a/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy
@@ -637,7 +637,6 @@ class SliderTestUtils extends Assert {
   static UrlConnectionOperations connectionOperations
   static UgiJerseyBinding jerseyBinding;
 
-  
   /**
    * Static initializer of the connection operations
    * @param conf config
@@ -1458,15 +1457,16 @@ class SliderTestUtils extends Assert {
 
   /**
    * Await a specific gauge being of the desired value
-   * @param target target URL
+   * @param am URL of appmaster
    * @param gauge gauge name
    * @param desiredValue desired value
    * @param timeout timeout in millis
    * @param sleepDur sleep in millis
    */
-  public void awaitGaugeValue(String target, String gauge, int desiredValue,
+  public void awaitGaugeValue(String am, String gauge, int desiredValue,
       int timeout,
       int sleepDur) {
+    String target = appendToURL(am, SYSTEM_METRICS_JSON)
     def text = "Probe $target for gauge $gauge == $desiredValue"
     repeatUntilSuccess(text,
       this.&probeMetricGaugeValue,

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b2b58d35/slider-core/src/test/python/agent/main.py
----------------------------------------------------------------------
diff --git a/slider-core/src/test/python/agent/main.py b/slider-core/src/test/python/agent/main.py
index 1e851bb..2eacc89 100755
--- a/slider-core/src/test/python/agent/main.py
+++ b/slider-core/src/test/python/agent/main.py
@@ -53,7 +53,7 @@ def main():
 
   logging.info("Number of arguments: %s arguments.", str(len(sys.argv)))
   logging.info("Argument List: %s", str(sys.argv))
-  sleeptime = 30
+  sleeptime = 300
   if options.sleep:
     sleeptime = int(options.sleep)
   if sleeptime > 0:

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b2b58d35/slider-core/src/test/resources/example-slider-test.xml
----------------------------------------------------------------------
diff --git a/slider-core/src/test/resources/example-slider-test.xml b/slider-core/src/test/resources/example-slider-test.xml
index abf42f9..ee9fc59 100644
--- a/slider-core/src/test/resources/example-slider-test.xml
+++ b/slider-core/src/test/resources/example-slider-test.xml
@@ -33,12 +33,6 @@
   </property>
 
   <property>
-    <name>slider.test.teardown.killall</name>
-    <description>Kill all hbase/accumulo, etc processes on test teardown</description>
-    <value>true</value>
-  </property>
-
-  <property>
     <name>slider.test.thaw.wait.seconds</name>
     <description>Time to wait for a start to work</description>
     <value>60</value>
@@ -50,68 +44,4 @@
     <value>60</value>
   </property>
 
-
-  <!-- Properties for the slider-hbase-provider only -not HBase-under-agent- -->
-  <property>
-    <name>slider.test.hbase.enabled</name>
-    <description>Flag to enable/disable HBase tests</description>
-    <value>true</value>
-  </property>
-
-  <property>
-    <name>slider.test.hbase.launch.wait.seconds</name>
-    <description>Time to wait for the HBase application to be live</description>
-    <value>180</value>
-  </property>
-  
-  <property>
-    <name>slider.test.hbase.home</name>
-    <value>/home/slider/Projects/hbase/hbase-assembly/target/hbase-0.98.1</value>
-    <description>HBASE Home</description>
-  </property>
-
-  <property>
-    <name>slider.test.hbase.tar</name>
-    <value>/home/slider/Projects/hbase/hbase-assembly/target/hbase-0.98.1-bin.tar.gz</value>
-    <description>HBASE archive URI</description>
-  </property>
-
-  <!-- Properties for the slider-accumulo-provider only -not HBase-under-agent- -->
-
-  <property>
-    <name>slider.test.accumulo.enabled</name>
-    <description>Flag to enable/disable Accumulo tests</description>
-    <value>true</value>
-  </property>
-  
-  <property>
-    <name>slider.test.accumulo.launch.wait.seconds</name>
-    <description>Time to wait for the accumulo application to be live</description>
-    <value>180</value>
-  </property>
-
-  <property>
-    <name>slider.test.accumulo.home</name>
-    <value>/home/slider/accumulo</value>
-    <description>Accumulo Home</description>
-  </property>
-
-  <property>
-    <name>slider.test.accumulo.tar</name>
-    <value>/home/slider/Projects/accumulo/accumulo-1.6.0-bin.tar.gz</value>
-    <description>Accumulo archive URI</description>
-  </property>
-
-  <property>
-    <name>zk.home</name>
-    <value>/home/slider/zookeeper</value>
-    <description>Zookeeper home dir on target systems</description>
-  </property>
-
-  <property>
-    <name>hadoop.home</name>
-    <value>/home/slider/hadoop/</value>
-    <description>Hadoop home dir on target systems</description>
-  </property>
-  
 </configuration>