Skip to content

Commit

Permalink
Titus - add a deadline to connection requests in v3 grpc and bump api…
Browse files Browse the repository at this point in the history
…-definition versions
  • Loading branch information
tomaslin committed Mar 26, 2018
1 parent 2a29ce6 commit 0484c9e
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 10 deletions.
2 changes: 1 addition & 1 deletion clouddriver-titus.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ ext {
}

dependencies {
protobuf group: 'netflix', name: 'titus-api-definitions', version: "1.34"
protobuf group: 'netflix', name: 'titus-api-definitions', version: "1.42"

compile "com.google.protobuf:protobuf-java:$protobufVersion"
compile "io.grpc:grpc-protobuf:$grpcVersion"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import io.grpc.netty.NegotiationType;
import io.grpc.netty.NettyChannelBuilder;
import io.grpc.util.RoundRobinLoadBalancerFactory;
import io.netty.channel.ChannelOption;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -39,6 +40,7 @@
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

@Log
Expand All @@ -48,7 +50,7 @@ public class RegionScopedV3TitusClient implements TitusClient {
/**
* Default connect timeout in milliseconds
*/
private static final long DEFAULT_CONNECT_TIMEOUT = 10000;
private static final long DEFAULT_CONNECT_TIMEOUT = 5000;

/**
* Default read timeout in milliseconds
Expand Down Expand Up @@ -104,7 +106,7 @@ public RegionScopedV3TitusClient(TitusRegion titusRegion,

@Override
public Job getJob(String jobId) {
return new Job(grpcBlockingStub.findJob(JobId.newBuilder().setId(jobId).build()), getTasks(Arrays.asList(jobId)).get(jobId));
return new Job(grpcBlockingStub.withDeadlineAfter(DEFAULT_CONNECT_TIMEOUT, TimeUnit.MILLISECONDS).findJob(JobId.newBuilder().setId(jobId).build()), getTasks(Arrays.asList(jobId)).get(jobId));
}

@Override
Expand Down Expand Up @@ -147,7 +149,7 @@ public String submitJob(SubmitJobRequest submitJobRequest) {
for (TitusJobCustomizer customizer : titusJobCustomizers) {
customizer.customize(jobDescription);
}
return grpcBlockingStub.createJob(jobDescription.getGrpcJobDescriptor()).getId();
return grpcBlockingStub.withDeadlineAfter(DEFAULT_CONNECT_TIMEOUT, TimeUnit.MILLISECONDS).createJob(jobDescription.getGrpcJobDescriptor()).getId();
}

@Override
Expand All @@ -159,7 +161,7 @@ public Task getTask(String taskId) {

@Override
public void resizeJob(ResizeJobRequest resizeJobRequest) {
grpcBlockingStub.updateJobCapacity(JobCapacityUpdate.newBuilder()
grpcBlockingStub.withDeadlineAfter(DEFAULT_CONNECT_TIMEOUT, TimeUnit.MILLISECONDS).updateJobCapacity(JobCapacityUpdate.newBuilder()
.setJobId(resizeJobRequest.getJobId())
.setCapacity(Capacity.newBuilder()
.setDesired(resizeJobRequest.getInstancesDesired())
Expand All @@ -172,18 +174,18 @@ public void resizeJob(ResizeJobRequest resizeJobRequest) {

@Override
public void activateJob(ActivateJobRequest activateJobRequest) {
grpcBlockingStub.updateJobStatus(JobStatusUpdate.newBuilder().setId(activateJobRequest.getJobId()).setEnableStatus(activateJobRequest.getInService()).build());
grpcBlockingStub.withDeadlineAfter(DEFAULT_CONNECT_TIMEOUT, TimeUnit.MILLISECONDS).updateJobStatus(JobStatusUpdate.newBuilder().setId(activateJobRequest.getJobId()).setEnableStatus(activateJobRequest.getInService()).build());
}

@Override
public void terminateJob(TerminateJobRequest terminateJobRequest) {
grpcBlockingStub.killJob(JobId.newBuilder().setId(terminateJobRequest.getJobId()).build());
grpcBlockingStub.withDeadlineAfter(DEFAULT_CONNECT_TIMEOUT, TimeUnit.MILLISECONDS).killJob(JobId.newBuilder().setId(terminateJobRequest.getJobId()).build());
}

@Override
public void terminateTasksAndShrink(TerminateTasksAndShrinkJobRequest terminateTasksAndShrinkJob) {
terminateTasksAndShrinkJob.getTaskIds().forEach(id ->
grpcBlockingStub.killTask(TaskKillRequest.newBuilder().setTaskId(id).setShrink(terminateTasksAndShrinkJob.isShrink()).build())
grpcBlockingStub.withDeadlineAfter(DEFAULT_CONNECT_TIMEOUT, TimeUnit.MILLISECONDS).killTask(TaskKillRequest.newBuilder().setTaskId(id).setShrink(terminateTasksAndShrinkJob.isShrink()).build())
);
}

Expand Down Expand Up @@ -213,7 +215,7 @@ private List<Job> getJobs(JobQuery.Builder jobQuery) {
do {
jobQuery.setPage(Page.newBuilder().setPageNumber(currentPage).setPageSize(100));
JobQuery criteria = jobQuery.build();
JobQueryResult resultPage = grpcBlockingStub.findJobs(criteria);
JobQueryResult resultPage = grpcBlockingStub.withDeadlineAfter(DEFAULT_CONNECT_TIMEOUT, TimeUnit.MILLISECONDS).findJobs(criteria);
grpcJobs.addAll(resultPage.getItemsList());
totalPages = resultPage.getPagination().getTotalPages();
currentPage++;
Expand All @@ -230,7 +232,7 @@ private Map<String, List<com.netflix.titus.grpc.protogen.Task>> getTasks(List<St
TaskQueryResult taskResults;
int currentTaskPage = 0;
do {
taskResults = grpcBlockingStub.findTasks(
taskResults = grpcBlockingStub.withDeadlineAfter(DEFAULT_CONNECT_TIMEOUT, TimeUnit.MILLISECONDS).findTasks(
TaskQuery.newBuilder()
.putFilteringCriteria("jobIds", jobIds.stream().collect(Collectors.joining(",")))
.setPage(Page.newBuilder().setPageNumber(currentTaskPage).setPageSize(100)
Expand Down

0 comments on commit 0484c9e

Please sign in to comment.