/*
* 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.flink.runtime.executiongraph.utils;
import org.apache.flink.api.common.JobID;
import org.apache.flink.api.common.time.Time;
import org.apache.flink.runtime.blob.BlobKey;
import org.apache.flink.runtime.checkpoint.CheckpointOptions;
import org.apache.flink.runtime.clusterframework.ApplicationStatus;
import org.apache.flink.runtime.concurrent.Future;
import org.apache.flink.runtime.concurrent.impl.FlinkCompletableFuture;
import org.apache.flink.runtime.deployment.TaskDeploymentDescriptor;
import org.apache.flink.runtime.executiongraph.ExecutionAttemptID;
import org.apache.flink.runtime.executiongraph.PartitionInfo;
import org.apache.flink.runtime.instance.InstanceID;
import org.apache.flink.runtime.jobmanager.slots.TaskManagerGateway;
import org.apache.flink.runtime.messages.Acknowledge;
import org.apache.flink.runtime.messages.StackTrace;
import org.apache.flink.runtime.messages.StackTraceSampleResponse;
import java.util.UUID;
/**
* A TaskManagerGateway that simply acks the basic operations (deploy, cancel, update) and does not
* support any more advanced operations.
*/
public class SimpleAckingTaskManagerGateway implements TaskManagerGateway {
private final String address = UUID.randomUUID().toString();
@Override
public String getAddress() {
return address;
}
@Override
public void disconnectFromJobManager(InstanceID instanceId, Exception cause) {}
@Override
public void stopCluster(ApplicationStatus applicationStatus, String message) {}
@Override
public Future<StackTrace> requestStackTrace(Time timeout) {
return FlinkCompletableFuture.completedExceptionally(new UnsupportedOperationException());
}
@Override
public Future<StackTraceSampleResponse> requestStackTraceSample(
ExecutionAttemptID executionAttemptID,
int sampleId,
int numSamples,
Time delayBetweenSamples,
int maxStackTraceDepth,
Time timeout) {
return FlinkCompletableFuture.completedExceptionally(new UnsupportedOperationException());
}
@Override
public Future<Acknowledge> submitTask(TaskDeploymentDescriptor tdd, Time timeout) {
return FlinkCompletableFuture.completed(Acknowledge.get());
}
@Override
public Future<Acknowledge> stopTask(ExecutionAttemptID executionAttemptID, Time timeout) {
return FlinkCompletableFuture.completed(Acknowledge.get());
}
@Override
public Future<Acknowledge> cancelTask(ExecutionAttemptID executionAttemptID, Time timeout) {
return FlinkCompletableFuture.completed(Acknowledge.get());
}
@Override
public Future<Acknowledge> updatePartitions(ExecutionAttemptID executionAttemptID, Iterable<PartitionInfo> partitionInfos, Time timeout) {
return FlinkCompletableFuture.completed(Acknowledge.get());
}
@Override
public void failPartition(ExecutionAttemptID executionAttemptID) {}
@Override
public void notifyCheckpointComplete(
ExecutionAttemptID executionAttemptID,
JobID jobId,
long checkpointId,
long timestamp) {}
@Override
public void triggerCheckpoint(
ExecutionAttemptID executionAttemptID,
JobID jobId,
long checkpointId,
long timestamp,
CheckpointOptions checkpointOptions) {}
@Override
public Future<BlobKey> requestTaskManagerLog(Time timeout) {
return FlinkCompletableFuture.completedExceptionally(new UnsupportedOperationException());
}
@Override
public Future<BlobKey> requestTaskManagerStdout(Time timeout) {
return FlinkCompletableFuture.completedExceptionally(new UnsupportedOperationException());
}
}