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 // blocking network operation
response = blockingStub.getOutput(request); response = blockingStub.getOutput(request);
} catch (StatusRuntimeException e) { } 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>"; return "<Error connecting to API>";
} }
@ -119,7 +119,7 @@ public class JobServClient {
// blocking network operation // blocking network operation
response = blockingStub.newJob(request); response = blockingStub.newJob(request);
} catch (StatusRuntimeException e) { } 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; return -1;
} }
@ -147,7 +147,7 @@ public class JobServClient {
// blocking network operation // blocking network operation
response = blockingStub.getStatus(request); response = blockingStub.getStatus(request);
} catch (StatusRuntimeException e) { } 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; return false;
} }
@ -172,7 +172,7 @@ public class JobServClient {
// blocking network operation // blocking network operation
response = blockingStub.getReturn(request); response = blockingStub.getReturn(request);
} catch (StatusRuntimeException e) { } 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; return 278;
} }
@ -196,7 +196,7 @@ public class JobServClient {
// blocking network operation // blocking network operation
response = blockingStub.killJob(request); response = blockingStub.killJob(request);
} catch (StatusRuntimeException e) { } 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; return;
} }

View file

@ -13,9 +13,10 @@ import io.grpc.ServerBuilder;
import io.grpc.netty.GrpcSslContexts; import io.grpc.netty.GrpcSslContexts;
import io.grpc.netty.NettyServerBuilder; import io.grpc.netty.NettyServerBuilder;
import io.netty.handler.ssl.ClientAuth; import io.netty.handler.ssl.ClientAuth;
import io.netty.handler.ssl.SslContext;
import io.netty.handler.ssl.SslContextBuilder; import io.netty.handler.ssl.SslContextBuilder;
import io.netty.handler.ssl.SslProvider; import io.netty.handler.ssl.SslProvider;
import javax.net.ssl.SSLException;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -40,7 +41,7 @@ public class JobServServer {
public JobServServer(int port, public JobServServer(int port,
String serverCert, String serverCert,
String privateKey, String privateKey,
String trustStore) { String trustStore) throws SSLException {
this.port = port; this.port = port;
SslContextBuilder sslContextBuilder = SslContextBuilder.forServer(new File(serverCert), new File(privateKey)); SslContextBuilder sslContextBuilder = SslContextBuilder.forServer(new File(serverCert), new File(privateKey));
@ -48,7 +49,7 @@ public class JobServServer {
sslContextBuilder.trustManager(new File(trustStore)); sslContextBuilder.trustManager(new File(trustStore));
sslContextBuilder.clientAuth(ClientAuth.REQUIRE); 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 // TODO: this should be passed in from a configuration manager
server = NettyServerBuilder.forPort(port) server = NettyServerBuilder.forPort(port)
.addService(new ShellServerService()) .addService(new ShellServerService())
.sslContext(getSslContextBuilder().build()) .sslContext(this.ssl)
.build() .build()
.start(); .start();
logger.info("Server initialized!"); logger.info("Server initialized!");
@ -110,7 +111,15 @@ public class JobServServer {
return; 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.start();
server.blockUntilShutdown(); server.blockUntilShutdown();
} }