plugged ProcessManager into ShellServerService
This commit is contained in:
parent
eb15da6ae2
commit
d814ff74b0
2 changed files with 55 additions and 16 deletions
|
|
@ -15,57 +15,96 @@ import io.grpc.stub.StreamObserver;
|
||||||
*/
|
*/
|
||||||
class ShellServerService extends ShellServerGrpc.ShellServerImplBase {
|
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
|
@Override
|
||||||
public void getStatus(PIDMessage request,
|
public void getStatus(PIDMessage request,
|
||||||
StreamObserver<StatusMessage> responder) {
|
StreamObserver<StatusMessage> responder) {
|
||||||
// TODO: Implement job controller, check request type, do the thing
|
|
||||||
|
int status = manager.getProcessStatus(request.getPid());
|
||||||
|
|
||||||
StatusMessage reply = StatusMessage.newBuilder()
|
StatusMessage reply = StatusMessage.newBuilder()
|
||||||
.setIsRunning(true)
|
.setProcessStatus(status)
|
||||||
.build();
|
.build();
|
||||||
responder.onNext(reply);
|
responder.onNext(reply);
|
||||||
responder.onCompleted();
|
responder.onCompleted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* getOutput
|
||||||
|
* implements api endpoint as defined in jobserv.proto
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void getOutput(PIDMessage request,
|
public void getOutput(PIDMessage request,
|
||||||
StreamObserver<OutputMessage> responder) {
|
StreamObserver<OutputMessage> responder) {
|
||||||
// TODO: Implement job controller, get output, do the thing
|
|
||||||
|
String output = manager.getProcessOutput(request.getPid());
|
||||||
|
|
||||||
OutputMessage reply = OutputMessage.newBuilder()
|
OutputMessage reply = OutputMessage.newBuilder()
|
||||||
.setOutput("test data")
|
.setOutput(output)
|
||||||
.build();
|
.build();
|
||||||
responder.onNext(reply);
|
responder.onNext(reply);
|
||||||
responder.onCompleted();
|
responder.onCompleted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* newJob
|
||||||
|
* implements api endpoint as defined in jobserv.proto
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void newJob(NewJobMessage request,
|
public void newJob(NewJobMessage request,
|
||||||
StreamObserver<PIDMessage> responder) {
|
StreamObserver<PIDMessage> responder) {
|
||||||
// TODO: Implement job controller, Start Job, do the thing
|
|
||||||
|
int newPid = manager.newProcess(request.getCommand());
|
||||||
|
|
||||||
PIDMessage reply = PIDMessage.newBuilder()
|
PIDMessage reply = PIDMessage.newBuilder()
|
||||||
.setPid(-1)
|
.setPid(newPid)
|
||||||
.build();
|
.build();
|
||||||
responder.onNext(reply);
|
responder.onNext(reply);
|
||||||
responder.onCompleted();
|
responder.onCompleted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* getReturn
|
||||||
|
* implements api endpoint as defined in jobserv.proto
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void getReturn(PIDMessage request,
|
public void getReturn(PIDMessage request,
|
||||||
StreamObserver<ReturnMessage> responder) {
|
StreamObserver<ReturnMessage> responder) {
|
||||||
// TODO: Implement job controller, get return code
|
|
||||||
|
int retVal = manager.getProcessReturn(request.getPid());
|
||||||
|
|
||||||
ReturnMessage reply = ReturnMessage.newBuilder()
|
ReturnMessage reply = ReturnMessage.newBuilder()
|
||||||
.setProcessReturnCode(277)
|
.setProcessReturnCode(retVal)
|
||||||
.build();
|
.build();
|
||||||
responder.onNext(reply);
|
responder.onNext(reply);
|
||||||
responder.onCompleted();
|
responder.onCompleted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* killJob
|
||||||
|
* implements api endpoint as defined in jobserv.proto
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void killJob(PIDMessage request,
|
public void killJob(PIDMessage request,
|
||||||
StreamObserver<StatusMessage> responder) {
|
StreamObserver<StatusMessage> responder) {
|
||||||
// TODO: implement job controller, do the thing
|
|
||||||
// TODO: kill job here
|
int status = manager.getProcessStatus(request.getPid());
|
||||||
|
|
||||||
StatusMessage reply = StatusMessage.newBuilder()
|
StatusMessage reply = StatusMessage.newBuilder()
|
||||||
.setIsRunning(false)
|
.setProcessStatus(status)
|
||||||
.build();
|
.build();
|
||||||
responder.onNext(reply);
|
responder.onNext(reply);
|
||||||
responder.onCompleted();
|
responder.onCompleted();
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ service ShellServer {
|
||||||
}
|
}
|
||||||
|
|
||||||
message StatusMessage {
|
message StatusMessage {
|
||||||
bool IsRunning = 1;
|
int32 ProcessStatus = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ReturnMessage {
|
message ReturnMessage {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue