catch grpc runtime exceptions and throw as expected ioexceptions

This commit is contained in:
Blake J. Harnden 2019-05-28 12:10:24 -07:00
parent 7da09a0dd9
commit 09a681dab6

View file

@ -7,6 +7,7 @@ import com.core.data.*;
import com.google.protobuf.ByteString; import com.google.protobuf.ByteString;
import io.grpc.ManagedChannel; import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder; import io.grpc.ManagedChannelBuilder;
import io.grpc.StatusRuntimeException;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@ -189,23 +190,32 @@ public class CoreGrpcClient implements ICoreClient {
@Override @Override
public SessionOverview createSession() throws IOException { public SessionOverview createSession() throws IOException {
CoreProto.CreateSessionRequest request = CoreProto.CreateSessionRequest.newBuilder().build(); CoreProto.CreateSessionRequest request = CoreProto.CreateSessionRequest.newBuilder().build();
try {
CoreProto.CreateSessionResponse response = blockingStub.createSession(request); CoreProto.CreateSessionResponse response = blockingStub.createSession(request);
SessionOverview overview = new SessionOverview(); SessionOverview overview = new SessionOverview();
overview.setId(response.getId()); overview.setId(response.getId());
overview.setState(response.getStateValue()); overview.setState(response.getStateValue());
overview.setNodes(0); overview.setNodes(0);
return overview; return overview;
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
public boolean deleteSession(Integer sessionId) throws IOException { public boolean deleteSession(Integer sessionId) throws IOException {
CoreProto.DeleteSessionRequest request = CoreProto.DeleteSessionRequest.newBuilder().setId(sessionId).build(); CoreProto.DeleteSessionRequest request = CoreProto.DeleteSessionRequest.newBuilder().setId(sessionId).build();
try {
return blockingStub.deleteSession(request).getResult(); return blockingStub.deleteSession(request).getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
public List<SessionOverview> getSessions() throws IOException { public List<SessionOverview> getSessions() throws IOException {
CoreProto.GetSessionsRequest request = CoreProto.GetSessionsRequest.newBuilder().build(); CoreProto.GetSessionsRequest request = CoreProto.GetSessionsRequest.newBuilder().build();
try {
CoreProto.GetSessionsResponse response = blockingStub.getSessions(request); CoreProto.GetSessionsResponse response = blockingStub.getSessions(request);
List<SessionOverview> sessions = new ArrayList<>(); List<SessionOverview> sessions = new ArrayList<>();
for (CoreProto.SessionSummary summary : response.getSessionsList()) { for (CoreProto.SessionSummary summary : response.getSessionsList()) {
@ -216,12 +226,16 @@ public class CoreGrpcClient implements ICoreClient {
sessions.add(overview); sessions.add(overview);
} }
return sessions; return sessions;
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
public Session getSession(Integer sessionId) throws IOException { public Session getSession(Integer sessionId) throws IOException {
logger.info("getting session: {}", sessionId); logger.info("getting session: {}", sessionId);
CoreProto.GetSessionRequest request = CoreProto.GetSessionRequest.newBuilder().setId(sessionId).build(); CoreProto.GetSessionRequest request = CoreProto.GetSessionRequest.newBuilder().setId(sessionId).build();
try {
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()) {
@ -288,6 +302,9 @@ public class CoreGrpcClient implements ICoreClient {
} }
session.setState(response.getSession().getStateValue()); session.setState(response.getSession().getStateValue());
return session; return session;
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -340,13 +357,18 @@ public class CoreGrpcClient implements ICoreClient {
.setId(sessionId) .setId(sessionId)
.setStateValue(state.getValue()) .setStateValue(state.getValue())
.build(); .build();
try {
CoreProto.SetSessionStateResponse response = blockingStub.setSessionState(request); CoreProto.SetSessionStateResponse response = blockingStub.setSessionState(request);
return response.getResult(); return response.getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
public Map<String, List<String>> getServices() throws IOException { public Map<String, List<String>> getServices() throws IOException {
CoreProto.GetServicesRequest request = CoreProto.GetServicesRequest.newBuilder().build(); CoreProto.GetServicesRequest request = CoreProto.GetServicesRequest.newBuilder().build();
try {
CoreProto.GetServicesResponse response = blockingStub.getServices(request); CoreProto.GetServicesResponse response = blockingStub.getServices(request);
Map<String, List<String>> servicesMap = new HashMap<>(); Map<String, List<String>> servicesMap = new HashMap<>();
for (CoreProto.Service protoService : response.getServicesList()) { for (CoreProto.Service protoService : response.getServicesList()) {
@ -354,17 +376,24 @@ public class CoreGrpcClient implements ICoreClient {
services.add(protoService.getName()); services.add(protoService.getName());
} }
return servicesMap; return servicesMap;
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
public Map<String, List<String>> getDefaultServices() throws IOException { public Map<String, List<String>> getDefaultServices() throws IOException {
CoreProto.GetServiceDefaultsRequest request = CoreProto.GetServiceDefaultsRequest.newBuilder().build(); CoreProto.GetServiceDefaultsRequest request = CoreProto.GetServiceDefaultsRequest.newBuilder().build();
try {
CoreProto.GetServiceDefaultsResponse response = blockingStub.getServiceDefaults(request); CoreProto.GetServiceDefaultsResponse response = blockingStub.getServiceDefaults(request);
Map<String, List<String>> servicesMap = new HashMap<>(); Map<String, List<String>> servicesMap = new HashMap<>();
for (CoreProto.ServiceDefaults serviceDefaults : response.getDefaultsList()) { for (CoreProto.ServiceDefaults serviceDefaults : response.getDefaultsList()) {
servicesMap.put(serviceDefaults.getNodeType(), serviceDefaults.getServicesList()); servicesMap.put(serviceDefaults.getNodeType(), serviceDefaults.getServicesList());
} }
return servicesMap; return servicesMap;
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -379,18 +408,22 @@ public class CoreGrpcClient implements ICoreClient {
.build(); .build();
allDefaults.add(serviceDefaults); allDefaults.add(serviceDefaults);
} }
CoreProto.SetServiceDefaultsRequest request = CoreProto.SetServiceDefaultsRequest.newBuilder() CoreProto.SetServiceDefaultsRequest request = CoreProto.SetServiceDefaultsRequest.newBuilder()
.setSession(sessionId) .setSession(sessionId)
.addAllDefaults(allDefaults) .addAllDefaults(allDefaults)
.build(); .build();
try {
CoreProto.SetServiceDefaultsResponse response = blockingStub.setServiceDefaults(request); CoreProto.SetServiceDefaultsResponse response = blockingStub.setServiceDefaults(request);
return response.getResult(); return response.getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
public CoreService getService(CoreNode node, String serviceName) throws IOException { public CoreService getService(CoreNode node, String serviceName) throws IOException {
CoreProto.GetNodeServiceRequest request = CoreProto.GetNodeServiceRequest.newBuilder().build(); CoreProto.GetNodeServiceRequest request = CoreProto.GetNodeServiceRequest.newBuilder().build();
try {
CoreProto.GetNodeServiceResponse response = blockingStub.getNodeService(request); CoreProto.GetNodeServiceResponse response = blockingStub.getNodeService(request);
CoreProto.NodeServiceData nodeServiceData = response.getService(); CoreProto.NodeServiceData nodeServiceData = response.getService();
CoreService service = new CoreService(); CoreService service = new CoreService();
@ -405,6 +438,9 @@ public class CoreGrpcClient implements ICoreClient {
service.setValidationMode(nodeServiceData.getValidationMode().name()); service.setValidationMode(nodeServiceData.getValidationMode().name());
service.setValidationTimer(Integer.toString(nodeServiceData.getValidationTimer())); service.setValidationTimer(Integer.toString(nodeServiceData.getValidationTimer()));
return service; return service;
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -417,7 +453,11 @@ public class CoreGrpcClient implements ICoreClient {
request.getShutdownList().addAll(service.getShutdown()); request.getShutdownList().addAll(service.getShutdown());
request.getValidateList().addAll(service.getValidate()); request.getValidateList().addAll(service.getValidate());
request.getStartupList().addAll(service.getStartup()); request.getStartupList().addAll(service.getStartup());
try {
return blockingStub.setNodeService(request).getResult(); return blockingStub.setNodeService(request).getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -427,8 +467,12 @@ public class CoreGrpcClient implements ICoreClient {
.setId(node.getId()) .setId(node.getId())
.setService(serviceName) .setService(serviceName)
.build(); .build();
try {
CoreProto.GetNodeServiceFileResponse response = blockingStub.getNodeServiceFile(request); CoreProto.GetNodeServiceFileResponse response = blockingStub.getNodeServiceFile(request);
return response.getData().toStringUtf8(); return response.getData().toStringUtf8();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -439,7 +483,11 @@ public class CoreGrpcClient implements ICoreClient {
.setService(serviceName) .setService(serviceName)
.setAction(CoreProto.ServiceAction.SERVICE_START) .setAction(CoreProto.ServiceAction.SERVICE_START)
.build(); .build();
try {
return blockingStub.serviceAction(request).getResult(); return blockingStub.serviceAction(request).getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -450,7 +498,11 @@ public class CoreGrpcClient implements ICoreClient {
.setService(serviceName) .setService(serviceName)
.setAction(CoreProto.ServiceAction.SERVICE_STOP) .setAction(CoreProto.ServiceAction.SERVICE_STOP)
.build(); .build();
try {
return blockingStub.serviceAction(request).getResult(); return blockingStub.serviceAction(request).getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -461,7 +513,11 @@ public class CoreGrpcClient implements ICoreClient {
.setService(serviceName) .setService(serviceName)
.setAction(CoreProto.ServiceAction.SERVICE_RESTART) .setAction(CoreProto.ServiceAction.SERVICE_RESTART)
.build(); .build();
try {
return blockingStub.serviceAction(request).getResult(); return blockingStub.serviceAction(request).getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -472,7 +528,11 @@ public class CoreGrpcClient implements ICoreClient {
.setService(serviceName) .setService(serviceName)
.setAction(CoreProto.ServiceAction.SERVICE_VALIDATE) .setAction(CoreProto.ServiceAction.SERVICE_VALIDATE)
.build(); .build();
try {
return blockingStub.serviceAction(request).getResult(); return blockingStub.serviceAction(request).getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -484,8 +544,12 @@ public class CoreGrpcClient implements ICoreClient {
.setFile(serviceFile.getName()) .setFile(serviceFile.getName())
.setData(ByteString.copyFromUtf8(serviceFile.getData())) .setData(ByteString.copyFromUtf8(serviceFile.getData()))
.build(); .build();
try {
CoreProto.SetNodeServiceFileResponse response = blockingStub.setNodeServiceFile(request); CoreProto.SetNodeServiceFileResponse response = blockingStub.setNodeServiceFile(request);
return response.getResult(); return response.getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -493,8 +557,12 @@ public class CoreGrpcClient implements ICoreClient {
CoreProto.GetEmaneConfigRequest request = CoreProto.GetEmaneConfigRequest.newBuilder() CoreProto.GetEmaneConfigRequest request = CoreProto.GetEmaneConfigRequest.newBuilder()
.setSession(sessionId) .setSession(sessionId)
.build(); .build();
try {
CoreProto.GetEmaneConfigResponse response = blockingStub.getEmaneConfig(request); CoreProto.GetEmaneConfigResponse response = blockingStub.getEmaneConfig(request);
return protoToConfigGroups(response.getGroupsList()); return protoToConfigGroups(response.getGroupsList());
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -502,8 +570,12 @@ public class CoreGrpcClient implements ICoreClient {
CoreProto.GetEmaneModelsRequest request = CoreProto.GetEmaneModelsRequest.newBuilder() CoreProto.GetEmaneModelsRequest request = CoreProto.GetEmaneModelsRequest.newBuilder()
.setSession(sessionId) .setSession(sessionId)
.build(); .build();
try {
CoreProto.GetEmaneModelsResponse response = blockingStub.getEmaneModels(request); CoreProto.GetEmaneModelsResponse response = blockingStub.getEmaneModels(request);
return new ArrayList<>(response.getModelsList()); return new ArrayList<>(response.getModelsList());
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -513,8 +585,12 @@ public class CoreGrpcClient implements ICoreClient {
.setSession(sessionId) .setSession(sessionId)
.putAllConfig(config) .putAllConfig(config)
.build(); .build();
try {
CoreProto.SetEmaneConfigResponse response = blockingStub.setEmaneConfig(request); CoreProto.SetEmaneConfigResponse response = blockingStub.setEmaneConfig(request);
return response.getResult(); return response.getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -524,8 +600,12 @@ public class CoreGrpcClient implements ICoreClient {
.setId(id) .setId(id)
.setModel(model) .setModel(model)
.build(); .build();
try {
CoreProto.GetEmaneModelConfigResponse response = blockingStub.getEmaneModelConfig(request); CoreProto.GetEmaneModelConfigResponse response = blockingStub.getEmaneModelConfig(request);
return protoToConfigGroups(response.getGroupsList()); return protoToConfigGroups(response.getGroupsList());
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -537,8 +617,12 @@ public class CoreGrpcClient implements ICoreClient {
.setModel(model) .setModel(model)
.putAllConfig(config) .putAllConfig(config)
.build(); .build();
try {
CoreProto.SetEmaneModelConfigResponse response = blockingStub.setEmaneModelConfig(request); CoreProto.SetEmaneModelConfigResponse response = blockingStub.setEmaneModelConfig(request);
return response.getResult(); return response.getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -551,10 +635,14 @@ public class CoreGrpcClient implements ICoreClient {
CoreProto.SaveXmlRequest request = CoreProto.SaveXmlRequest.newBuilder() CoreProto.SaveXmlRequest request = CoreProto.SaveXmlRequest.newBuilder()
.setSession(sessionId) .setSession(sessionId)
.build(); .build();
try {
CoreProto.SaveXmlResponse response = blockingStub.saveXml(request); CoreProto.SaveXmlResponse response = blockingStub.saveXml(request);
try (PrintWriter writer = new PrintWriter(file)) { try (PrintWriter writer = new PrintWriter(file)) {
writer.print(response.getData().toStringUtf8()); writer.print(response.getData().toStringUtf8());
} }
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -563,10 +651,14 @@ public class CoreGrpcClient implements ICoreClient {
CoreProto.OpenXmlRequest request = CoreProto.OpenXmlRequest.newBuilder() CoreProto.OpenXmlRequest request = CoreProto.OpenXmlRequest.newBuilder()
.setData(data) .setData(data)
.build(); .build();
try {
CoreProto.OpenXmlResponse response = blockingStub.openXml(request); CoreProto.OpenXmlResponse response = blockingStub.openXml(request);
SessionOverview sessionOverview = new SessionOverview(); SessionOverview sessionOverview = new SessionOverview();
sessionOverview.setId(response.getSession()); sessionOverview.setId(response.getSession());
return sessionOverview; return sessionOverview;
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -574,8 +666,12 @@ public class CoreGrpcClient implements ICoreClient {
CoreProto.GetSessionOptionsRequest request = CoreProto.GetSessionOptionsRequest.newBuilder() CoreProto.GetSessionOptionsRequest request = CoreProto.GetSessionOptionsRequest.newBuilder()
.setId(sessionId) .setId(sessionId)
.build(); .build();
try {
CoreProto.GetSessionOptionsResponse response = blockingStub.getSessionOptions(request); CoreProto.GetSessionOptionsResponse response = blockingStub.getSessionOptions(request);
return protoToConfigGroups(response.getGroupsList()); return protoToConfigGroups(response.getGroupsList());
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -585,8 +681,12 @@ public class CoreGrpcClient implements ICoreClient {
.setId(sessionId) .setId(sessionId)
.putAllConfig(config) .putAllConfig(config)
.build(); .build();
try {
CoreProto.SetSessionOptionsResponse response = blockingStub.setSessionOptions(request); CoreProto.SetSessionOptionsResponse response = blockingStub.setSessionOptions(request);
return response.getResult(); return response.getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -596,8 +696,12 @@ public class CoreGrpcClient implements ICoreClient {
.setSession(sessionId) .setSession(sessionId)
.setNode(protoNode) .setNode(protoNode)
.build(); .build();
try {
blockingStub.addNode(request); blockingStub.addNode(request);
return true; return true;
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -617,16 +721,24 @@ public class CoreGrpcClient implements ICoreClient {
.setId(node.getId()) .setId(node.getId())
.setPosition(position) .setPosition(position)
.build(); .build();
try {
CoreProto.EditNodeResponse response = blockingStub.editNode(request); CoreProto.EditNodeResponse response = blockingStub.editNode(request);
return response.getResult(); return response.getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
public boolean deleteNode(CoreNode node) throws IOException { public boolean deleteNode(CoreNode node) throws IOException {
CoreProto.DeleteNodeRequest request = CoreProto.DeleteNodeRequest.newBuilder() CoreProto.DeleteNodeRequest request = CoreProto.DeleteNodeRequest.newBuilder()
.build(); .build();
try {
CoreProto.DeleteNodeResponse response = blockingStub.deleteNode(request); CoreProto.DeleteNodeResponse response = blockingStub.deleteNode(request);
return response.getResult(); return response.getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -653,8 +765,12 @@ public class CoreGrpcClient implements ICoreClient {
.setSession(sessionId) .setSession(sessionId)
.setLink(protoLink) .setLink(protoLink)
.build(); .build();
try {
CoreProto.AddLinkResponse response = blockingStub.addLink(request); CoreProto.AddLinkResponse response = blockingStub.addLink(request);
return response.getResult(); return response.getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -678,8 +794,12 @@ public class CoreGrpcClient implements ICoreClient {
builder.setOptions(protoOptions); builder.setOptions(protoOptions);
} }
CoreProto.EditLinkRequest request = builder.build(); CoreProto.EditLinkRequest request = builder.build();
try {
CoreProto.EditLinkResponse response = blockingStub.editLink(request); CoreProto.EditLinkResponse response = blockingStub.editLink(request);
return response.getResult(); return response.getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -692,13 +812,18 @@ public class CoreGrpcClient implements ICoreClient {
CoreProto.AddHookRequest request = CoreProto.AddHookRequest.newBuilder() CoreProto.AddHookRequest request = CoreProto.AddHookRequest.newBuilder()
.setHook(hookProto) .setHook(hookProto)
.build(); .build();
try {
CoreProto.AddHookResponse response = blockingStub.addHook(request); CoreProto.AddHookResponse response = blockingStub.addHook(request);
return response.getResult(); return response.getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
public List<Hook> getHooks() throws IOException { public List<Hook> getHooks() throws IOException {
CoreProto.GetHooksRequest request = CoreProto.GetHooksRequest.newBuilder().setSession(sessionId).build(); CoreProto.GetHooksRequest request = CoreProto.GetHooksRequest.newBuilder().setSession(sessionId).build();
try {
CoreProto.GetHooksResponse response = blockingStub.getHooks(request); CoreProto.GetHooksResponse response = blockingStub.getHooks(request);
List<Hook> hooks = new ArrayList<>(); List<Hook> hooks = new ArrayList<>();
for (CoreProto.Hook protoHook : response.getHooksList()) { for (CoreProto.Hook protoHook : response.getHooksList()) {
@ -709,6 +834,9 @@ public class CoreGrpcClient implements ICoreClient {
hooks.add(hook); hooks.add(hook);
} }
return hooks; return hooks;
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -717,6 +845,7 @@ public class CoreGrpcClient implements ICoreClient {
.setSession(sessionId) .setSession(sessionId)
.setId(node.getId()) .setId(node.getId())
.build(); .build();
try {
CoreProto.GetWlanConfigResponse response = blockingStub.getWlanConfig(request); CoreProto.GetWlanConfigResponse response = blockingStub.getWlanConfig(request);
Map<String, String> protoConfig = new HashMap<>(); Map<String, String> protoConfig = new HashMap<>();
for (CoreProto.ConfigGroup group : response.getGroupsList()) { for (CoreProto.ConfigGroup group : response.getGroupsList()) {
@ -731,6 +860,9 @@ public class CoreGrpcClient implements ICoreClient {
config.setJitter(protoConfig.get("jitter")); config.setJitter(protoConfig.get("jitter"));
config.setRange(protoConfig.get("range")); config.setRange(protoConfig.get("range"));
return config; return config;
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -746,8 +878,12 @@ public class CoreGrpcClient implements ICoreClient {
.setId(node.getId()) .setId(node.getId())
.putAllConfig(protoConfig) .putAllConfig(protoConfig)
.build(); .build();
try {
CoreProto.SetWlanConfigResponse response = blockingStub.setWlanConfig(request); CoreProto.SetWlanConfigResponse response = blockingStub.setWlanConfig(request);
return response.getResult(); return response.getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -760,6 +896,7 @@ public class CoreGrpcClient implements ICoreClient {
public Map<Integer, MobilityConfig> getMobilityConfigs() throws IOException { public Map<Integer, MobilityConfig> getMobilityConfigs() throws IOException {
CoreProto.GetMobilityConfigsRequest request = CoreProto.GetMobilityConfigsRequest.newBuilder() CoreProto.GetMobilityConfigsRequest request = CoreProto.GetMobilityConfigsRequest.newBuilder()
.setSession(sessionId).build(); .setSession(sessionId).build();
try {
CoreProto.GetMobilityConfigsResponse response = blockingStub.getMobilityConfigs(request); CoreProto.GetMobilityConfigsResponse response = blockingStub.getMobilityConfigs(request);
Map<Integer, MobilityConfig> mobilityConfigs = new HashMap<>(); Map<Integer, MobilityConfig> mobilityConfigs = new HashMap<>();
@ -784,6 +921,9 @@ public class CoreGrpcClient implements ICoreClient {
mobilityConfigs.put(nodeId, mobilityConfig); mobilityConfigs.put(nodeId, mobilityConfig);
} }
return mobilityConfigs; return mobilityConfigs;
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -804,8 +944,12 @@ public class CoreGrpcClient implements ICoreClient {
.setId(node.getId()) .setId(node.getId())
.putAllConfig(protoConfig) .putAllConfig(protoConfig)
.build(); .build();
try {
CoreProto.SetMobilityConfigResponse response = blockingStub.setMobilityConfig(request); CoreProto.SetMobilityConfigResponse response = blockingStub.setMobilityConfig(request);
return response.getResult(); return response.getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -814,6 +958,7 @@ public class CoreGrpcClient implements ICoreClient {
.setSession(sessionId) .setSession(sessionId)
.setId(node.getId()) .setId(node.getId())
.build(); .build();
try {
CoreProto.GetMobilityConfigResponse response = blockingStub.getMobilityConfig(request); CoreProto.GetMobilityConfigResponse response = blockingStub.getMobilityConfig(request);
Map<String, String> protoConfig = new HashMap<>(); Map<String, String> protoConfig = new HashMap<>();
for (CoreProto.ConfigGroup group : response.getGroupsList()) { for (CoreProto.ConfigGroup group : response.getGroupsList()) {
@ -831,6 +976,9 @@ public class CoreGrpcClient implements ICoreClient {
config.setStopScript(protoConfig.get("script_stop")); config.setStopScript(protoConfig.get("script_stop"));
config.setMap(protoConfig.get("map")); config.setMap(protoConfig.get("map"));
return config; return config;
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -840,8 +988,12 @@ public class CoreGrpcClient implements ICoreClient {
.setId(node.getId()) .setId(node.getId())
.setAction(CoreProto.MobilityAction.valueOf(action)) .setAction(CoreProto.MobilityAction.valueOf(action))
.build(); .build();
try {
CoreProto.MobilityActionResponse response = blockingStub.mobilityAction(request); CoreProto.MobilityActionResponse response = blockingStub.mobilityAction(request);
return response.getResult(); return response.getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -849,6 +1001,7 @@ public class CoreGrpcClient implements ICoreClient {
CoreProto.GetSessionLocationRequest request = CoreProto.GetSessionLocationRequest.newBuilder() CoreProto.GetSessionLocationRequest request = CoreProto.GetSessionLocationRequest.newBuilder()
.setId(sessionId) .setId(sessionId)
.build(); .build();
try {
CoreProto.GetSessionLocationResponse response = blockingStub.getSessionLocation(request); CoreProto.GetSessionLocationResponse response = blockingStub.getSessionLocation(request);
LocationConfig config = new LocationConfig(); LocationConfig config = new LocationConfig();
config.setScale((double) response.getScale()); config.setScale((double) response.getScale());
@ -859,6 +1012,9 @@ public class CoreGrpcClient implements ICoreClient {
config.getLocation().setLongitude((double) response.getPosition().getLon()); config.getLocation().setLongitude((double) response.getPosition().getLon());
config.getLocation().setAltitude((double) response.getPosition().getAlt()); config.getLocation().setAltitude((double) response.getPosition().getAlt());
return config; return config;
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
@Override @Override
@ -887,7 +1043,11 @@ public class CoreGrpcClient implements ICoreClient {
if (config.getLocation().getAltitude() != null) { if (config.getLocation().getAltitude() != null) {
positionBuilder.setAlt(config.getLocation().getAltitude().floatValue()); positionBuilder.setAlt(config.getLocation().getAltitude().floatValue());
} }
try {
CoreProto.SetSessionLocationResponse response = blockingStub.setSessionLocation(builder.build()); CoreProto.SetSessionLocationResponse response = blockingStub.setSessionLocation(builder.build());
return response.getResult(); return response.getResult();
} catch (StatusRuntimeException ex) {
throw new IOException(ex);
}
} }
} }