Skip to content

Commit

Permalink
Merge pull request #7 from johnou/configonly-backup-users
Browse files Browse the repository at this point in the history
JENKINS-12846: config files under users directory not backed up.
  • Loading branch information
johnou committed Jan 3, 2013
2 parents 353769d + 33717a9 commit ba70ad8
Showing 1 changed file with 28 additions and 6 deletions.
34 changes: 28 additions & 6 deletions src/main/java/org/jenkinsci/plugins/periodicbackup/ConfigOnly.java
Expand Up @@ -64,21 +64,27 @@ public Iterable<File> getFilesToBackup() throws PeriodicBackupException {
// First find the xml files in the home directory
File[] xmlsInRoot = rootDir.listFiles(Util.extensionFileFilter("xml"));
filesToBackup.addAll(Arrays.asList(xmlsInRoot));
addJobFiles(rootDir, filesToBackup);
addUserFiles(rootDir, filesToBackup);
return filesToBackup;
}

private void addJobFiles(File rootDir, List<File> filesToBackup) {
File jobsDir = new File(rootDir, "jobs");
if(jobsDir.exists() && jobsDir.isDirectory()) {
if (jobsDir.exists() && jobsDir.isDirectory()) {
// Each job directory should have a config.xml file
File[] dirsInJobs = jobsDir.listFiles((FileFilter) FileFilterUtils.directoryFileFilter());
for(File job : dirsInJobs) {
for (File job : dirsInJobs) {
File jobConfig = new File(job, "config.xml");
if(jobConfig.exists() && jobConfig.isFile()) {
if (jobConfig.exists() && jobConfig.isFile()) {
filesToBackup.add(jobConfig);
// There might be some config file from the Promotion plugin
File promotionDir = new File(job, "promotions");
if(promotionDir.exists()) {
if (promotionDir.exists()) {
File[] promotionDirs = promotionDir.listFiles((FileFilter) FileFilterUtils.directoryFileFilter());
for (File dir : promotionDirs) {
File promotionConfig = new File(dir, "config.xml");
if(promotionConfig.exists() && promotionConfig.isFile()) {
if (promotionConfig.exists() && promotionConfig.isFile()) {
filesToBackup.add(promotionConfig);
}
}
Expand All @@ -89,7 +95,23 @@ public Iterable<File> getFilesToBackup() throws PeriodicBackupException {
}
}
}
return filesToBackup;
}

private void addUserFiles(File rootDir, List<File> filesToBackup) {
File usersDir = new File(rootDir, "users");
if (usersDir.exists() && usersDir.isDirectory()) {
// Each user directory should have a config.xml file
File[] dirsInUsers = usersDir.listFiles((FileFilter) FileFilterUtils.directoryFileFilter());
for (File user : dirsInUsers) {
File userConfig = new File(user, "config.xml");
if (userConfig.exists() && userConfig.isFile()) {
filesToBackup.add(userConfig);
}
else {
LOGGER.warning(userConfig.getAbsolutePath() + " does not exist or is not a file.");
}
}
}
}

@Override
Expand Down

0 comments on commit ba70ad8

Please sign in to comment.