class AdministrationAgent implements InitializingBean {

    protected void processCluster(ClusterVO cluster, ClusterAdministrationHeuristicAlgorithm administrationAlgorithm) {
        long clusterId = cluster.getId();
        if (!autonomicClusterManagementService.canProcessCluster(clusterId, administrationAlgorithm)) {
            logger.debug(String.format("Method canProcessCluster returned false for cluster [id=%d]", clusterId));
            return;
        }
        mapAndExecuteVMsMigrations(cluster, administrationAlgorithm);

        if (administrationAlgorithm.canHeuristicShutdownHosts()) {
            logger.info(String.format("Shutting down idle hosts for cluster [id=%d] consolidation", clusterId));
            shutdownIdleHosts(cluster, administrationAlgorithm);
        }
    }

}