refactored out private module of JobServServer into its own module. got ssl code building

This commit is contained in:
Aidan Hahn 2019-05-18 16:40:58 -07:00
parent c855151af8
commit f45a96c1e0
No known key found for this signature in database
GPG key ID: 327711E983899316
3 changed files with 79 additions and 65 deletions

View file

@ -10,13 +10,13 @@ package JobServ;
import io.grpc.Server;
import io.grpc.ServerBuilder;
import io.grpc.stub.StreamObserver;
import io.grpc.netty.GrpcSslContexts;
import io.grpc.netty.NettyServerBuilder;
import io.netty.handler.ssl.ClientAuth;
import io.netty.handler.ssl.SslContextBuilder;
import io.netty.handler.ssl.SslProvider;
import java.io.File;
import java.io.IOException;
import java.util.logging.Logger;
@ -53,12 +53,13 @@ public class JobServServer {
sslClientContextBuilder.clientAuth(ClientAuth.REQUIRE);
return GrpcSslContexts.configure(sslClientContextBuilder);
}
// starts the GRPC API Server
private void start() throws IOException {
// TODO: this should be passed in from a configuration manager
server = ServerBuilder.forPort(this.port)
.addService(new ShellServerImpl())
server = NettyServerBuilder.forPort(port)
.addService(new ShellServerService())
.sslContext(getSslContextBuilder().build())
.build()
.start();
@ -90,7 +91,7 @@ public class JobServServer {
// Main function. starts GRPC server and spins until server is shutdown
public static void main(String[] args) throws IOException, InterruptedException {
int port = 8448; // TODO: port and key/cert files should be handled by a config manager
int port = 8448; // TODO: port and key/cert files should be handled by a config manager
if(args.length < 3) {
System.out.println("Usage: ./jobserv-server certchain privatekey truststore");
@ -101,64 +102,4 @@ public class JobServServer {
server.start();
server.blockUntilShutdown();
}
// wrap around stub code generated by GRPC
static class ShellServerImpl extends ShellServerGrpc.ShellServerImplBase {
@Override
public void getStatus(PIDMessage request,
StreamObserver<StatusMessage> responder) {
// TODO: Implement job controller, check request type, do the thing
StatusMessage reply = StatusMessage.newBuilder()
.setIsRunning(true)
.build();
responder.onNext(reply);
responder.onCompleted();
}
@Override
public void getOutput(PIDMessage request,
StreamObserver<OutputMessage> responder) {
// TODO: Implement job controller, get output, do the thing
OutputMessage reply = OutputMessage.newBuilder()
.setOutput("test data")
.build();
responder.onNext(reply);
responder.onCompleted();
}
@Override
public void newJob(NewJobMessage request,
StreamObserver<PIDMessage> responder) {
// TODO: Implement job controller, Start Job, do the thing
PIDMessage reply = PIDMessage.newBuilder()
.setPid(-1)
.build();
responder.onNext(reply);
responder.onCompleted();
}
@Override
public void getReturn(PIDMessage request,
StreamObserver<ReturnMessage> responder) {
// TODO: Implement job controller, get return code
ReturnMessage reply = ReturnMessage.newBuilder()
.setProcessReturnCode(277)
.build();
responder.onNext(reply);
responder.onCompleted();
}
@Override
public void killJob(PIDMessage request,
StreamObserver<StatusMessage> responder) {
// TODO: implement job controller, do the thing
// TODO: kill job here
StatusMessage reply = StatusMessage.newBuilder()
.setIsRunning(false)
.build();
responder.onNext(reply);
responder.onCompleted();
}
}
}