refactor server side exception handling, better error messages in client

This commit is contained in:
Aidan Hahn 2019-05-19 13:26:15 -07:00
parent a932852b2c
commit b74741427c
No known key found for this signature in database
GPG key ID: 327711E983899316
2 changed files with 19 additions and 10 deletions

View file

@ -94,7 +94,7 @@ public class JobServClient {
// blocking network operation
response = blockingStub.getOutput(request);
} catch (StatusRuntimeException e) {
logger.log(Level.WARNING, "[-] Request for output failed: %s", e.getStatus());
logger.log(Level.WARNING, "(API Failure) Request for output failed: %s", e.getMessage());
return "<Error connecting to API>";
}
@ -119,7 +119,7 @@ public class JobServClient {
// blocking network operation
response = blockingStub.newJob(request);
} catch (StatusRuntimeException e) {
logger.log(Level.WARNING, "[-] Request for new job failed!");
logger.log(Level.WARNING, "(API Failure) Request for new job failed: %s", e.getMessage());
return -1;
}
@ -147,7 +147,7 @@ public class JobServClient {
// blocking network operation
response = blockingStub.getStatus(request);
} catch (StatusRuntimeException e) {
logger.log(Level.WARNING, "[-] Request for status failed!");
logger.log(Level.WARNING, "(API Failure) Request for status failed: %s", e.getMessage());
return false;
}
@ -172,7 +172,7 @@ public class JobServClient {
// blocking network operation
response = blockingStub.getReturn(request);
} catch (StatusRuntimeException e) {
logger.log(Level.WARNING, "[-] Failed to get return code!");
logger.log(Level.WARNING, "(API Failure) Failed to get return code: %s", e.getMessage());
return 278;
}
@ -196,7 +196,7 @@ public class JobServClient {
// blocking network operation
response = blockingStub.killJob(request);
} catch (StatusRuntimeException e) {
logger.log(Level.WARNING, "[-] Failed to send request!");
logger.log(Level.WARNING, "(API Failure) Failed to send request: %s", e.getMessage());
return;
}

View file

@ -13,9 +13,10 @@ import io.grpc.ServerBuilder;
import io.grpc.netty.GrpcSslContexts;
import io.grpc.netty.NettyServerBuilder;
import io.netty.handler.ssl.ClientAuth;
import io.netty.handler.ssl.SslContext;
import io.netty.handler.ssl.SslContextBuilder;
import io.netty.handler.ssl.SslProvider;
import javax.net.ssl.SSLException;
import java.io.File;
import java.io.IOException;
import java.util.logging.Logger;
@ -40,7 +41,7 @@ public class JobServServer {
public JobServServer(int port,
String serverCert,
String privateKey,
String trustStore) {
String trustStore) throws SSLException {
this.port = port;
SslContextBuilder sslContextBuilder = SslContextBuilder.forServer(new File(serverCert), new File(privateKey));
@ -48,7 +49,7 @@ public class JobServServer {
sslContextBuilder.trustManager(new File(trustStore));
sslContextBuilder.clientAuth(ClientAuth.REQUIRE);
this.ssl = GrpcSslContexts.configure(sslClientContextBuilder).build();
this.ssl = GrpcSslContexts.configure(sslContextBuilder).build();
}
/*
@ -59,7 +60,7 @@ public class JobServServer {
// TODO: this should be passed in from a configuration manager
server = NettyServerBuilder.forPort(port)
.addService(new ShellServerService())
.sslContext(getSslContextBuilder().build())
.sslContext(this.ssl)
.build()
.start();
logger.info("Server initialized!");
@ -110,7 +111,15 @@ public class JobServServer {
return;
}
final JobServServer server = new JobServServer(8448, args[0], args[1], args[2]);
JobServServer server;
try{
server = new JobServServer(8448, args[0], args[1], args[2]);
} catch (SSLException e) {
System.out.println(e.getMessage());
return;
}
server.start();
server.blockUntilShutdown();
}