plugged ProcessManager into ShellServerService

This commit is contained in:
Aidan Hahn 2019-05-23 14:30:37 -07:00
parent eb15da6ae2
commit d814ff74b0
No known key found for this signature in database
GPG key ID: 327711E983899316
2 changed files with 55 additions and 16 deletions

View file

@ -1,13 +1,13 @@
/*
* ShellServerService
*
*
* v1.0
*
*
* May 18, 2019
*/
package JobServ;
import io.grpc.stub.StreamObserver;
import io.grpc.stub.StreamObserver;
/*
* The ShellServerService wraps around the protobuf API
@ -15,59 +15,98 @@ import io.grpc.stub.StreamObserver;
*/
class ShellServerService extends ShellServerGrpc.ShellServerImplBase {
private ProcessManager manager;
/*
* constructor
* initialized ProcessManager
*/
public ShellServerService() {
manager = new ProcessManager();
}
/*
* getStatus
* implements api endpoint as defined in jobserv.proto
*/
@Override
public void getStatus(PIDMessage request,
StreamObserver<StatusMessage> responder) {
// TODO: Implement job controller, check request type, do the thing
int status = manager.getProcessStatus(request.getPid());
StatusMessage reply = StatusMessage.newBuilder()
.setIsRunning(true)
.setProcessStatus(status)
.build();
responder.onNext(reply);
responder.onCompleted();
}
/*
* getOutput
* implements api endpoint as defined in jobserv.proto
*/
@Override
public void getOutput(PIDMessage request,
StreamObserver<OutputMessage> responder) {
// TODO: Implement job controller, get output, do the thing
String output = manager.getProcessOutput(request.getPid());
OutputMessage reply = OutputMessage.newBuilder()
.setOutput("test data")
.setOutput(output)
.build();
responder.onNext(reply);
responder.onCompleted();
}
/*
* newJob
* implements api endpoint as defined in jobserv.proto
*/
@Override
public void newJob(NewJobMessage request,
StreamObserver<PIDMessage> responder) {
// TODO: Implement job controller, Start Job, do the thing
int newPid = manager.newProcess(request.getCommand());
PIDMessage reply = PIDMessage.newBuilder()
.setPid(-1)
.setPid(newPid)
.build();
responder.onNext(reply);
responder.onCompleted();
}
/*
* getReturn
* implements api endpoint as defined in jobserv.proto
*/
@Override
public void getReturn(PIDMessage request,
StreamObserver<ReturnMessage> responder) {
// TODO: Implement job controller, get return code
int retVal = manager.getProcessReturn(request.getPid());
ReturnMessage reply = ReturnMessage.newBuilder()
.setProcessReturnCode(277)
.setProcessReturnCode(retVal)
.build();
responder.onNext(reply);
responder.onCompleted();
}
/*
* killJob
* implements api endpoint as defined in jobserv.proto
*/
@Override
public void killJob(PIDMessage request,
StreamObserver<StatusMessage> responder) {
// TODO: implement job controller, do the thing
// TODO: kill job here
int status = manager.getProcessStatus(request.getPid());
StatusMessage reply = StatusMessage.newBuilder()
.setIsRunning(false)
.setProcessStatus(status)
.build();
responder.onNext(reply);
responder.onCompleted();
}
}
}

View file

@ -16,7 +16,7 @@ service ShellServer {
}
message StatusMessage {
bool IsRunning = 1;
int32 ProcessStatus = 1;
}
message ReturnMessage {