http://git-wip-us.apache.org/repos/asf/hadoop/blob/727e6d78/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderClusterProtocolProxy.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderClusterProtocolProxy.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderClusterProtocolProxy.java
deleted file mode 100644
index 2e40a9b..0000000
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderClusterProtocolProxy.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * 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.server.appmaster.rpc;
-
-import com.google.common.base.Preconditions;
-import com.google.protobuf.RpcController;
-import com.google.protobuf.ServiceException;
-import org.apache.hadoop.ipc.ProtobufHelper;
-import org.apache.hadoop.ipc.ProtocolSignature;
-import org.apache.hadoop.ipc.RPC;
-import org.apache.hadoop.ipc.RemoteException;
-import org.apache.hadoop.yarn.exceptions.YarnException;
-import org.apache.slider.api.SliderClusterProtocol;
-import org.apache.slider.api.proto.Messages;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-
-public class SliderClusterProtocolProxy implements SliderClusterProtocol {
-
-  private static final RpcController NULL_CONTROLLER = null;
-  private final SliderClusterProtocolPB endpoint;
-  private final InetSocketAddress address;
-
-  public SliderClusterProtocolProxy(SliderClusterProtocolPB endpoint,
-      InetSocketAddress address) {
-    Preconditions.checkArgument(endpoint != null, "null endpoint");
-    Preconditions.checkNotNull(address != null, "null address");
-    this.endpoint = endpoint;
-    this.address = address;
-  }
-
-  @Override
-  public String toString() {
-    final StringBuilder sb =
-        new StringBuilder("SliderClusterProtocolProxy{");
-    sb.append("address=").append(address);
-    sb.append('}');
-    return sb.toString();
-  }
-
-  @Override
-  public ProtocolSignature getProtocolSignature(String protocol,
-      long clientVersion,
-      int clientMethodsHash)
-      throws IOException {
-    if (!protocol.equals(RPC.getProtocolName(SliderClusterProtocolPB.class))) {
-      throw new IOException("Serverside implements " +
-                            RPC.getProtocolName(SliderClusterProtocolPB.class) 
+
-                            ". The following requested protocol is unknown: " +
-                            protocol);
-    }
-
-    return ProtocolSignature.getProtocolSignature(clientMethodsHash,
-        RPC.getProtocolVersion(
-            SliderClusterProtocol.class),
-        SliderClusterProtocol.class);
-  }
-
-  @Override
-  public long getProtocolVersion(String protocol, long clientVersion)
-      throws IOException {
-    return SliderClusterProtocol.versionID;
-  }
-  
-  private IOException convert(ServiceException se) {
-    IOException ioe = ProtobufHelper.getRemoteException(se);
-    if (ioe instanceof RemoteException) {
-      RemoteException remoteException = (RemoteException) ioe;
-      return remoteException.unwrapRemoteException();
-    }
-    return ioe;
-  }
-  
-  @Override public Messages.StopClusterResponseProto stopCluster(
-      Messages.StopClusterRequestProto request)
-      throws IOException, YarnException {
-    try {
-      return endpoint.stopCluster(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-  @Override
-  public Messages.UpgradeContainersResponseProto upgradeContainers(
-      Messages.UpgradeContainersRequestProto request) throws IOException,
-      YarnException {
-    try {
-      return endpoint.upgradeContainers(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-  @Override
-  public Messages.FlexComponentsResponseProto flexComponents(
-      Messages.FlexComponentsRequestProto request) throws IOException {
-    try {
-      return endpoint.flexComponents(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-  @Override
-  public Messages.GetJSONClusterStatusResponseProto getJSONClusterStatus(
-    Messages.GetJSONClusterStatusRequestProto request) throws
-                                                       IOException,
-                                                       YarnException {
-    try {
-      return endpoint.getJSONClusterStatus(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-  @Override
-  public Messages.ListNodeUUIDsByRoleResponseProto 
listNodeUUIDsByRole(Messages.ListNodeUUIDsByRoleRequestProto request) throws
-                                                                               
                                          IOException,
-                                                                               
                                          YarnException {
-    try {
-      return endpoint.listNodeUUIDsByRole(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-  @Override
-  public Messages.GetNodeResponseProto getNode(Messages.GetNodeRequestProto 
request) throws
-                                                                               
      IOException,
-                                                                               
      YarnException {
-    try {
-      return endpoint.getNode(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-  @Override
-  public Messages.GetClusterNodesResponseProto 
getClusterNodes(Messages.GetClusterNodesRequestProto request) throws
-                                                                               
                              IOException,
-                                                                               
                              YarnException {
-    try {
-      return endpoint.getClusterNodes(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-
-  @Override
-  public Messages.EchoResponseProto echo(Messages.EchoRequestProto request) 
throws
-                                                                               
                              IOException,
-                                                                               
                              YarnException {
-    try {
-      return endpoint.echo(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-
-  @Override
-  public Messages.KillContainerResponseProto 
killContainer(Messages.KillContainerRequestProto request) throws
-                                                                               
                              IOException,
-                                                                               
                              YarnException {
-    try {
-      return endpoint.killContainer(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-  @Override
-  public Messages.AMSuicideResponseProto 
amSuicide(Messages.AMSuicideRequestProto request) throws
-                                                                               
            IOException {
-    try {
-      return endpoint.amSuicide(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-  @Override
-  public Messages.ApplicationLivenessInformationProto getLivenessInformation(
-      Messages.GetApplicationLivenessRequestProto request) throws IOException {
-    try {
-      return endpoint.getLivenessInformation(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-  @Override
-  public Messages.GetLiveContainersResponseProto 
getLiveContainers(Messages.GetLiveContainersRequestProto request) throws
-      IOException {
-    try {
-      return endpoint.getLiveContainers(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-  @Override
-  public Messages.ContainerInformationProto 
getLiveContainer(Messages.GetLiveContainerRequestProto request) throws
-      IOException {
-    try {
-      return endpoint.getLiveContainer(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-  @Override
-  public Messages.GetLiveComponentsResponseProto 
getLiveComponents(Messages.GetLiveComponentsRequestProto request) throws
-      IOException {
-    try {
-      return endpoint.getLiveComponents(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-  @Override
-  public Messages.ComponentInformationProto 
getLiveComponent(Messages.GetLiveComponentRequestProto request) throws
-      IOException {
-    try {
-      return endpoint.getLiveComponent(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-  @Override
-  public Messages.GetLiveNodesResponseProto 
getLiveNodes(Messages.GetLiveNodesRequestProto request)
-      throws IOException {
-    try {
-      return endpoint.getLiveNodes(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-
-  @Override
-  public Messages.NodeInformationProto 
getLiveNode(Messages.GetLiveNodeRequestProto request)
-      throws IOException {
-    try {
-      return endpoint.getLiveNode(NULL_CONTROLLER, request);
-    } catch (ServiceException e) {
-      throw convert(e);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/727e6d78/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderIPCService.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderIPCService.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderIPCService.java
deleted file mode 100644
index 22f9bc3..0000000
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderIPCService.java
+++ /dev/null
@@ -1,406 +0,0 @@
-/*
- * 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.server.appmaster.rpc;
-
-import com.google.common.base.Preconditions;
-import org.apache.hadoop.ipc.ProtocolSignature;
-import org.apache.hadoop.service.AbstractService;
-import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
-import org.apache.hadoop.yarn.exceptions.YarnException;
-import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
-import org.apache.slider.api.SliderClusterProtocol;
-import org.apache.slider.api.proto.Messages;
-import org.apache.slider.api.resource.Application;
-import org.apache.slider.api.types.ApplicationLivenessInformation;
-import org.apache.slider.api.types.ComponentInformation;
-import org.apache.slider.api.types.ContainerInformation;
-import org.apache.slider.api.types.NodeInformation;
-import org.apache.slider.api.types.NodeInformationList;
-import org.apache.slider.core.exceptions.ServiceNotReadyException;
-import org.apache.slider.core.main.LauncherExitCodes;
-import org.apache.slider.core.persist.JsonSerDeser;
-import org.apache.slider.server.appmaster.AppMasterActionOperations;
-import org.apache.slider.server.appmaster.actions.ActionFlexCluster;
-import org.apache.slider.server.appmaster.actions.ActionHalt;
-import org.apache.slider.server.appmaster.actions.ActionKillContainer;
-import org.apache.slider.server.appmaster.actions.ActionStopSlider;
-import org.apache.slider.server.appmaster.actions.ActionUpgradeContainers;
-import org.apache.slider.server.appmaster.actions.AsyncAction;
-import org.apache.slider.server.appmaster.actions.QueueAccess;
-import org.apache.slider.server.appmaster.management.MetricsAndMonitoring;
-import org.apache.slider.server.appmaster.state.RoleInstance;
-import org.apache.slider.server.appmaster.state.StateAccessForProviders;
-import 
org.apache.slider.server.appmaster.web.rest.application.resources.ContentCache;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-import static org.apache.slider.api.types.RestTypeMarshalling.marshall;
-import static org.apache.slider.server.appmaster.web.rest.RestPaths.*;
-
-/**
- * Implement the {@link SliderClusterProtocol}.
- */
-@SuppressWarnings("unchecked")
-
-public class SliderIPCService extends AbstractService
-    implements SliderClusterProtocol {
-
-  protected static final Logger log =
-      LoggerFactory.getLogger(SliderIPCService.class);
-
-  private final QueueAccess actionQueues;
-  private final StateAccessForProviders state;
-  private final MetricsAndMonitoring metricsAndMonitoring;
-  private final AppMasterActionOperations amOperations;
-  private final ContentCache cache;
-  private static final JsonSerDeser<Application> jsonSerDeser =
-      new JsonSerDeser<Application>(Application.class);
-
-
-  /**
-   * This is the prefix used for metrics
-   */
-  public static final String METRICS_PREFIX =
-      "org.apache.slider.api.SliderIPCService.";
-
-  /**
-   * Constructor
-   * @param amOperations access to any AM operations
-   * @param state state view
-   * @param actionQueues queues for actions
-   * @param metricsAndMonitoring metrics
-   * @param cache
-   */
-  public SliderIPCService(AppMasterActionOperations amOperations,
-      StateAccessForProviders state, QueueAccess actionQueues,
-      MetricsAndMonitoring metricsAndMonitoring, ContentCache cache) {
-    super("SliderIPCService");
-    Preconditions.checkArgument(amOperations != null, "null amOperations");
-    Preconditions.checkArgument(state != null, "null appState");
-    Preconditions.checkArgument(actionQueues != null, "null actionQueues");
-    Preconditions.checkArgument(metricsAndMonitoring != null,
-        "null metricsAndMonitoring");
-    Preconditions.checkArgument(cache != null, "null cache");
-    this.state = state;
-    this.actionQueues = actionQueues;
-    this.metricsAndMonitoring = metricsAndMonitoring;
-    this.amOperations = amOperations;
-    this.cache = cache;
-  }
-
-  @Override   //SliderClusterProtocol
-  public ProtocolSignature getProtocolSignature(String protocol,
-      long clientVersion,
-      int clientMethodsHash) throws IOException {
-    return ProtocolSignature.getProtocolSignature(
-        this, protocol, clientVersion, clientMethodsHash);
-  }
-
-
-  @Override   //SliderClusterProtocol
-  public long getProtocolVersion(String protocol, long clientVersion)
-      throws IOException {
-    return SliderClusterProtocol.versionID;
-  }
-
-  /**
-   * General actions to perform on a slider RPC call coming in
-   * @param operation operation to log
-   * @throws IOException problems
-   * @throws ServiceNotReadyException if the RPC service is constructed
-   * but not fully initialized
-   */
-  protected void onRpcCall(String operation) throws IOException {
-    log.debug("Received call to {}", operation);
-    metricsAndMonitoring.markMeterAndCounter(METRICS_PREFIX + operation);
-  }
-
-  /**
-   * Schedule an action
-   * @param action for delayed execution
-   */
-  public void schedule(AsyncAction action) {
-    actionQueues.schedule(action);
-  }
-
-  /**
-   * Queue an action for immediate execution in the executor thread
-   * @param action action to execute
-   */
-  public void queue(AsyncAction action) {
-    actionQueues.put(action);
-  }
-
-  @Override //SliderClusterProtocol
-  public Messages.StopClusterResponseProto 
stopCluster(Messages.StopClusterRequestProto request)
-      throws IOException, YarnException {
-    onRpcCall("stop");
-    String message = request.getMessage();
-    if (message == null) {
-      message = "application stopped by client";
-    }
-    ActionStopSlider stopSlider =
-        new ActionStopSlider(message,
-            1000, TimeUnit.MILLISECONDS,
-            LauncherExitCodes.EXIT_SUCCESS,
-            FinalApplicationStatus.SUCCEEDED,
-            message);
-    log.info("SliderAppMasterApi.stopCluster: {}", stopSlider);
-    schedule(stopSlider);
-    return Messages.StopClusterResponseProto.getDefaultInstance();
-  }
-
-  @Override //SliderClusterProtocol
-  public Messages.UpgradeContainersResponseProto upgradeContainers(
-      Messages.UpgradeContainersRequestProto request) throws IOException,
-      YarnException {
-    onRpcCall("upgrade");
-    String message = request.getMessage();
-    if (message == null) {
-      message = "application containers upgraded by client";
-    }
-    ActionUpgradeContainers upgradeContainers =
-        new ActionUpgradeContainers(
-            "Upgrade containers",
-            1000, TimeUnit.MILLISECONDS,
-            LauncherExitCodes.EXIT_SUCCESS,
-            FinalApplicationStatus.SUCCEEDED,
-            request.getContainerList(),
-            request.getComponentList(),
-            message);
-    log.info("SliderAppMasterApi.upgradeContainers: {}", upgradeContainers);
-    schedule(upgradeContainers);
-    return Messages.UpgradeContainersResponseProto.getDefaultInstance();
-  }
-
-  @Override
-  public Messages.FlexComponentsResponseProto flexComponents(
-      Messages.FlexComponentsRequestProto request) throws IOException {
-    onRpcCall("flex");
-    schedule(new ActionFlexCluster("flex", 1, TimeUnit.MILLISECONDS, request));
-    return Messages.FlexComponentsResponseProto.newBuilder().build();
-  }
-
-  @Override //SliderClusterProtocol
-  public Messages.GetJSONClusterStatusResponseProto getJSONClusterStatus(
-      Messages.GetJSONClusterStatusRequestProto request)
-      throws IOException, YarnException {
-    onRpcCall("getstatus");
-    String result;
-    //quick update
-    //query and json-ify
-    Application application = state.refreshClusterStatus();
-    String stat = jsonSerDeser.toJson(application);
-    return Messages.GetJSONClusterStatusResponseProto.newBuilder()
-        .setClusterSpec(stat).build();
-  }
-
-  @Override //SliderClusterProtocol
-  public Messages.ListNodeUUIDsByRoleResponseProto 
listNodeUUIDsByRole(Messages.ListNodeUUIDsByRoleRequestProto request)
-      throws IOException, YarnException {
-    onRpcCall("listnodes)");
-    String role = request.getRole();
-    Messages.ListNodeUUIDsByRoleResponseProto.Builder builder =
-        Messages.ListNodeUUIDsByRoleResponseProto.newBuilder();
-    List<RoleInstance> nodes = state.enumLiveInstancesInRole(role);
-    for (RoleInstance node : nodes) {
-      builder.addUuid(node.id);
-    }
-    return builder.build();
-  }
-
-  @Override //SliderClusterProtocol
-  public Messages.GetNodeResponseProto getNode(Messages.GetNodeRequestProto 
request)
-      throws IOException, YarnException {
-    onRpcCall("getnode");
-    RoleInstance instance = state.getLiveInstanceByContainerID(
-        request.getUuid());
-    return Messages.GetNodeResponseProto.newBuilder()
-                                        .setClusterNode(instance.toProtobuf())
-                                        .build();
-  }
-
-  @Override //SliderClusterProtocol
-  public Messages.GetClusterNodesResponseProto getClusterNodes(
-      Messages.GetClusterNodesRequestProto request)
-      throws IOException, YarnException {
-    onRpcCall("getclusternodes");
-    List<RoleInstance>
-        clusterNodes = state.getLiveInstancesByContainerIDs(
-        request.getUuidList());
-
-    Messages.GetClusterNodesResponseProto.Builder builder =
-        Messages.GetClusterNodesResponseProto.newBuilder();
-    for (RoleInstance node : clusterNodes) {
-      builder.addClusterNode(node.toProtobuf());
-    }
-    //at this point: a possibly empty list of nodes
-    return builder.build();
-  }
-
-  @Override
-  public Messages.EchoResponseProto echo(Messages.EchoRequestProto request)
-      throws IOException, YarnException {
-    onRpcCall("echo");
-    Messages.EchoResponseProto.Builder builder =
-        Messages.EchoResponseProto.newBuilder();
-    String text = request.getText();
-    log.info("Echo request size ={}", text.length());
-    log.info(text);
-    //now return it
-    builder.setText(text);
-    return builder.build();
-  }
-
-  @Override
-  public Messages.KillContainerResponseProto 
killContainer(Messages.KillContainerRequestProto request)
-      throws IOException, YarnException {
-    onRpcCall("killcontainer");
-    String containerID = request.getId();
-    log.info("Kill Container {}", containerID);
-    //throws NoSuchNodeException if it is missing
-    RoleInstance instance =
-        state.getLiveInstanceByContainerID(containerID);
-    queue(new ActionKillContainer(instance.getContainerId(), 0, 
TimeUnit.MILLISECONDS,
-        amOperations));
-    Messages.KillContainerResponseProto.Builder builder =
-        Messages.KillContainerResponseProto.newBuilder();
-    builder.setSuccess(true);
-    return builder.build();
-  }
-
-
-  @Override
-  public Messages.AMSuicideResponseProto amSuicide(
-      Messages.AMSuicideRequestProto request)
-      throws IOException {
-    onRpcCall("amsuicide");
-    int signal = request.getSignal();
-    String text = request.getText();
-    if (text == null) {
-      text = "";
-    }
-    int delay = request.getDelay();
-    log.info("AM Suicide with signal {}, message {} delay = {}", signal, text,
-        delay);
-    ActionHalt action = new ActionHalt(signal, text, delay,
-        TimeUnit.MILLISECONDS);
-    schedule(action);
-    return Messages.AMSuicideResponseProto.getDefaultInstance();
-  }
-
-  @Override
-  public Messages.ApplicationLivenessInformationProto getLivenessInformation(
-      Messages.GetApplicationLivenessRequestProto request) throws IOException {
-    ApplicationLivenessInformation info =
-        state.getApplicationLivenessInformation();
-    return marshall(info);
-  }
-
-  @Override
-  public Messages.GetLiveContainersResponseProto getLiveContainers(
-      Messages.GetLiveContainersRequestProto request)
-      throws IOException {
-    Map<String, ContainerInformation> infoMap =
-        (Map<String, ContainerInformation>) 
cache.lookupWithIOE(LIVE_CONTAINERS);
-    Messages.GetLiveContainersResponseProto.Builder builder =
-        Messages.GetLiveContainersResponseProto.newBuilder();
-
-    for (Map.Entry<String, ContainerInformation> entry : infoMap.entrySet()) {
-      builder.addNames(entry.getKey());
-      builder.addContainers(marshall(entry.getValue()));
-    }
-    return builder.build();
-  }
-
-  @Override
-  public Messages.ContainerInformationProto 
getLiveContainer(Messages.GetLiveContainerRequestProto request)
-      throws IOException {
-    String containerId = request.getContainerId();
-    RoleInstance id = state.getLiveInstanceByContainerID(containerId);
-    ContainerInformation containerInformation = id.serialize();
-    return marshall(containerInformation);
-  }
-
-  @Override
-  public Messages.GetLiveComponentsResponseProto 
getLiveComponents(Messages.GetLiveComponentsRequestProto request)
-      throws IOException {
-    Map<String, ComponentInformation> infoMap =
-        (Map<String, ComponentInformation>) 
cache.lookupWithIOE(LIVE_COMPONENTS);
-    Messages.GetLiveComponentsResponseProto.Builder builder =
-        Messages.GetLiveComponentsResponseProto.newBuilder();
-
-    for (Map.Entry<String, ComponentInformation> entry : infoMap.entrySet()) {
-      builder.addNames(entry.getKey());
-      builder.addComponents(marshall(entry.getValue()));
-    }
-    return builder.build();
-  }
-
-
-  @Override
-  public Messages.ComponentInformationProto 
getLiveComponent(Messages.GetLiveComponentRequestProto request)
-      throws IOException {
-    String name = request.getName();
-    try {
-      return marshall(state.getComponentInformation(name));
-    } catch (YarnRuntimeException e) {
-      throw new FileNotFoundException("Unknown component: " + name);
-    }
-  }
-
-  @Override
-  public Messages.GetLiveNodesResponseProto 
getLiveNodes(Messages.GetLiveNodesRequestProto request)
-      throws IOException {
-    NodeInformationList info = (NodeInformationList) 
cache.lookupWithIOE(LIVE_NODES);
-    Messages.GetLiveNodesResponseProto.Builder builder =
-        Messages.GetLiveNodesResponseProto.newBuilder();
-
-    for (NodeInformation nodeInformation : info) {
-      builder.addNodes(marshall(nodeInformation));
-    }
-    return builder.build();
-  }
-
-
-  @Override
-  public Messages.NodeInformationProto 
getLiveNode(Messages.GetLiveNodeRequestProto request)
-      throws IOException {
-    String name = request.getName();
-    NodeInformation nodeInformation = state.getNodeInformation(name);
-    if (nodeInformation != null) {
-      return marshall(nodeInformation);
-    } else {
-      throw new FileNotFoundException("Unknown host: " + name);
-    }
-  }
-
-  private Messages.WrappedJsonProto wrap(String json) {
-    Messages.WrappedJsonProto.Builder builder =
-        Messages.WrappedJsonProto.newBuilder();
-    builder.setJson(json);
-    return builder.build();
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/727e6d78/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderRPCSecurityInfo.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderRPCSecurityInfo.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderRPCSecurityInfo.java
deleted file mode 100644
index 5b127b8..0000000
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderRPCSecurityInfo.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
-* 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.server.appmaster.rpc;
-
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.security.KerberosInfo;
-import org.apache.hadoop.security.SecurityInfo;
-import org.apache.hadoop.security.token.TokenIdentifier;
-import org.apache.hadoop.security.token.TokenInfo;
-import org.apache.hadoop.security.token.TokenSelector;
-import org.apache.hadoop.yarn.security.client.ClientToAMTokenSelector;
-import org.apache.hadoop.yarn.service.conf.SliderXmlConfKeys;
-
-import java.lang.annotation.Annotation;
-
-/**
- * This is where security information goes.
- * It is referred to in the 
<code>META-INF/services/org.apache.hadoop.security.SecurityInfo</code>
- * resource of this JAR, which is used to find the binding info
- */
-public class SliderRPCSecurityInfo extends SecurityInfo {
-
-  @Override
-  public KerberosInfo getKerberosInfo(Class<?> protocol, Configuration conf) {
-    if (!protocol.equals(SliderClusterProtocolPB.class)) {
-      return null;
-    }
-    return new KerberosInfo() {
-
-      @Override
-      public Class<? extends Annotation> annotationType() {
-        return null;
-      }
-
-      @Override
-      public String serverPrincipal() {
-        return SliderXmlConfKeys.KEY_KERBEROS_PRINCIPAL;
-      }
-
-      @Override
-      public String clientPrincipal() {
-        return null;
-      }
-    };
-  }
-
-  @Override
-  public TokenInfo getTokenInfo(Class<?> protocol, Configuration conf) {
-    if (!protocol.equals(SliderClusterProtocolPB.class)) {
-      return null;
-    }
-    return new TokenInfo() {
-
-      @Override
-      public Class<? extends Annotation> annotationType() {
-        return null;
-      }
-
-      @Override
-      public Class<? extends TokenSelector<? extends TokenIdentifier>>
-          value() {
-        return ClientToAMTokenSelector.class;
-      }
-
-      @Override
-      public String toString() {
-        return "SliderClusterProtocolPB token info";
-      }
-    };
-  }
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/727e6d78/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/security/SecurityConfiguration.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/security/SecurityConfiguration.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/security/SecurityConfiguration.java
deleted file mode 100644
index 75eccd0..0000000
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/security/SecurityConfiguration.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * 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.server.appmaster.security;
-
-import com.google.common.base.Preconditions;
-import org.apache.commons.lang.StringUtils;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.security.UserGroupInformation;
-import static org.apache.slider.core.main.LauncherExitCodes.EXIT_UNAUTHORIZED;
-
-import org.apache.slider.api.resource.Application;
-import org.apache.hadoop.yarn.service.conf.SliderKeys;
-import org.apache.hadoop.yarn.service.conf.SliderXmlConfKeys;
-import org.apache.slider.common.tools.SliderUtils;
-import org.apache.slider.core.exceptions.SliderException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.IOException;
-
-/**
- * Class keeping code security information
- */
-public class SecurityConfiguration {
-
-  protected static final Logger log =
-      LoggerFactory.getLogger(SecurityConfiguration.class);
-  private final Configuration configuration;
-  private final Application application;
-  private String clusterName;
-
-  public SecurityConfiguration(Configuration configuration,
-                               Application application,
-                               String clusterName) throws SliderException {
-    Preconditions.checkNotNull(configuration);
-    Preconditions.checkNotNull(application);
-    Preconditions.checkNotNull(clusterName);
-    this.configuration = configuration;
-    this.application = application;
-    this.clusterName = clusterName;
-    validate();
-  }
-
-  private void validate() throws SliderException {
-    if (isSecurityEnabled()) {
-      // TODO use AM configuration rather than app configuration
-      String principal = application.getConfiguration().getProperty(
-          SliderXmlConfKeys.KEY_KEYTAB_PRINCIPAL);
-      if(SliderUtils.isUnset(principal)) {
-        // if no login identity is available, fail
-        UserGroupInformation loginUser = null;
-        try {
-          loginUser = getLoginUser();
-        } catch (IOException e) {
-          throw new SliderException(EXIT_UNAUTHORIZED, e,
-              "No principal configured for the application and "
-                  + "exception raised during retrieval of login user. "
-                  + "Unable to proceed with application "
-                  + "initialization.  Please ensure a value "
-                  + "for %s exists in the application "
-                  + "configuration or the login issue is addressed",
-              SliderXmlConfKeys.KEY_KEYTAB_PRINCIPAL);
-        }
-        if (loginUser == null) {
-          throw new SliderException(EXIT_UNAUTHORIZED,
-              "No principal configured for the application "
-                  + "and no login user found. "
-                  + "Unable to proceed with application "
-                  + "initialization.  Please ensure a value "
-                  + "for %s exists in the application "
-                  + "configuration or the login issue is addressed",
-              SliderXmlConfKeys.KEY_KEYTAB_PRINCIPAL);
-        }
-      }
-      // ensure that either local or distributed keytab mechanism is enabled,
-      // but not both
-      String keytabFullPath = application.getConfiguration().getProperty(
-          SliderXmlConfKeys.KEY_AM_KEYTAB_LOCAL_PATH);
-      String keytabName = application.getConfiguration().getProperty(
-          SliderXmlConfKeys.KEY_AM_LOGIN_KEYTAB_NAME);
-      if (SliderUtils.isSet(keytabFullPath) && SliderUtils.isSet(keytabName)) {
-        throw new SliderException(EXIT_UNAUTHORIZED,
-            "Both a keytab on the cluster host (%s) and a"
-                + " keytab to be retrieved from HDFS (%s) are"
-                + " specified.  Please configure only one keytab"
-                + " retrieval mechanism.",
-            SliderXmlConfKeys.KEY_AM_KEYTAB_LOCAL_PATH,
-            SliderXmlConfKeys.KEY_AM_LOGIN_KEYTAB_NAME);
-
-      }
-    }
-  }
-
-  protected UserGroupInformation getLoginUser() throws IOException {
-    return UserGroupInformation.getLoginUser();
-  }
-
-  public boolean isSecurityEnabled() {
-    return SliderUtils.isHadoopClusterSecure(configuration);
-  }
-
-  public String getPrincipal() throws IOException {
-    String principal = application.getConfiguration().getProperty(
-        SliderXmlConfKeys.KEY_KEYTAB_PRINCIPAL);
-    if (SliderUtils.isUnset(principal)) {
-      principal = UserGroupInformation.getLoginUser().getShortUserName();
-      log.info("No principal set in the slider configuration.  Will use AM " +
-          "login identity {} to attempt keytab-based login", principal);
-    }
-
-    return principal;
-  }
-
-  public boolean isKeytabProvided() {
-    String keytabLocalPath = application.getConfiguration().getProperty(
-        SliderXmlConfKeys.KEY_AM_KEYTAB_LOCAL_PATH);
-    String keytabName = application.getConfiguration().getProperty(
-        SliderXmlConfKeys.KEY_AM_LOGIN_KEYTAB_NAME);
-    return StringUtils.isNotBlank(keytabLocalPath)
-        || StringUtils.isNotBlank(keytabName);
-
-  }
-
-  public File getKeytabFile()
-      throws SliderException, IOException {
-    //TODO implement this for dash semantic
-    String keytabFullPath = application.getConfiguration().getProperty(
-        SliderXmlConfKeys.KEY_AM_KEYTAB_LOCAL_PATH);
-    File localKeytabFile;
-    if (SliderUtils.isUnset(keytabFullPath)) {
-      // get the keytab
-      String keytabName = application.getConfiguration().getProperty(
-          SliderXmlConfKeys.KEY_AM_LOGIN_KEYTAB_NAME);
-      log.info("No host keytab file path specified. Will attempt to retrieve"
-               + " keytab file {} as a local resource for the container",
-               keytabName);
-      // download keytab to local, protected directory
-      localKeytabFile = new File(SliderKeys.KEYTAB_DIR, keytabName);
-    } else {
-      log.info("Using host keytab file {} for login", keytabFullPath);
-      localKeytabFile = new File(keytabFullPath);
-    }
-    return localKeytabFile;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/727e6d78/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/state/AbstractClusterServices.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/state/AbstractClusterServices.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/state/AbstractClusterServices.java
deleted file mode 100644
index 54f384b..0000000
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-slider/hadoop-yarn-slider-core/src/main/java/org/apache/slider/server/appmaster/state/AbstractClusterServices.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * 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.server.appmaster.state;
-
-import com.google.common.base.Preconditions;
-import org.apache.hadoop.yarn.api.records.Resource;
-import org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator;
-
-/**
- * Cluster services offered by the YARN infrastructure.
- */
-public abstract class AbstractClusterServices {
-
-  private final DefaultResourceCalculator
-      defaultResourceCalculator = new DefaultResourceCalculator();
-
-  /**
-   * Create a resource for requests
-   * @return a resource which can be built up.
-   */
-  public abstract Resource newResource();
-
-  public abstract Resource newResource(int memory, int cores);
-
-  /**
-   * Normalise memory, CPU and other resources according to the YARN 
AM-supplied
-   * values and the resource calculator in use (currently hard-coded to the
-   * {@link DefaultResourceCalculator}.
-   * Those resources which aren't normalized (currently: CPU) are left
-   * as is.
-   * @param resource resource requirements of a role
-   * @param minR minimum values of this queue
-   * @param maxR max values of this queue
-   * @return a normalized value.
-   */
-  public Resource normalize(Resource resource, Resource minR, Resource maxR) {
-    Preconditions.checkArgument(resource != null, "null resource");
-    Preconditions.checkArgument(minR != null, "null minR");
-    Preconditions.checkArgument(maxR != null, "null maxR");
-
-    Resource normalize = defaultResourceCalculator.normalize(resource, minR,
-        maxR, minR);
-    return newResource(normalize.getMemory(), resource.getVirtualCores());
-  }
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to