all initialized service objects use the same processmanager now, added shutdown hook to deinitialize processmanager and processcontroller objects
This commit is contained in:
parent
3538cac0d8
commit
7b0184cbd3
3 changed files with 34 additions and 26 deletions
|
|
@ -66,16 +66,21 @@ public class JobServClient {
|
|||
* writes help information about all commands in the shell to screen
|
||||
*/
|
||||
public static void outputHelp() {
|
||||
System.out.println("... new (command)");
|
||||
System.out.println("Starts a new process on the server");
|
||||
System.out.println("... output (pid)");
|
||||
System.out.println("Garners output from process on server");
|
||||
System.out.println("... status (pid)");
|
||||
System.out.println("Returns whether process on server is running");
|
||||
System.out.println("... return (pid)");
|
||||
System.out.println("Collects return code from remote process");
|
||||
System.out.println("... kill (pid)");
|
||||
System.out.println("Immediately destroys remote process");
|
||||
System.out.println("... new (command)\n"+
|
||||
"Starts a new process on the server\n"+
|
||||
"example: ./client key.pem cert.crt ca.crt localhost 8448 new echo hello world!\n\n"+
|
||||
"... output (pid)\n"+
|
||||
"Garners output from process on server\n"+
|
||||
"example: ./client key.pem cert.crt ca.crt localhost 8448 output 0\n\n"+
|
||||
"... status (pid)\n"+
|
||||
"Returns whether process on server is running"+
|
||||
"example: ./client key.pem cert.crt ca.crt localhost 8448 status 0\n\n"+
|
||||
"... return (pid)\n"+
|
||||
"Collects return code from remote process\n"+
|
||||
"example: ./client key.pem cert.crt ca.crt localhost 8448 return 0\n\n"+
|
||||
"... kill (pid)"+
|
||||
"Immediately destroys remote process"+
|
||||
"example: ./client key.pem cert.crt ca.crt localhost 8448 kill 0\n\n"+
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -32,17 +32,18 @@ public class JobServServer {
|
|||
private static final Logger logger = Logger.getLogger(JobServServer.class.getName());
|
||||
|
||||
private Server server;
|
||||
private ProcessManager manager;
|
||||
|
||||
/*
|
||||
* Constructor
|
||||
* builds server object
|
||||
*/
|
||||
public JobServServer(SslContext ssl, int port) throws IOException {
|
||||
this.server = NettyServerBuilder.forPort(port)
|
||||
.addService(new ShellServerService())
|
||||
.sslContext(ssl)
|
||||
.build()
|
||||
.start();
|
||||
this.server = NettyServerBuilder.forPort(port)
|
||||
.addService(new ShellServerService(manager))
|
||||
.sslContext(ssl)
|
||||
.build()
|
||||
.start();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -58,6 +59,7 @@ public class JobServServer {
|
|||
@Override
|
||||
public void run() {
|
||||
logger.info("Shutting down server");
|
||||
manager.shutdown();
|
||||
JobServServer.this.stop();
|
||||
}
|
||||
});
|
||||
|
|
@ -100,14 +102,14 @@ public class JobServServer {
|
|||
JobServServer server;
|
||||
|
||||
try {
|
||||
SslContextBuilder sslContextBuilder = SslContextBuilder.forServer(new File(args[1]), new File(args[2]));
|
||||
SslContextBuilder sslContextBuilder = SslContextBuilder.forServer(new File(args[1]), new File(args[2]));
|
||||
|
||||
// Mutual TLS trust store and require client auth
|
||||
sslContextBuilder.trustManager(new File(args[3]));
|
||||
sslContextBuilder.clientAuth(ClientAuth.REQUIRE);
|
||||
// Mutual TLS trust store and require client auth
|
||||
sslContextBuilder.trustManager(new File(args[3]));
|
||||
sslContextBuilder.clientAuth(ClientAuth.REQUIRE);
|
||||
|
||||
server = new JobServServer(GrpcSslContexts.configure(sslContextBuilder).build(),
|
||||
Integer.parseInt(args[0]));
|
||||
server = new JobServServer(GrpcSslContexts.configure(sslContextBuilder).build(),
|
||||
Integer.parseInt(args[0]));
|
||||
|
||||
} catch (InputMismatchException e) {
|
||||
System.out.println("Invalid port!");
|
||||
|
|
@ -118,10 +120,11 @@ public class JobServServer {
|
|||
return;
|
||||
|
||||
} catch (IOException e) {
|
||||
System.out.println(e.getMessage());
|
||||
return;
|
||||
}
|
||||
System.out.println(e.getMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
System.out.println("JobServ Server Initialized! Connect anytime...");
|
||||
server.blockUntilShutdown();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ class ShellServerService extends ShellServerGrpc.ShellServerImplBase {
|
|||
* constructor
|
||||
* initialized ProcessManager
|
||||
*/
|
||||
public ShellServerService() {
|
||||
manager = new ProcessManager();
|
||||
public ShellServerService(ProcessManager manager) {
|
||||
this.manager = manager
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue