/**
* 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.falcon.unit;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.api.ApplicationClientProtocol;
import org.apache.hadoop.yarn.api.protocolrecords.CancelDelegationTokenRequest;
import org.apache.hadoop.yarn.api.protocolrecords.CancelDelegationTokenResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationAttemptReportRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationAttemptReportResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationAttemptsRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationAttemptsResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationReportRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationReportResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationsRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationsResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodeLabelsRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodeLabelsResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetContainerReportRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetContainerReportResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetContainersRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetContainersResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetDelegationTokenRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetDelegationTokenResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetLabelsToNodesRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetLabelsToNodesResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetNodesToLabelsRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetNodesToLabelsResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetQueueInfoRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetQueueInfoResponse;
import org.apache.hadoop.yarn.api.protocolrecords.GetQueueUserAclsInfoRequest;
import org.apache.hadoop.yarn.api.protocolrecords.GetQueueUserAclsInfoResponse;
import org.apache.hadoop.yarn.api.protocolrecords.KillApplicationRequest;
import org.apache.hadoop.yarn.api.protocolrecords.KillApplicationResponse;
import org.apache.hadoop.yarn.api.protocolrecords.MoveApplicationAcrossQueuesRequest;
import org.apache.hadoop.yarn.api.protocolrecords.MoveApplicationAcrossQueuesResponse;
import org.apache.hadoop.yarn.api.protocolrecords.RenewDelegationTokenRequest;
import org.apache.hadoop.yarn.api.protocolrecords.RenewDelegationTokenResponse;
import org.apache.hadoop.yarn.api.protocolrecords.ReservationDeleteRequest;
import org.apache.hadoop.yarn.api.protocolrecords.ReservationDeleteResponse;
import org.apache.hadoop.yarn.api.protocolrecords.ReservationSubmissionRequest;
import org.apache.hadoop.yarn.api.protocolrecords.ReservationSubmissionResponse;
import org.apache.hadoop.yarn.api.protocolrecords.ReservationUpdateRequest;
import org.apache.hadoop.yarn.api.protocolrecords.ReservationUpdateResponse;
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationRequest;
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationResponse;
import org.apache.hadoop.yarn.api.records.ApplicationReport;
import org.apache.hadoop.yarn.exceptions.YarnException;
import org.apache.hadoop.yarn.factories.RpcClientFactory;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.ArrayList;
/**
* A Dummy implementation of RpcClientFactory that does not do RPC.
* This is required as OozieClient tries to connect to RM via RPC to kill jobs which fails in local mode.
*/
public final class LocalFalconRPCClientFactory implements RpcClientFactory {
private static LocalFalconRPCClientFactory self = new LocalFalconRPCClientFactory();
@Override
public Object getClient(Class<?> aClass, long l, InetSocketAddress inetSocketAddress, Configuration configuration) {
return new LocalFalconApplicationClientProtocolImpl();
}
public static LocalFalconRPCClientFactory get() {
return self;
}
private LocalFalconRPCClientFactory() {
}
@Override
public void stopClient(Object o) {
}
/**
* Dummy implementation of ApplicationClientProtocol that returns a empty list of applications.
*/
public static class LocalFalconApplicationClientProtocolImpl implements ApplicationClientProtocol {
public LocalFalconApplicationClientProtocolImpl() {
}
@Override
public GetNewApplicationResponse getNewApplication(GetNewApplicationRequest getNewApplicationRequest)
throws YarnException, IOException {
return null;
}
@Override
public SubmitApplicationResponse submitApplication(SubmitApplicationRequest submitApplicationRequest)
throws YarnException, IOException {
return null;
}
@Override
public KillApplicationResponse forceKillApplication(KillApplicationRequest killApplicationRequest)
throws YarnException, IOException {
return null;
}
@Override
public GetClusterMetricsResponse getClusterMetrics(GetClusterMetricsRequest getClusterMetricsRequest)
throws YarnException, IOException {
return null;
}
@Override
public GetClusterNodesResponse getClusterNodes(GetClusterNodesRequest getClusterNodesRequest)
throws YarnException, IOException {
return null;
}
@Override
public GetQueueInfoResponse getQueueInfo(GetQueueInfoRequest getQueueInfoRequest)
throws YarnException, IOException {
return null;
}
@Override
public GetQueueUserAclsInfoResponse getQueueUserAcls(GetQueueUserAclsInfoRequest getQueueUserAclsInfoRequest)
throws YarnException, IOException {
return null;
}
@Override
public MoveApplicationAcrossQueuesResponse moveApplicationAcrossQueues(MoveApplicationAcrossQueuesRequest
moveApplicationAcrossQueuesRequest) throws YarnException, IOException {
return null;
}
@Override
public ReservationSubmissionResponse submitReservation(ReservationSubmissionRequest
reservationSubmissionRequest) throws YarnException, IOException {
return null;
}
@Override
public ReservationUpdateResponse updateReservation(ReservationUpdateRequest reservationUpdateRequest)
throws YarnException, IOException {
return null;
}
@Override
public ReservationDeleteResponse deleteReservation(ReservationDeleteRequest reservationDeleteRequest)
throws YarnException, IOException {
return null;
}
@Override
public GetNodesToLabelsResponse getNodeToLabels(GetNodesToLabelsRequest getNodesToLabelsRequest)
throws YarnException, IOException {
return null;
}
@Override
public GetLabelsToNodesResponse getLabelsToNodes(GetLabelsToNodesRequest getLabelsToNodesRequest)
throws YarnException, IOException {
return null;
}
@Override
public GetClusterNodeLabelsResponse getClusterNodeLabels(GetClusterNodeLabelsRequest
getClusterNodeLabelsRequest) throws YarnException, IOException {
return null;
}
@Override
public GetApplicationReportResponse getApplicationReport(GetApplicationReportRequest
getApplicationReportRequest) throws YarnException, IOException {
return null;
}
@Override
public GetApplicationsResponse getApplications(GetApplicationsRequest getApplicationsRequest)
throws YarnException, IOException {
return GetApplicationsResponse.newInstance(new ArrayList<ApplicationReport>());
}
@Override
public GetApplicationAttemptReportResponse getApplicationAttemptReport(GetApplicationAttemptReportRequest
getApplicationAttemptReportRequest) throws YarnException, IOException {
return null;
}
@Override
public GetApplicationAttemptsResponse getApplicationAttempts(GetApplicationAttemptsRequest
getApplicationAttemptsRequest) throws YarnException, IOException {
return null;
}
@Override
public GetContainerReportResponse getContainerReport(GetContainerReportRequest getContainerReportRequest)
throws YarnException, IOException {
return null;
}
@Override
public GetContainersResponse getContainers(GetContainersRequest getContainersRequest)
throws YarnException, IOException {
return null;
}
@Override
public GetDelegationTokenResponse getDelegationToken(GetDelegationTokenRequest getDelegationTokenRequest)
throws YarnException, IOException {
return null;
}
@Override
public RenewDelegationTokenResponse renewDelegationToken(RenewDelegationTokenRequest
renewDelegationTokenRequest) throws YarnException, IOException {
return null;
}
@Override
public CancelDelegationTokenResponse cancelDelegationToken(CancelDelegationTokenRequest
cancelDelegationTokenRequest) throws YarnException, IOException {
return null;
}
}
}