use of org.onosproject.protocol.rest.RestSBController in project onos by opennetworkinglab.
the class DellRestPortDiscovery method getPorts.
@Deprecated
public List<PortDescription> getPorts() {
List<PortDescription> ports = Lists.newArrayList();
DriverHandler handler = handler();
RestSBController controller = checkNotNull(handler.get(RestSBController.class));
DeviceId deviceId = handler.data().deviceId();
String remotePortName = "";
// read configuration from REST API
HierarchicalConfiguration config = XmlConfigParser.loadXml(controller.get(deviceId, INTERFACES_REQUEST, MediaType.valueOf("*/*")));
// get the interfaces part
List<HierarchicalConfiguration> portsConfig = parseDellPorts(config);
portsConfig.stream().forEach(sub -> {
String portName = sub.getString(NAME);
DefaultAnnotations.Builder annotations = DefaultAnnotations.builder().set(AnnotationKeys.PORT_NAME, portName);
// TODO: obtain proper port speed and type
long portSpeed = 10_000;
Port.Type portType = Port.Type.COPPER;
PortNumber portNumber = PortNumber.fromString(remotePortName.replaceAll(TENGINTERFACENAME, ""));
ports.add(DefaultPortDescription.builder().withPortNumber(portNumber).isEnabled(true).type(portType).portSpeed(portSpeed).annotations(annotations.build()).build());
});
return ImmutableList.copyOf(ports);
}
use of org.onosproject.protocol.rest.RestSBController in project onos by opennetworkinglab.
the class AristaUtils method retrieveCommandResult.
public static Optional<JsonNode> retrieveCommandResult(DriverHandler handler, List<String> cmds) {
RestSBController controller = checkNotNull(handler.get(RestSBController.class));
DeviceId deviceId = checkNotNull(handler.data()).deviceId();
String request = generate(cmds);
log.debug("request :{}", request);
String response = controller.post(deviceId, API_ENDPOINT, new ByteArrayInputStream(request.getBytes()), MediaType.APPLICATION_JSON_TYPE, String.class);
log.debug("response :{}", response);
try {
ObjectMapper mapper = new ObjectMapper();
ObjectNode node = (ObjectNode) mapper.readTree(response);
if (node.has(ERROR)) {
log.error("Error {}", node.get(ERROR));
return Optional.empty();
} else {
return Optional.ofNullable(node.get(RESULT));
}
} catch (IOException e) {
log.warn("IO exception occurred because of ", e);
}
return Optional.empty();
}
use of org.onosproject.protocol.rest.RestSBController in project onos by opennetworkinglab.
the class AristaUtils method getWithChecking.
public static boolean getWithChecking(DriverHandler handler, List<String> commands) {
RestSBController controller = checkNotNull(handler.get(RestSBController.class));
DeviceId deviceId = checkNotNull(handler.data()).deviceId();
String response = generate(commands);
log.debug("request :{}", response);
try {
ObjectMapper om = new ObjectMapper();
JsonNode json = om.readTree(response);
JsonNode errNode = json.findPath(ERROR);
if (errNode.isMissingNode()) {
return true;
}
log.error("Error get with checking {}", errNode.asText(""));
for (String str : commands) {
log.error("Command Failed due to Cmd : {}", str);
}
return false;
} catch (IOException e) {
log.error("IO exception occured because of ", e);
return false;
}
}
use of org.onosproject.protocol.rest.RestSBController in project onos by opennetworkinglab.
the class CiscoNxosDeviceDescription method discoverPortDetails.
@Override
public List<PortDescription> discoverPortDetails() {
DriverHandler handler = handler();
RestSBController controller = checkNotNull(handler.get(RestSBController.class));
DeviceId deviceId = handler.data().deviceId();
ArrayList<String> cmd = new ArrayList<>();
cmd.add(SHOW_INTERFACES_CMD);
String req = NxApiRequest.generate(cmd, NxApiRequest.CommandType.CLI);
String response = NxApiRequest.post(controller, deviceId, req);
// parse interface information from response
List<PortDescription> ports = Lists.newArrayList();
try {
ObjectMapper om = new ObjectMapper();
JsonNode json = om.readTree(response);
JsonNode interfaces = json.findValue(ROW_INTERFACE);
if (interfaces != null) {
interfaces.forEach(itf -> {
String ifName = itf.get(INTERFACE).asText();
if (ifName.startsWith(ETH)) {
String ifNum = ifName.substring(ETHERNET.length()).replace(SLASH, ZERO);
boolean state = itf.get(STATE).asText().equals(UP);
// in Mbps
long portSpeed = itf.get(ETH_BW).asLong() / ONE_THOUSAND;
DefaultAnnotations.Builder annotations = DefaultAnnotations.builder().set(AnnotationKeys.PORT_NAME, ifName);
PortDescription desc = DefaultPortDescription.builder().withPortNumber(PortNumber.portNumber(ifNum)).isEnabled(state).type(Port.Type.FIBER).portSpeed(portSpeed).annotations(annotations.build()).build();
ports.add(desc);
}
});
}
} catch (IOException e) {
log.error("Failed to to retrieve Interfaces {}", e);
}
return ports;
}
use of org.onosproject.protocol.rest.RestSBController in project onos by opennetworkinglab.
the class CiscoNxosPortStatistics method discoverPortStatistics.
@Override
public Collection<PortStatistics> discoverPortStatistics() {
DriverHandler handler = handler();
RestSBController controller = checkNotNull(handler.get(RestSBController.class));
DeviceId deviceId = handler.data().deviceId();
DeviceService deviceService = this.handler().get(DeviceService.class);
List<Port> ports = deviceService.getPorts(deviceId);
Collection<PortStatistics> portStatistics = Lists.newArrayList();
ports.stream().filter(Port::isEnabled).forEach(port -> portStatistics.add(discoverSpecifiedPortStatistics(port, controller, deviceId)));
return ImmutableList.copyOf(portStatistics);
}
Aggregations