@SuppressWarnings("unchecked")
@Override
public CloudInfo getInfo() {
String infoV2Json = getRestTemplate().getForObject(getUrl("/v2/info"), String.class);
Map<String, Object> infoV2Map = JsonUtil.convertJsonToMap(infoV2Json);
Map<String, Object> userMap = getUserInfo((String) infoV2Map.get("user"));
String infoJson = getRestTemplate().getForObject(getUrl("/info"), String.class);
Map<String, Object> infoMap = JsonUtil.convertJsonToMap(infoJson);
Map<String, Object> limitMap = (Map<String, Object>) infoMap.get("limits");
Map<String, Object> usageMap = (Map<String, Object>) infoMap.get("usage");
String name = CloudUtil.parse(String.class, infoV2Map.get("name"));
String support = CloudUtil.parse(String.class, infoV2Map.get("support"));
String authorizationEndpoint = CloudUtil.parse(String.class, infoV2Map.get("authorization_endpoint"));
String build = CloudUtil.parse(String.class, infoV2Map.get("build"));
String version = "" + CloudUtil.parse(Number.class, infoV2Map.get("version"));
String description = CloudUtil.parse(String.class, infoV2Map.get("description"));
CloudInfo.Limits limits = null;
CloudInfo.Usage usage = null;
boolean debug = false;
if (oauthClient.getToken() != null) {
limits = new CloudInfo.Limits(limitMap);
usage = new CloudInfo.Usage(usageMap);
debug = CloudUtil.parse(Boolean.class, infoMap.get("allow_debug"));
}
String loggregatorEndpoint = CloudUtil.parse(String.class, infoV2Map.get("logging_endpoint"));
return new CloudInfo(name, support, authorizationEndpoint, build, version, (String)userMap.get("user_name"),
description, limits, usage, debug, loggregatorEndpoint);
}