Reference Guide

Table Of Contents
import com.hp.sdn.json.JsonService;
import com.hp.sdn.misc.ResponseData;
import com.hp.sdn.misc.ServiceRest;
import com.hp.util.StringUtils;
...
@Component
@Service
public class SwitchTransferManager implements SwitchTransferService {
// Some specific dependencies (like javax.ws.rs.core.Response) are needed
// to implement transfer services that use RESTful web services as the
// underlying mechanism to achieve communication. It is recommended to
// locate transfer services in a separated module.
static final String BASE_DESTINATION_PATH = "sdn/hm/v1.0/switches";
@Reference(policy = ReferencePolicy.DYNAMIC,
cardinality = ReferenceCardinality.MANDATORY_UNARY)
private volatile ServiceRest restClient;
@Reference(policy = ReferencePolicy.DYNAMIC,
cardinality = ReferenceCardinality.MANDATORY_UNARY)
private volatile jsonService jsonService;
@Override
public Set<Switch> getControlledDevices(IpAddress ipAddress) {
URI uri = restClient.uri(ipAddress, BASE_DESTINATION_PATH);
ResponseData response = restClient.get(restClient.login(), uri);
String responseData;
try {
responseData = new String(response.data(), StringUtils.UTF8);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(
"Unable to decode response from " + ipAddress, e);
}
if (response.status() != Status.OK.getStatusCode()) {
StringBuilder message = new StringBuilder(32);
message.append("Unable to communicate with ");
message.append(ipAddress);
message.append(". Status code: ");
message.append(response.status());
message.append(". Response data: ");
message.append(responseData);
191