public static LoadReport parse(String loadReportJson) {
PulsarLoadReportImpl pulsarLoadReport = new PulsarLoadReportImpl();
ObjectMapper mapper = ObjectMapperFactory.create();
try {
com.yahoo.pulsar.common.policies.data.loadbalancer.LoadReport report = mapper.readValue(loadReportJson,
com.yahoo.pulsar.common.policies.data.loadbalancer.LoadReport.class);
SystemResourceUsage sru = report.getSystemResourceUsage();
String resourceUnitName = report.getName();
pulsarLoadReport.resourceDescription = new PulsarResourceDescription();
if (sru.bandwidthIn != null)
pulsarLoadReport.resourceDescription.put("bandwidthIn", sru.bandwidthIn);
if (sru.bandwidthOut != null)
pulsarLoadReport.resourceDescription.put("bandwidthOut", sru.bandwidthOut);
if (sru.memory != null)
pulsarLoadReport.resourceDescription.put("memory", sru.memory);
if (sru.cpu != null)
pulsarLoadReport.resourceDescription.put("cpu", sru.cpu);
pulsarLoadReport.resourceUnit = new SimpleResourceUnit(resourceUnitName,
pulsarLoadReport.resourceDescription);
} catch (Exception e) {
log.warn("Failed Parsing Load Report from JSON string [{}]", e);
}
return pulsarLoadReport;
}