protected List<Host> getDataNodes(Host host) {
String path = "/?endpoint";
URI uri = getRequestUri(host, path);
String rfcDate;
synchronized (rfc822DateFormat) {
rfcDate = rfc822DateFormat.format(new Date());
}
String canonicalString = "GET\n\n\n" + rfcDate + "\n" + path;
String signature;
try {
signature = getSignature(canonicalString, secret);
} catch (Exception e) {
throw new RuntimeException("could not generate signature", e);
}
WebResource.Builder request = client.resource(uri).getRequestBuilder();
request.header("Date", rfcDate);
request.header("Authorization", "AWS " + user + ":" + signature);
log.debug("retrieving VDC node list from {}", host.getName());
List<String> dataNodes = request.get(ListDataNode.class).getDataNodes();
List<Host> hosts = new ArrayList<Host>();
for (String node : dataNodes) {
hosts.add(new Host(node));
}
return hosts;
}