Skip to content
Snippets Groups Projects
Commit 2ade6669 authored by Justin Cleveland's avatar Justin Cleveland
Browse files

(partial commit) XNAT-1649 - Archive mount point is missing, but system runs without a message

parent 7ea45e80
No related branches found
No related tags found
No related merge requests found
...@@ -11,7 +11,7 @@ public abstract class AbstractInitializingTask implements InitializingTask { ...@@ -11,7 +11,7 @@ public abstract class AbstractInitializingTask implements InitializingTask {
@Override @Override
public abstract void run(); public abstract void run();
@Override @Override
public boolean isCompleted() { public boolean isCompleted() {
return _completedAt != null; return _completedAt != null;
} }
......
/*
* org.nrg.xnat.initialization.tasks.SystemPathVerification
* XNAT http://www.xnat.org
* Copyright (c) 2016, Washington University School of Medicine
* All Rights Reserved
*
* Released under the Simplified BSD.
*
* Created:
* Author: Justin Cleveland (clevelandj@wustl.edu)
*/
package org.nrg.xnat.initialization.tasks;
import org.nrg.xdat.preferences.SiteConfigPreferences;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.ResultSetExtractor;
import org.springframework.stereotype.Component;
import java.io.File;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
@Component
public class SystemPathVerification extends AbstractInitializingTask {
@Override
public String getTaskName() {
return "System Path Verification";
}
private final static ArrayList<String> pathErrors = new ArrayList<>();
@Override
public void run() {
try {
String archivePath = _siteConfigPreferences.getArchivePath();
validatePath(archivePath, "Archive", true);
final ProjectExtractor pe = new ProjectExtractor();
final SubjectExtractor se = new SubjectExtractor();
final Map<String, String> projects = _template.query("SELECT id, name FROM xnat_projectdata", pe);
if(projects.size() > 0){
final Map<String, String> subjects = _template.query("SELECT id, name FROM xnat_subjectdata", se);
if(subjects.size() > 0){
}
}
complete();
} catch (Exception e) {
logger.error("", e);
}
}
private boolean validatePath(final String path, final String displayName, final boolean checkForFiles) throws SQLException {
File filePath = new File(path);
if (!filePath.exists()) {
pathErrors.add(displayName+" path \""+path+"\" does not exist.");
return false;
} else if (!filePath.isDirectory()){
pathErrors.add(displayName+" path \""+path+"\" is not a directory.");
return false;
} else if (checkForFiles) {
// check for actual subdirectories and files existing here
/*
FileFilter directoryFilter = new FileFilter() {
public boolean accept(File file) {
return file.isDirectory();
}
};
*/
File[] files = filePath.listFiles();
//directoryFilter);
final String noFiles = displayName + " files do not exist under \"" + path + "\".";
if(files == null) {
pathErrors.add(noFiles);
return false;
}
if(files.length < 1) {
pathErrors.add(noFiles);
return false;
}
else {
for (File file : files) {
System.out.println(file);
}
}
}
return true;
}
private static class ProjectExtractor implements ResultSetExtractor<Map<String, String>> {
@Override
public Map<String, String> extractData(final ResultSet results) throws SQLException, DataAccessException {
final Map<String, String> projects = new HashMap<>();
while (results.next()) {
projects.put(results.getString(1), results.getString(2));
}
return projects;
}
}
private static class SubjectExtractor implements ResultSetExtractor<Map<String, String>> {
@Override
public Map<String, String> extractData(final ResultSet results) throws SQLException, DataAccessException {
final Map<String, String> subjects = new HashMap<>();
while (results.next()) {
subjects.put(results.getString(1), results.getString(2));
}
return subjects;
}
}
private static Logger logger = LoggerFactory.getLogger(SystemPathVerification.class);
@Autowired
@Lazy
private JdbcTemplate _template;
@Autowired
@Lazy
private SiteConfigPreferences _siteConfigPreferences;
}
...@@ -7,15 +7,15 @@ ...@@ -7,15 +7,15 @@
fieldDate.attr('placeholder', 'MM/DD/YYYY'); fieldDate.attr('placeholder', 'MM/DD/YYYY');
openCal = $('#openCal-passwordExpirationDate'); openCal = $('#openCal-passwordExpirationDate');
openCal.click(openCalendar); openCal.click(openCalendar);
fieldInterval[0].style.width = '40px'; // fieldInterval[0].style.width = '40px';
fieldInterval[0].style.textAlign = 'right'; // fieldInterval[0].style.textAlign = 'right';
fieldInterval[0].style.marginTop='10px'; fieldInterval[0].style.marginTop='10px';
fieldDate[0].style.width = '90px'; fieldDate[0].style.width = '90px';
fieldDate[0].style.marginTop='10px'; fieldDate[0].style.marginTop='10px';
fieldDate.datetimepicker({ fieldDate.datetimepicker({
timepicker:false, timepicker:false,
format:'m/d/Y', format:'m/d/Y',
// minDate:'-1970/01/01' // today is minimum date maxDate:'1970/01/01' // today is max date, disallow future date selection
}); });
sdtDisabled = $('#passwordExpirationTypeDisabled'); sdtDisabled = $('#passwordExpirationTypeDisabled');
sdtInterval = $('#passwordExpirationTypeInterval'); sdtInterval = $('#passwordExpirationTypeInterval');
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment