/* * Copyright 2014 by SCSK Corporation. * * This file is part of PrimeCloud Controller(TM). * * PrimeCloud Controller(TM) is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * PrimeCloud Controller(TM) is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with PrimeCloud Controller(TM). If not, see <http://www.gnu.org/licenses/>. */ package jp.primecloud.auto.puppet.report; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * <p> * TODO: クラスコメントを記述 * </p> * */ public class ReportAnalyzer { /** * TODO: メソッドコメントを記述 * * @param report * @return */ @SuppressWarnings("unchecked") public List<MetricsResource> getMetricsResources(Map<String, Object> report) { List<MetricsResource> metricsResources = new ArrayList<MetricsResource>(); if (report == null) { return metricsResources; } Map<String, Object> metrics = (Map<String, Object>) report.get("metrics"); if (metrics == null) { return metricsResources; } Map<String, Object> resources = (Map<String, Object>) metrics.get("resources"); if (resources == null) { return metricsResources; } List<List<Object>> values = (List<List<Object>>) resources.get("values"); if (values == null) { return metricsResources; } for (List<Object> value : values) { String name = value.get(1).toString(); int count = Integer.parseInt(value.get(2).toString()); MetricsResource metricsResource = new MetricsResource(); metricsResource.setName(name); metricsResource.setCount(count); metricsResources.add(metricsResource); } return metricsResources; } /** * TODO: メソッドコメントを記述 * * @param report * @return */ @SuppressWarnings("unchecked") public List<MetricsTime> getMetricsTimes(Map<String, Object> report) { List<MetricsTime> metricsTimes = new ArrayList<MetricsTime>(); if (report == null) { return metricsTimes; } Map<String, Object> metrics = (Map<String, Object>) report.get("metrics"); if (metrics == null) { return metricsTimes; } Map<String, Object> times = (Map<String, Object>) metrics.get("time"); if (times == null) { return metricsTimes; } List<List<Object>> values = (List<List<Object>>) times.get("values"); if (values == null) { return metricsTimes; } for (List<Object> value : values) { String name = value.get(1).toString(); double time = Double.parseDouble(value.get(2).toString()); MetricsTime metricsTime = new MetricsTime(); metricsTime.setName(name); metricsTime.setTime(time); metricsTimes.add(metricsTime); } return metricsTimes; } /** * TODO: メソッドコメントを記述 * * @param report * @return */ @SuppressWarnings("unchecked") public List<MetricsChange> getMetricsChanges(Map<String, Object> report) { List<MetricsChange> metricsChanges = new ArrayList<MetricsChange>(); if (report == null) { return metricsChanges; } Map<String, Object> metrics = (Map<String, Object>) report.get("metrics"); if (metrics == null) { return metricsChanges; } Map<String, Object> resources = (Map<String, Object>) metrics.get("changes"); if (resources == null) { return metricsChanges; } List<List<Object>> values = (List<List<Object>>) resources.get("values"); if (values == null) { return metricsChanges; } for (List<Object> value : values) { String name = value.get(1).toString(); int count = Integer.parseInt(value.get(2).toString()); MetricsChange metricsChange = new MetricsChange(); metricsChange.setName(name); metricsChange.setCount(count); metricsChanges.add(metricsChange); } return metricsChanges; } /** * TODO: メソッドコメントを記述 * * @param report * @return */ public String getStatus(Map<String, Object> report) { String status = ""; if (report == null) { return status; } status = (String) report.get("status"); if (status == null) { return ""; } return status; } }