use of org.onosproject.protocol.rest.RestSBController in project onos by opennetworkinglab.
the class LinkDiscoveryCiscoImpl method retrieveResponse.
private String retrieveResponse(String command) {
DriverHandler handler = handler();
RestSBController controller = checkNotNull(handler.get(RestSBController.class));
DeviceId deviceId = handler.data().deviceId();
String req = NxApiRequest.generate(Lists.newArrayList(command), NxApiRequest.CommandType.CLI);
log.debug("request :" + req);
InputStream stream = new ByteArrayInputStream(req.getBytes(StandardCharsets.UTF_8));
return controller.post(deviceId, "/ins", stream, MediaType.valueOf("application/json-rpc"), String.class);
}
use of org.onosproject.protocol.rest.RestSBController in project onos by opennetworkinglab.
the class NxApiRequest method postClis.
/**
* Sends NX-API request message to the device.
* @param handler device's driver handler
* @param cmds NX-API list of command strings
* @return the response string
*/
public static String postClis(DriverHandler handler, List<String> cmds) {
RestSBController controller = checkNotNull(handler.get(RestSBController.class));
DeviceId deviceId = handler.data().deviceId();
String request = generate(cmds, CommandType.CLI);
InputStream stream = new ByteArrayInputStream(request.getBytes(StandardCharsets.UTF_8));
return controller.post(deviceId, API_URI, stream, MediaType.valueOf(APP_JSON_RPC), String.class);
}
use of org.onosproject.protocol.rest.RestSBController in project onos by opennetworkinglab.
the class NxApiRequest method post.
/**
* Sends NX-API request message to the device.
* @param handler device's driver handler
* @param command NX-API command string
* @param type response message format
* @return the response string
*/
public static String post(DriverHandler handler, String command, CommandType type) {
RestSBController controller = checkNotNull(handler.get(RestSBController.class));
DeviceId deviceId = handler.data().deviceId();
String request = generate(command, type);
return post(controller, deviceId, request);
}
use of org.onosproject.protocol.rest.RestSBController in project onos by opennetworkinglab.
the class CienaWaveserverDeviceDescription method getPorts.
private List<PortDescription> getPorts() {
/*
* Relationship between ptp-index and port number shown in Ciena Wave Server
* CLI:
* ptp-index = 4 * port_number (without decimal) + decimal
* e.g
* if port_number is 5 then ptp-index = 5 * 4 + 0 = 20
* if port_number is 5.1 then ptp-index = 5 * 4 + 1 = 21
*
* Relationship between channelId and in/out port:
* in_port = channelId * 2
* out_port = channelId * 2 -1
*/
List<PortDescription> ports = Lists.newArrayList();
RestSBController controller = checkNotNull(handler().get(RestSBController.class));
DeviceId deviceId = handler().data().deviceId();
HierarchicalConfiguration config = XmlConfigParser.loadXml(controller.get(deviceId, PORT_REQUEST, MediaType.APPLICATION_XML_TYPE));
List<HierarchicalConfiguration> portsConfig = parseWaveServerCienaPorts(config);
portsConfig.forEach(sub -> {
String portId = sub.getString(PORT_ID);
DefaultAnnotations.Builder annotations = DefaultAnnotations.builder();
if (CienaRestDevice.getLinesidePortId().contains(portId)) {
annotations.set(AnnotationKeys.CHANNEL_ID, sub.getString(CHANNEL_ID));
// TX/OUT and RX/IN ports
annotations.set(AnnotationKeys.PORT_OUT, sub.getString(PORT_OUT));
annotations.set(AnnotationKeys.PORT_IN, sub.getString(PORT_IN));
ports.add(parseWaveServerCienaOchPorts(Long.valueOf(portId), sub, annotations.build()));
} else if (!portId.equals("5") && !portId.equals("49")) {
DefaultAnnotations.builder().set(AnnotationKeys.PORT_NAME, portId);
// FIXME change when all optical types have two way information methods, see jira tickets
ports.add(oduCltPortDescription(PortNumber.portNumber(sub.getLong(PORT_ID)), sub.getString(ADMIN_STATE).equals(ENABLED), CltSignalType.CLT_100GBE, annotations.build()));
}
});
return ImmutableList.copyOf(ports);
}
Aggregations