further updates to implement more grpc calls

This commit is contained in:
bharnden 2019-05-25 21:06:50 -07:00
parent a593289f1b
commit 295fdddaf9

View file

@ -11,7 +11,9 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter;
import java.util.*; import java.util.*;
public class CoreGrpcClient implements ICoreClient { public class CoreGrpcClient implements ICoreClient {
@ -189,10 +191,16 @@ public class CoreGrpcClient implements ICoreClient {
@Override @Override
public Session getSession(Integer sessionId) throws IOException { public Session getSession(Integer sessionId) throws IOException {
logger.info("getting session: {}", sessionId);
CoreProto.GetSessionRequest request = CoreProto.GetSessionRequest.newBuilder().setId(sessionId).build(); CoreProto.GetSessionRequest request = CoreProto.GetSessionRequest.newBuilder().setId(sessionId).build();
CoreProto.GetSessionResponse response = blockingStub.getSession(request); CoreProto.GetSessionResponse response = blockingStub.getSession(request);
Session session = new Session(); Session session = new Session();
for (CoreProto.Node protoNode : response.getSession().getNodesList()) { for (CoreProto.Node protoNode : response.getSession().getNodesList()) {
if (CoreProto.NodeType.NODE_PEER_TO_PEER == protoNode.getType()) {
continue;
}
logger.info("adding node: {}", protoNode);
CoreNode node = new CoreNode(protoNode.getId()); CoreNode node = new CoreNode(protoNode.getId());
node.setName(protoNode.getName()); node.setName(protoNode.getName());
node.setEmane(protoNode.getEmane()); node.setEmane(protoNode.getEmane());
@ -201,13 +209,14 @@ public class CoreGrpcClient implements ICoreClient {
node.setServices(new HashSet<>(protoNode.getServicesList())); node.setServices(new HashSet<>(protoNode.getServicesList()));
node.getPosition().setX((double) protoNode.getPosition().getX()); node.getPosition().setX((double) protoNode.getPosition().getX());
node.getPosition().setY((double) protoNode.getPosition().getY()); node.getPosition().setY((double) protoNode.getPosition().getY());
node.getPosition().setZ((double) protoNode.getPosition().getZ()); node.setType(protoNode.getTypeValue());
node.setNodeType(NodeType.get(protoNode.getTypeValue())); session.getNodes().add(node);
} }
for (CoreProto.Link linkProto : response.getSession().getLinksList()) { for (CoreProto.Link linkProto : response.getSession().getLinksList()) {
logger.info("adding link: {} - {}", linkProto.getNodeOne(), linkProto.getNodeTwo());
CoreLink link = new CoreLink(); CoreLink link = new CoreLink();
link.setNodeOne(linkProto.getNodeOne()); link.setNodeOne(linkProto.getNodeOne());
link.setNodeTwo(linkProto.getNodeOne()); link.setNodeTwo(linkProto.getNodeTwo());
CoreProto.Interface interfaceOneProto = linkProto.getInterfaceOne(); CoreProto.Interface interfaceOneProto = linkProto.getInterfaceOne();
CoreInterface interfaceOne = new CoreInterface(); CoreInterface interfaceOne = new CoreInterface();
interfaceOne.setId(interfaceOneProto.getId()); interfaceOne.setId(interfaceOneProto.getId());
@ -238,12 +247,15 @@ public class CoreGrpcClient implements ICoreClient {
options.setJitter((double) protoOptions.getJitter()); options.setJitter((double) protoOptions.getJitter());
options.setPer((double) protoOptions.getPer()); options.setPer((double) protoOptions.getPer());
options.setBurst((double) protoOptions.getBurst()); options.setBurst((double) protoOptions.getBurst());
options.setKey(Integer.parseInt(protoOptions.getKey())); if (!protoOptions.getKey().isEmpty()) {
options.setKey(Integer.parseInt(protoOptions.getKey()));
}
options.setMburst((double) protoOptions.getMburst()); options.setMburst((double) protoOptions.getMburst());
options.setMer((double) protoOptions.getMer()); options.setMer((double) protoOptions.getMer());
options.setOpaque(protoOptions.getOpaque()); options.setOpaque(protoOptions.getOpaque());
options.setUnidirectional(protoOptions.getUnidirectional() ? 1 : 0); options.setUnidirectional(protoOptions.getUnidirectional() ? 1 : 0);
link.setOptions(options); link.setOptions(options);
session.getLinks().add(link);
} }
session.setState(response.getSession().getStateValue()); session.setState(response.getSession().getStateValue());
return session; return session;
@ -454,7 +466,11 @@ public class CoreGrpcClient implements ICoreClient {
@Override @Override
public List<String> getEmaneModels() throws IOException { public List<String> getEmaneModels() throws IOException {
return null; CoreProto.GetEmaneModelsRequest request = CoreProto.GetEmaneModelsRequest.newBuilder()
.setSession(sessionId)
.build();
CoreProto.GetEmaneModelsResponse response = blockingStub.getEmaneModels(request);
return response.getModelsList();
} }
@Override @Override
@ -479,12 +495,25 @@ public class CoreGrpcClient implements ICoreClient {
@Override @Override
public void saveSession(File file) throws IOException { public void saveSession(File file) throws IOException {
CoreProto.SaveXmlRequest request = CoreProto.SaveXmlRequest.newBuilder()
.setSession(sessionId)
.build();
CoreProto.SaveXmlResponse response = blockingStub.saveXml(request);
try (PrintWriter writer = new PrintWriter(file)) {
writer.print(response.getData().toStringUtf8());
}
} }
@Override @Override
public SessionOverview openSession(File file) throws IOException { public SessionOverview openSession(File file) throws IOException {
return null; ByteString data = ByteString.readFrom(new FileInputStream(file));
CoreProto.OpenXmlRequest request = CoreProto.OpenXmlRequest.newBuilder()
.setData(data)
.build();
CoreProto.OpenXmlResponse response = blockingStub.openXml(request);
SessionOverview sessionOverview = new SessionOverview();
sessionOverview.setId(response.getSession());
return sessionOverview;
} }
@Override @Override