From 60ebcfb3f12fa58a7ea52eec6a3572d7e38d85c6 Mon Sep 17 00:00:00 2001 From: John Pederzolli Date: Mon, 17 Aug 2015 15:53:11 -0700 Subject: [PATCH] Update RunIdMigrator to properly handle matrix and maven jobs Properly revert job history for matrix and maven jobs (depending on setup). Examples paths include: jobs/someproject/Environment=prod/builds jobs/someproject/test$test/builds --- .../java/jenkins/model/RunIdMigrator.java | 5 +++++ .../java/jenkins/model/RunIdMigratorTest.java | 20 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/core/src/main/java/jenkins/model/RunIdMigrator.java b/core/src/main/java/jenkins/model/RunIdMigrator.java index 4666a5fb86..0316cf4c4c 100644 --- a/core/src/main/java/jenkins/model/RunIdMigrator.java +++ b/core/src/main/java/jenkins/model/RunIdMigrator.java @@ -350,6 +350,11 @@ public final class RunIdMigrator { return; } for (File job : jobDirs) { + + if (job.getName().equals("builds")) { + unmigrateBuildsDir(job); + } + File[] kids = job.listFiles(); if (kids == null) { continue; diff --git a/core/src/test/java/jenkins/model/RunIdMigratorTest.java b/core/src/test/java/jenkins/model/RunIdMigratorTest.java index fb9805db77..4b890ac50a 100644 --- a/core/src/test/java/jenkins/model/RunIdMigratorTest.java +++ b/core/src/test/java/jenkins/model/RunIdMigratorTest.java @@ -128,6 +128,26 @@ public class RunIdMigratorTest { assertEquals("{1=→2014-01-02_03-04-05, 2014-01-02_03-04-05={build.xml='\n\n ok\n 1\n ok\n'}}", summarize()); } + @Test public void reverseMatrixAfterNewBuilds() throws Exception { + File root = dir; + dir = new File(dir, "jobs/someproject/Environment=prod/builds"); + write("1/build.xml", "\n\n ok\n 1388649845000\n ok\n"); + write("legacyIds", ""); + assertEquals("{1={build.xml='\n\n ok\n 1388649845000\n ok\n'}, legacyIds=''}", summarize()); + RunIdMigrator.main(root.getAbsolutePath()); + assertEquals("{1=→2014-01-02_03-04-05, 2014-01-02_03-04-05={build.xml='\n\n ok\n 1\n ok\n'}}", summarize()); + } + + @Test public void reverseMavenAfterNewBuilds() throws Exception { + File root = dir; + dir = new File(dir, "jobs/someproject/test$test/builds"); + write("1/build.xml", "\n\n ok\n 1388649845000\n ok\n"); + write("legacyIds", ""); + assertEquals("{1={build.xml='\n\n ok\n 1388649845000\n ok\n'}, legacyIds=''}", summarize()); + RunIdMigrator.main(root.getAbsolutePath()); + assertEquals("{1=→2014-01-02_03-04-05, 2014-01-02_03-04-05={build.xml='\n\n ok\n 1\n ok\n'}}", summarize()); + } + // TODO test sane recovery from various error conditions private void write(String file, String text) throws Exception {