implemented test server
This commit is contained in:
parent
dbcbd4dbad
commit
ee2b7f0b4c
4 changed files with 97 additions and 17 deletions
|
|
@ -1,14 +0,0 @@
|
||||||
/*
|
|
||||||
* This Java source file was generated by the Gradle 'init' task.
|
|
||||||
*/
|
|
||||||
package JobServ;
|
|
||||||
|
|
||||||
public class App {
|
|
||||||
public String getGreeting() {
|
|
||||||
return "Hello world.";
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
System.out.println(new App().getGreeting());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
0
src/main/java/JobServ/JobServClient.java
Normal file
0
src/main/java/JobServ/JobServClient.java
Normal file
94
src/main/java/JobServ/JobServServer.java
Normal file
94
src/main/java/JobServ/JobServServer.java
Normal file
|
|
@ -0,0 +1,94 @@
|
||||||
|
package JobServ;
|
||||||
|
|
||||||
|
import io.grpc.Server;
|
||||||
|
import io.grpc.ServerBuilder;
|
||||||
|
import io.grpc.stub.StreamObserver;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
public class JobServServer {
|
||||||
|
private static final Logger logger = Logger.getLogger(JobServServer.class.getName());
|
||||||
|
|
||||||
|
private Server server;
|
||||||
|
|
||||||
|
// starts the GRPC API Server
|
||||||
|
private void start() throws IOException {
|
||||||
|
// TODO: this should be passed in from a configuration manager
|
||||||
|
int port = 8448;
|
||||||
|
server = ServerBUilder.forPort(port)
|
||||||
|
.addService(new JobServImpl())
|
||||||
|
.build()
|
||||||
|
.start();
|
||||||
|
logger.info("Server initialized without tls");
|
||||||
|
Runtime.getRuntime().addShutdownHook(new thread() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
// JVM shutdown might break logger functionality
|
||||||
|
// so investigate this....
|
||||||
|
logger.info("Shutting down server");
|
||||||
|
JobServServer.this.stop();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void stop() {
|
||||||
|
if (server != null) {
|
||||||
|
server.shutdown();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// spinlock for main()
|
||||||
|
private void blockUntilShutdown() throws InterruptedException {
|
||||||
|
if (server != null) {
|
||||||
|
server.awaitTermination();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Main funciton. starts GRPC server and spins until server is shutdown
|
||||||
|
public static void main(String[] args) throws IOException, InterruptedException {
|
||||||
|
final JobServServer server = new JobServServer();
|
||||||
|
server.start();
|
||||||
|
server.blockUntilShutdown();
|
||||||
|
}
|
||||||
|
|
||||||
|
// wrap around stub code generated by GRPC
|
||||||
|
static class JobServImpl extends JobServGrpc.JobServImplBase {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void getStatusDetail(RequestMessage request,
|
||||||
|
StreamObserver<JobStatusMessage> responder) {
|
||||||
|
// TODO: Implement job controller, check request type, do the thing
|
||||||
|
JobStatusMessage reply = JobStatusMessage.newBuilder()
|
||||||
|
.setPID(-1)
|
||||||
|
.setProcessStatus(-1)
|
||||||
|
.build();
|
||||||
|
responder.onNext(reply);
|
||||||
|
responder.onCompleted();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void getJobOutput(RequestMessage request,
|
||||||
|
StreamObserver<OutputMessage> responder) {
|
||||||
|
// TODO: Implement job controller, get output, do the thing
|
||||||
|
OutputMessage reply = OutputMessage.newBuilder()
|
||||||
|
.setPID(-1)
|
||||||
|
.setProcessOutput("Hello World!")
|
||||||
|
.build();
|
||||||
|
responder.onNext(reply);
|
||||||
|
responder.onCompleted();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void makeNewJob(NewJobMessage request,
|
||||||
|
StreamObserver<JobStatusMessage> responder) {
|
||||||
|
// TODO: Implement job controller, Start Job, do the thing
|
||||||
|
JobStatusMessage reply = JobStatusMessage.newBuilder()
|
||||||
|
.setPID(-1)
|
||||||
|
.setProcessStatus(-1)
|
||||||
|
.build():
|
||||||
|
responder.onNext(reply);
|
||||||
|
responder.onCompleted();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -23,11 +23,11 @@ message NewJobMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
message JobStatusMessage {
|
message JobStatusMessage {
|
||||||
int32 PID = 1;
|
int32 PID = 1; // linux PIDs, by default, go up to 2^22
|
||||||
string ProcessStatus = 2;
|
int32 ProcessStatus = 2; // TODO: figure out smallest possible data size for this
|
||||||
}
|
}
|
||||||
|
|
||||||
message OutputMessage {
|
message OutputMessage {
|
||||||
int32 PID = 1;
|
int32 PID = 1;
|
||||||
string ProcessOutput = 2;
|
string ProcessOutput = 2;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue