You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by se...@apache.org on 2016/06/04 17:26:43 UTC

aurora git commit: Change the UI to refer to Mesos Agents instead of Mesos Slaves.

Repository: aurora
Updated Branches:
  refs/heads/master 692b5d147 -> d64e179ed


Change the UI to refer to Mesos Agents instead of Mesos Slaves.

This change also moves the /slaves endpoint to /agents and adds a compatibility redirect.

Bugs closed: AURORA-1449, AURORA-1450

Reviewed at https://reviews.apache.org/r/48216/


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

Branch: refs/heads/master
Commit: d64e179edb23c4ebcc8052f546b129b1cd04df14
Parents: 692b5d1
Author: Stephan Erb <se...@apache.org>
Authored: Sat Jun 4 19:25:40 2016 +0200
Committer: Stephan Erb <st...@dev.static-void.de>
Committed: Sat Jun 4 19:25:40 2016 +0200

----------------------------------------------------------------------
 RELEASE-NOTES.md                                |   1 +
 config/legacy_untested_classes.txt              |  10 +-
 .../apache/aurora/scheduler/http/Agents.java    | 118 ++++++++++++++++++
 .../scheduler/http/JettyServerModule.java       |   4 +-
 .../apache/aurora/scheduler/http/Slaves.java    | 121 -------------------
 .../mesos/CommandLineDriverSettingsModule.java  |   2 +-
 .../scheduler/mesos/MesosSchedulerImpl.java     |   2 +-
 .../scheduler/scheduling/SchedulingModule.java  |   2 +-
 .../aurora/scheduler/state/TaskAssigner.java    |   4 +-
 .../scheduler/storage/log/LogStorage.java       |   2 +-
 src/main/python/apache/aurora/client/base.py    |   2 +-
 .../executor/bin/thermos_executor_main.py       |   4 +-
 .../org/apache/aurora/scheduler/http/agents.st  |  40 ++++++
 .../org/apache/aurora/scheduler/http/slaves.st  |  40 ------
 .../apache/aurora/scheduler/http/utilization.st |   2 +-
 src/main/resources/scheduler/assets/index.html  |   2 +-
 .../resources/scheduler/assets/js/filters.js    |   4 +-
 17 files changed, 178 insertions(+), 182 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/RELEASE-NOTES.md
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index 21a141f..7d47cf6 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -54,6 +54,7 @@
   setting it directly to the appropriate (i.e. `Docker` or `Mesos`) container type.
 - Deprecated `numCpus`, `ramMb` and `diskMb` fields in `TaskConfig` and `ResourceAggregate` thrift
   structs. Use `set<Resource> resources` to specify task resources or quota values.
+- The endpoint `/slaves` is deprecated. Please use `/agents` instead.
 
 0.13.0
 ------

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/config/legacy_untested_classes.txt
----------------------------------------------------------------------
diff --git a/config/legacy_untested_classes.txt b/config/legacy_untested_classes.txt
index 10e8b77..1ea2183 100644
--- a/config/legacy_untested_classes.txt
+++ b/config/legacy_untested_classes.txt
@@ -15,6 +15,9 @@ org/apache/aurora/scheduler/base/Conversions$3
 org/apache/aurora/scheduler/configuration/executor/ExecutorModule$1
 org/apache/aurora/scheduler/cron/quartz/CronSchedulerImpl
 org/apache/aurora/scheduler/cron/quartz/CronSchedulerImpl$1
+org/apache/aurora/scheduler/http/Agents
+org/apache/aurora/scheduler/http/Agents$1
+org/apache/aurora/scheduler/http/Agents$Agent
 org/apache/aurora/scheduler/discovery/FlaggedZooKeeperConfig
 org/apache/aurora/scheduler/discovery/ServiceDiscoveryModule$TestServerService
 org/apache/aurora/scheduler/discovery/ServiceDiscoveryModule$LocalZooKeeperClusterProvider
@@ -34,13 +37,6 @@ org/apache/aurora/scheduler/http/Quotas
 org/apache/aurora/scheduler/http/Quotas$1
 org/apache/aurora/scheduler/http/Quotas$2
 org/apache/aurora/scheduler/http/Quotas$ResourceAggregateBean
-org/apache/aurora/scheduler/http/Slaves
-org/apache/aurora/scheduler/http/Slaves$1
-org/apache/aurora/scheduler/http/Slaves$2
-org/apache/aurora/scheduler/http/Slaves$3
-org/apache/aurora/scheduler/http/Slaves$4
-org/apache/aurora/scheduler/http/Slaves$Slave
-org/apache/aurora/scheduler/http/Slaves$Slave$1
 org/apache/aurora/scheduler/http/StructDump
 org/apache/aurora/scheduler/http/StructDump$1
 org/apache/aurora/scheduler/http/StructDump$2

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/src/main/java/org/apache/aurora/scheduler/http/Agents.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/Agents.java b/src/main/java/org/apache/aurora/scheduler/http/Agents.java
new file mode 100644
index 0000000..88162c5
--- /dev/null
+++ b/src/main/java/org/apache/aurora/scheduler/http/Agents.java
@@ -0,0 +1,118 @@
+/**
+ * Licensed 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.aurora.scheduler.http;
+
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import com.google.common.base.Function;
+import com.google.common.base.Joiner;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Ordering;
+
+import org.apache.aurora.gen.MaintenanceMode;
+import org.apache.aurora.scheduler.storage.Storage;
+import org.apache.aurora.scheduler.storage.entities.IAttribute;
+import org.apache.aurora.scheduler.storage.entities.IHostAttributes;
+import org.apache.aurora.scheduler.storage.entities.IServerInfo;
+
+import static java.util.Objects.requireNonNull;
+
+import static org.apache.aurora.common.base.MorePreconditions.checkNotBlank;
+
+/**
+ * HTTP interface to serve as a HUD for the Mesos agents tracked in the scheduler.
+ */
+@Path("/agents")
+public class Agents extends JerseyTemplateServlet {
+  private final String clusterName;
+  private final Storage storage;
+
+  /**
+   * Injected constructor.
+   *
+   * @param serverInfo server meta-data that contains the cluster name
+   * @param storage store to fetch the host attributes from
+   */
+  @Inject
+  public Agents(IServerInfo serverInfo, Storage storage) {
+    super("agents");
+    this.clusterName = checkNotBlank(serverInfo.getClusterName());
+    this.storage = requireNonNull(storage);
+  }
+
+  private Iterable<IHostAttributes> getHostAttributes() {
+    return storage.read(storeProvider -> storeProvider.getAttributeStore().getHostAttributes());
+  }
+
+  /**
+   * Fetches the listing of known agents.
+   *
+   * @return HTTP response.
+   */
+  @GET
+  @Produces(MediaType.TEXT_HTML)
+  public Response get() {
+    return fillTemplate(template -> {
+      template.setAttribute("cluster_name", clusterName);
+
+      template.setAttribute("agents",
+          FluentIterable.from(getHostAttributes()).transform(Agent::new).toList());
+    });
+  }
+
+  private static final Ordering<IAttribute> ATTR_ORDER = Ordering.natural().onResultOf(
+      new Function<IAttribute, String>() {
+        @Override
+        public String apply(IAttribute attr) {
+          return attr .getName();
+        }
+      });
+
+  /**
+   * Template object to represent a agent.
+   */
+  private static class Agent {
+    private final IHostAttributes attributes;
+
+    Agent(IHostAttributes attributes) {
+      this.attributes = attributes;
+    }
+
+    public String getHost() {
+      return attributes.getHost();
+    }
+
+    public String getId() {
+      return attributes.getSlaveId();
+    }
+
+    public MaintenanceMode getMode() {
+      return attributes.getMode();
+    }
+
+    private static final Function<IAttribute, String> ATTR_TO_STRING =
+        attr -> attr.getName() + "=[" + Joiner.on(",").join(attr.getValues()) + "]";
+
+    public String getAttributes() {
+      return Joiner.on(", ").join(
+          Iterables.transform(ATTR_ORDER.sortedCopy(attributes.getAttributes()), ATTR_TO_STRING));
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/src/main/java/org/apache/aurora/scheduler/http/JettyServerModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/JettyServerModule.java b/src/main/java/org/apache/aurora/scheduler/http/JettyServerModule.java
index 4faf53f..1f8dd57 100644
--- a/src/main/java/org/apache/aurora/scheduler/http/JettyServerModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/http/JettyServerModule.java
@@ -203,6 +203,7 @@ public class JettyServerModule extends AbstractModule {
   };
 
   private static final Set<String> LEADER_ENDPOINTS = ImmutableSet.of(
+      "agents",
       "api",
       "cron",
       "locks",
@@ -218,6 +219,7 @@ public class JettyServerModule extends AbstractModule {
   private static final Multimap<Class<?>, String> JAX_RS_ENDPOINTS =
       ImmutableMultimap.<Class<?>, String>builder()
           .put(AbortHandler.class, "abortabortabort")
+          .put(Agents.class, "agents")
           .put(ContentionPrinter.class, "contention")
           .put(Cron.class, "cron")
           .put(HealthHandler.class, "health")
@@ -230,7 +232,6 @@ public class JettyServerModule extends AbstractModule {
           .put(QuitHandler.class, "quitquitquit")
           .put(Quotas.class, "quotas")
           .put(Services.class, "services")
-          .put(Slaves.class, "slaves")
           .put(StructDump.class, "structdump")
           .put(ThreadStackPrinter.class, "threads")
           .put(TimeSeriesDataSource.class, "graphdata")
@@ -326,6 +327,7 @@ public class JettyServerModule extends AbstractModule {
             .put("/graphview(?:/index.html)?", "/assets/graphview/graphview.html")
             .put("/graphview/(.*)", "/assets/graphview/$1")
             .put("/(?:scheduler|updates)(?:/.*)?", "/assets/scheduler/index.html")
+            .put("/slaves", "/agents")
             .build();
 
     private static Handler getRewriteHandler(Handler wrapped) {

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/src/main/java/org/apache/aurora/scheduler/http/Slaves.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/http/Slaves.java b/src/main/java/org/apache/aurora/scheduler/http/Slaves.java
deleted file mode 100644
index f63fb7b..0000000
--- a/src/main/java/org/apache/aurora/scheduler/http/Slaves.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * Licensed 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.aurora.scheduler.http;
-
-import javax.inject.Inject;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-
-import com.google.common.base.Function;
-import com.google.common.base.Joiner;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Ordering;
-
-import org.apache.aurora.gen.MaintenanceMode;
-import org.apache.aurora.scheduler.storage.Storage;
-import org.apache.aurora.scheduler.storage.entities.IAttribute;
-import org.apache.aurora.scheduler.storage.entities.IHostAttributes;
-import org.apache.aurora.scheduler.storage.entities.IServerInfo;
-
-import static java.util.Objects.requireNonNull;
-
-import static org.apache.aurora.common.base.MorePreconditions.checkNotBlank;
-
-/**
- * HTTP interface to serve as a HUD for the mesos slaves tracked in the scheduler.
- */
-@Path("/slaves")
-public class Slaves extends JerseyTemplateServlet {
-  private final String clusterName;
-  private final Storage storage;
-
-  /**
-   * Injected constructor.
-   *
-   * @param serverInfo server meta-data that contains the cluster name
-   * @param storage store to fetch the host attributes from
-   */
-  @Inject
-  public Slaves(IServerInfo serverInfo, Storage storage) {
-    super("slaves");
-    this.clusterName = checkNotBlank(serverInfo.getClusterName());
-    this.storage = requireNonNull(storage);
-  }
-
-  private Iterable<IHostAttributes> getHostAttributes() {
-    return storage.read(storeProvider -> storeProvider.getAttributeStore().getHostAttributes());
-  }
-
-  private static final Function<IHostAttributes, Slave> TO_SLAVE =
-      Slave::new;
-
-  /**
-   * Fetches the listing of known slaves.
-   *
-   * @return HTTP response.
-   */
-  @GET
-  @Produces(MediaType.TEXT_HTML)
-  public Response get() {
-    return fillTemplate(template -> {
-      template.setAttribute("cluster_name", clusterName);
-
-      template.setAttribute("slaves",
-          FluentIterable.from(getHostAttributes()).transform(TO_SLAVE).toList());
-    });
-  }
-
-  private static final Ordering<IAttribute> ATTR_ORDER = Ordering.natural().onResultOf(
-      new Function<IAttribute, String>() {
-        @Override
-        public String apply(IAttribute attr) {
-          return attr .getName();
-        }
-      });
-
-  /**
-   * Template object to represent a slave.
-   */
-  private static class Slave {
-    private final IHostAttributes attributes;
-
-    Slave(IHostAttributes attributes) {
-      this.attributes = attributes;
-    }
-
-    public String getHost() {
-      return attributes.getHost();
-    }
-
-    public String getId() {
-      return attributes.getSlaveId();
-    }
-
-    public MaintenanceMode getMode() {
-      return attributes.getMode();
-    }
-
-    private static final Function<IAttribute, String> ATTR_TO_STRING =
-        attr -> attr.getName() + "=[" + Joiner.on(",").join(attr.getValues()) + "]";
-
-    public String getAttributes() {
-      return Joiner.on(", ").join(
-          Iterables.transform(ATTR_ORDER.sortedCopy(attributes.getAttributes()), ATTR_TO_STRING));
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java b/src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java
index 93bc672..e137daa 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/CommandLineDriverSettingsModule.java
@@ -87,7 +87,7 @@ public class CommandLineDriverSettingsModule extends AbstractModule {
           + "\"--no-root_submissions\". If set to anything other than \"root\", the executor "
           + "will ignore the \"role\" setting for jobs since it can't use setuid() anymore. "
           + "This means that all your jobs will run under the specified user and the user has "
-          + "to exist on the mesos slaves.")
+          + "to exist on the Mesos agents.")
   private static final Arg<String> EXECUTOR_USER = Arg.create("root");
 
   @CmdLine(name = "receive_revocable_resources",

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java b/src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java
index 85ca0ea..433fc90 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java
@@ -139,7 +139,7 @@ public class MesosSchedulerImpl implements Scheduler {
 
   @Override
   public void slaveLost(SchedulerDriver schedulerDriver, SlaveID slaveId) {
-    log.info("Received notification of lost slave: " + slaveId);
+    log.info("Received notification of lost agent: " + slaveId);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/src/main/java/org/apache/aurora/scheduler/scheduling/SchedulingModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/scheduling/SchedulingModule.java b/src/main/java/org/apache/aurora/scheduler/scheduling/SchedulingModule.java
index 577edcb..11e8033 100644
--- a/src/main/java/org/apache/aurora/scheduler/scheduling/SchedulingModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/scheduling/SchedulingModule.java
@@ -78,7 +78,7 @@ public class SchedulingModule extends AbstractModule {
   private static final Arg<Amount<Long, Time>> MAX_SCHEDULE_PENALTY =
       Arg.create(Amount.of(1L, Time.MINUTES));
 
-  @CmdLine(name = "offer_reservation_duration", help = "Time to reserve a slave's offers while "
+  @CmdLine(name = "offer_reservation_duration", help = "Time to reserve a agent's offers while "
       + "trying to satisfy a task preempting another.")
   private static final Arg<Amount<Long, Time>> RESERVATION_DURATION =
       Arg.create(Amount.of(3L, Time.MINUTES));

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java b/src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java
index 5be3981..7f7b435 100644
--- a/src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java
+++ b/src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java
@@ -125,7 +125,7 @@ public interface TaskAssigner {
           offer.getSlaveId(),
           task -> mapAndAssignResources(offer, task));
       LOG.info(
-          "Offer on slave {} (id {}) is being assigned task for {}.",
+          "Offer on agent {} (id {}) is being assigned task for {}.",
           host, offer.getSlaveId().getValue(), taskId);
       return taskFactory.createFrom(assigned, offer);
     }
@@ -185,7 +185,7 @@ public interface TaskAssigner {
             offerManager.banOffer(offer.getOffer().getId(), groupKey);
           }
 
-          LOG.debug("Slave " + offer.getOffer().getHostname()
+          LOG.debug("Agent " + offer.getOffer().getHostname()
               + " vetoed task " + taskId + ": " + vetoes);
         }
       }

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java b/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
index 1ddc117..c981a05 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
@@ -360,7 +360,7 @@ public class LogStorage implements NonVolatileStorage, DistributedSnapshotStore
           if (attributes.isSetSlaveId()) {
             writeBehindAttributeStore.saveHostAttributes(IHostAttributes.build(attributes));
           } else {
-            LOG.info("Dropping host attributes with no slave ID: " + attributes);
+            LOG.info("Dropping host attributes with no agent ID: " + attributes);
           }
         })
         .put(

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/src/main/python/apache/aurora/client/base.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/client/base.py b/src/main/python/apache/aurora/client/base.py
index 901335b..73953b6 100644
--- a/src/main/python/apache/aurora/client/base.py
+++ b/src/main/python/apache/aurora/client/base.py
@@ -122,7 +122,7 @@ def group_hosts(hostnames, grouping_function=DEFAULT_GROUPING):
   rack of hosts at a time.
 
   :param hostnames: Hostnames to break into groups
-  :type hostnames: list of host names, must match the host names that slaves are registered with
+  :type hostnames: list of host names, must match the host names that agents are registered with
   :param grouping_function: Key within GROUPING_FUNCTIONS to partition hosts into desired batches
   :type grouping_function: string
   :rtype: dictionary of batches

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/src/main/python/apache/aurora/executor/bin/thermos_executor_main.py
----------------------------------------------------------------------
diff --git a/src/main/python/apache/aurora/executor/bin/thermos_executor_main.py b/src/main/python/apache/aurora/executor/bin/thermos_executor_main.py
index b2cc78d..203fc47 100644
--- a/src/main/python/apache/aurora/executor/bin/thermos_executor_main.py
+++ b/src/main/python/apache/aurora/executor/bin/thermos_executor_main.py
@@ -15,7 +15,7 @@
 """Command-line entry point to the Thermos Executor
 
 This module wraps the Thermos Executor into an executable suitable for launching by a Mesos
-slave.
+agent.
 
 """
 
@@ -88,7 +88,7 @@ app.add_option(
     type=str,
     default=None,
     help='Set hostname to be announced. By default it is'
-         'the --hostname argument passed into the mesos slave'
+         'the --hostname argument passed into the Mesos agent.'
 )
 
 app.add_option(

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/src/main/resources/org/apache/aurora/scheduler/http/agents.st
----------------------------------------------------------------------
diff --git a/src/main/resources/org/apache/aurora/scheduler/http/agents.st b/src/main/resources/org/apache/aurora/scheduler/http/agents.st
new file mode 100644
index 0000000..2f882ec
--- /dev/null
+++ b/src/main/resources/org/apache/aurora/scheduler/http/agents.st
@@ -0,0 +1,40 @@
+<!--
+ Licensed 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.
+ -->
+ <html>
+  <head>
+    <title>Aurora $cluster_name$ agents</title>
+    <link href="/assets/bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet" />
+  </head>
+  <body>
+    <h2>Agent Hosts</h2>
+    <table class="table table-striped table-condensed table-hover">
+      <thead>
+        <th>Host
+        <th>Agent ID
+        <th>Maintenance mode
+        <th>Attributes
+      </thead>
+      <tbody>
+        $agents:{ agent |
+        <tr>
+          <td><a href="http://$agent.host$:1338">$agent.host$</a>
+          <td>$agent.id$
+          <td>$agent.mode$
+          <td>$agent.attributes$
+        </tr>
+        }$
+      </tbody>
+    </table>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/src/main/resources/org/apache/aurora/scheduler/http/slaves.st
----------------------------------------------------------------------
diff --git a/src/main/resources/org/apache/aurora/scheduler/http/slaves.st b/src/main/resources/org/apache/aurora/scheduler/http/slaves.st
deleted file mode 100644
index 009e5af..0000000
--- a/src/main/resources/org/apache/aurora/scheduler/http/slaves.st
+++ /dev/null
@@ -1,40 +0,0 @@
-<!--
- Licensed 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.
- -->
- <html>
-  <head>
-    <title>Aurora $cluster_name$ slaves</title>
-    <link href="/assets/bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet" />
-  </head>
-  <body>
-    <h2>Slave Hosts</h2>
-    <table class="table table-striped table-condensed table-hover">
-      <thead>
-        <th>Host
-        <th>Slave ID
-        <th>Maintenance mode
-        <th>Attributes
-      </thead>
-      <tbody>
-        $slaves:{ slave |
-        <tr>
-          <td><a href="http://$slave.host$:1338">$slave.host$</a>
-          <td>$slave.id$
-          <td>$slave.mode$
-          <td>$slave.attributes$
-        </tr>
-        }$
-      </tbody>
-    </table>
-  </body>
-</html>

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/src/main/resources/org/apache/aurora/scheduler/http/utilization.st
----------------------------------------------------------------------
diff --git a/src/main/resources/org/apache/aurora/scheduler/http/utilization.st b/src/main/resources/org/apache/aurora/scheduler/http/utilization.st
index ae497a7..acb8f46 100644
--- a/src/main/resources/org/apache/aurora/scheduler/http/utilization.st
+++ b/src/main/resources/org/apache/aurora/scheduler/http/utilization.st
@@ -13,7 +13,7 @@
  -->
  <html>
   <head>
-    <title>Aurora $cluster_name$ slaves</title>
+    <title>Aurora $cluster_name$ utilization</title>
     <link href="/assets/bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet" />
   </head>
   <body>

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/src/main/resources/scheduler/assets/index.html
----------------------------------------------------------------------
diff --git a/src/main/resources/scheduler/assets/index.html b/src/main/resources/scheduler/assets/index.html
index 5679b19..773536f 100644
--- a/src/main/resources/scheduler/assets/index.html
+++ b/src/main/resources/scheduler/assets/index.html
@@ -58,12 +58,12 @@
 
     <h4>Cluster Overview</h4>
     <ul class="list-unstyled group-summary" >
+      <li><a href='/agents'>/agents</a></li>
       <li><a href='/cron'>/cron</a></li>
       <li><a href='/maintenance'>/maintenance</a></li>
       <li><a href='/offers'>/offers</a></li>
       <li><a href='/pendingtasks'>/pendingtasks</a></li>
       <li><a href='/quotas'>/quotas</a></li>
-      <li><a href='/slaves'>/slaves</a></li>
       <li><a href='/utilization'>/utilization</a></li>
     </ul>
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/d64e179e/src/main/resources/scheduler/assets/js/filters.js
----------------------------------------------------------------------
diff --git a/src/main/resources/scheduler/assets/js/filters.js b/src/main/resources/scheduler/assets/js/filters.js
index ec35d81..d372269 100644
--- a/src/main/resources/scheduler/assets/js/filters.js
+++ b/src/main/resources/scheduler/assets/js/filters.js
@@ -24,7 +24,7 @@
         'frequently.',
 
       ASSIGNED: 'The scheduler has selected a machine to run the task and is instructing the ' +
-        'slave to launch it.',
+        'agent to launch it.',
 
       STARTING: 'The executor is preparing to launch the task.',
       RUNNING: 'The user process(es) are running.',
@@ -33,7 +33,7 @@
       KILLED: 'A user or cron invocation terminated the task.',
       PREEMPTING: 'This task is being killed to make resources available for a production task.',
       KILLING: 'A user request or cron invocation has requested the task be killed.',
-      LOST: 'The task cannot be accounted for, usually a result of slave process or machine ' +
+      LOST: 'The task cannot be accounted for, usually a result of agent process or machine ' +
         'failure.',
       DRAINING: 'The task is being restarted since the host is undergoing scheduled maintenance.'
     };