diff --git a/CHANGELOG.md b/CHANGELOG.md index a003c57..50a214e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Added +* getDefaultRuntime rpc to SchedulerService ([#44](https://github.com/xenon-middleware/xenon-grpc/issues/44)) * start_time and temp_space fields to JobDescription message ([#43](https://github.com/xenon-middleware/xenon-grpc/issues/43)) * [at](https://linux.die.net/man/1/at) scheduler diff --git a/src/main/java/nl/esciencecenter/xenon/grpc/schedulers/SchedulerService.java b/src/main/java/nl/esciencecenter/xenon/grpc/schedulers/SchedulerService.java index 48ca879..b8fa6a2 100644 --- a/src/main/java/nl/esciencecenter/xenon/grpc/schedulers/SchedulerService.java +++ b/src/main/java/nl/esciencecenter/xenon/grpc/schedulers/SchedulerService.java @@ -491,4 +491,19 @@ public void getFileSystem(XenonProto.Scheduler request, StreamObserver responseObserver) { + try { + Scheduler scheduler = getScheduler(request); + int defaultRuntime = scheduler.getDefaultRuntime(); + XenonProto.GetDefaultRuntimeResponse value = XenonProto.GetDefaultRuntimeResponse.newBuilder() + .setValue(defaultRuntime) + .build(); + responseObserver.onNext(value); + responseObserver.onCompleted(); + } catch (Exception e) { + responseObserver.onError(mapException(e)); + } + } } diff --git a/src/main/proto/xenon.proto b/src/main/proto/xenon.proto index f77b733..2b283b3 100644 --- a/src/main/proto/xenon.proto +++ b/src/main/proto/xenon.proto @@ -469,6 +469,10 @@ message Is { bool value = 1; } +message GetDefaultRuntimeResponse { + uint32 value = 1; +} + // XenonFiles represents the Xenon nl.esciencecenter.xenon.filesystems.FileSystem class. // This interface contains various methods for creating and closing FileSystems, creating Paths and operations on these Paths. service FileSystemService { @@ -593,6 +597,8 @@ service SchedulerService { rpc isOpen(Scheduler) returns (Is) {} // Cancel a job rpc cancelJob(JobRequest) returns (JobStatus) {} + // Get the default runtime of a job in minutes. + rpc getDefaultRuntime(Scheduler) returns (GetDefaultRuntimeResponse) {} // Retrieve the FileSystem used internally by this Scheduler. rpc getFileSystem(Scheduler) returns (FileSystem) {} // Close this Scheduler. diff --git a/src/test/java/nl/esciencecenter/xenon/grpc/schedulers/SchedulerServiceBlockingTest.java b/src/test/java/nl/esciencecenter/xenon/grpc/schedulers/SchedulerServiceBlockingTest.java index 59f5ad4..d362031 100644 --- a/src/test/java/nl/esciencecenter/xenon/grpc/schedulers/SchedulerServiceBlockingTest.java +++ b/src/test/java/nl/esciencecenter/xenon/grpc/schedulers/SchedulerServiceBlockingTest.java @@ -647,4 +647,10 @@ public void getFileSystem_usesFileSystemFalse() throws XenonException { client.getFileSystem(createScheduler()); } + @Test + public void getDefaultRuntime() { + XenonProto.GetDefaultRuntimeResponse response = client.getDefaultRuntime(createScheduler()); + int expected = 0; + assertEquals(expected, response.getValue()); + } } \ No newline at end of file