/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE and NOTICE files at the root of the source * tree and available online at * * http://www.dspace.org/license/ */ package org.dspace.health; import org.apache.commons.io.FileUtils; import org.dspace.core.ConfigurationManager; import org.dspace.services.ConfigurationService; import org.dspace.storage.bitstore.DSBitStoreService; import org.dspace.utils.DSpace; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; /** * @author LINDAT/CLARIN dev team */ public class InfoCheck extends Check { @Override public String run( ReportInfo ri ) { StringBuilder sb = new StringBuilder(); ConfigurationService configurationService = new DSpace().getConfigurationService(); sb.append("Generated: ").append( new Date().toString() ).append("\n"); sb.append("From - Till: ").append( new SimpleDateFormat("yyyy-MM-dd").format(ri.from().getTime()) ).append(" - ").append( new SimpleDateFormat("yyyy-MM-dd").format(ri.till().getTime()) ).append("\n"); sb.append("Url: ").append( ConfigurationManager.getProperty("dspace.url") ).append("\n"); sb.append("\n"); DSBitStoreService localStore = new DSpace().getServiceManager().getServicesByType(DSBitStoreService.class).get(0); for (String[] ss : new String[][] { new String[] { localStore.getBaseDir().toString(), "Assetstore size", }, new String[] { configurationService.getProperty("log.report.dir"), "Log dir size", }, }) { if (ss[0] != null) { try { File dir = new File(ss[0]); if (dir.exists()) { long dir_size = FileUtils.sizeOfDirectory(dir); sb.append(String.format("%-20s: %s\n", ss[1], FileUtils.byteCountToDisplaySize(dir_size)) ); } else { sb.append(String.format("Directory [%s] does not exist!\n", ss[0])); } } catch(Exception e) { error(e, "directory - " + ss[0]); } } else { // cannot read property for some reason sb.append(String.format("Could not get information for %s!\n", ss[1])); } } return sb.toString(); } }