diff options
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/jenkins')
6 files changed, 128 insertions, 84 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsBuildDto.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsBuildDto.java new file mode 100644 index 0000000..28f597d --- /dev/null +++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsBuildDto.java @@ -0,0 +1,30 @@ +package io.trygvis.esper.testing.jenkins; + +import org.joda.time.*; + +import java.net.*; +import java.util.*; + +public class JenkinsBuildDto { + public final UUID uuid; + public final DateTime created_date; + public final UUID job; + public final String entryId; + public final URI url; + public final String result; + public final int number; + public final int duration; + public final DateTime timestamp; + + JenkinsBuildDto(UUID uuid, DateTime created_date, UUID job, String entryId, URI url, String result, int number, int duration, DateTime timestamp) { + this.uuid = uuid; + this.created_date = created_date; + this.job = job; + this.entryId = entryId; + this.url = url; + this.result = result; + this.number = number; + this.duration = duration; + this.timestamp = timestamp; + } +} diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java index 0195900..ab4b515 100644 --- a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java +++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java @@ -3,22 +3,19 @@ package io.trygvis.esper.testing.jenkins; import fj.data.*; import org.joda.time.*; -import java.net.URI; +import java.net.*; import java.sql.*; -import java.util.ArrayList; +import java.util.*; import java.util.List; -import java.util.UUID; -import static fj.data.Option.fromNull; -import static fj.data.Option.none; -import static fj.data.Option.some; -import static java.lang.System.currentTimeMillis; +import static fj.data.Option.*; +import static java.lang.System.*; public class JenkinsDao { private final Connection c; - public static final String JENKINS_SERVER = "uuid, created_date, url"; + public static final String JENKINS_SERVER = "uuid, created_date, url, enabled"; public static final String JENKINS_JOB = "uuid, created_date, server, url, job_type, display_name"; @@ -33,10 +30,11 @@ public class JenkinsDao { return new JenkinsServerDto( UUID.fromString(rs.getString(i++)), new DateTime(rs.getTimestamp(i++).getTime()), - URI.create(rs.getString(i))); + URI.create(rs.getString(i++)), + rs.getBoolean(i)); } - public List<JenkinsServerDto> toServerList(ResultSet rs) throws SQLException { + private List<JenkinsServerDto> toServerList(ResultSet rs) throws SQLException { List<JenkinsServerDto> list = new ArrayList<>(); while (rs.next()) { list.add(jenkinsServer(rs)); @@ -76,21 +74,37 @@ public class JenkinsDao { new DateTime(rs.getTimestamp(i).getTime())); } - public List<JenkinsServerDto> selectServer(boolean enabledOnly) throws SQLException { - String where = "WHERE "; - where += enabledOnly ? "enabled=true" : ""; + public List<JenkinsServerDto> selectServers(boolean enabledOnly) throws SQLException { + String sql = "SELECT " + JENKINS_SERVER + " FROM jenkins_server "; + + if (enabledOnly) { + sql += " WHERE enabled=true"; + } - try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_SERVER + " FROM jenkins_server " + where)) { + sql += " ORDER BY url"; + + try (PreparedStatement s = c.prepareStatement(sql)) { return toServerList(s.executeQuery()); } } + public Option<JenkinsServerDto> selectServer(UUID uuid) throws SQLException { + try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_SERVER + " FROM jenkins_server WHERE uuid=?")) { + s.setString(1, uuid.toString()); + ResultSet rs = s.executeQuery(); + if (!rs.next()) { + return none(); + } + return some(jenkinsServer(rs)); + } + } + public Option<JenkinsJobDto> selectJobByUrl(URI url) throws SQLException { try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_JOB + " FROM jenkins_job WHERE url=?")) { s.setString(1, url.toASCIIString()); ResultSet rs = s.executeQuery(); - if(!rs.next()) { + if (!rs.next()) { return none(); } @@ -98,6 +112,15 @@ public class JenkinsDao { } } + public Integer selectJobCountForServer(UUID uuid) throws SQLException { + try (PreparedStatement s = c.prepareStatement("SELECT count(1) FROM jenkins_job WHERE server=?")) { + s.setString(1, uuid.toString()); + ResultSet rs = s.executeQuery(); + + return rs.getInt(1); + } + } + public UUID insertJob(UUID server, URI url, JenkinsJobXml.JenkinsJobType type, Option<String> displayName) throws SQLException { try (PreparedStatement s = c.prepareStatement("INSERT INTO jenkins_job(" + JENKINS_JOB + ") VALUES(?, ?, ?, ?, ?, ?)")) { UUID uuid = UUID.randomUUID(); @@ -147,70 +170,3 @@ public class JenkinsDao { } } } - -class JenkinsServerDto { - public final UUID uuid; - public final DateTime created_date; - public final URI url; - - JenkinsServerDto(UUID uuid, DateTime created_date, URI url) { - this.uuid = uuid; - this.created_date = created_date; - this.url = url; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - JenkinsServerDto that = (JenkinsServerDto) o; - - return uuid.equals(that.uuid); - } - - @Override - public int hashCode() { - return uuid.hashCode(); - } -} - -class JenkinsJobDto { - public final UUID uuid; - public final DateTime created_date; - public final UUID server; - public final URI url; - public final Option<String> displayName; - - JenkinsJobDto(UUID uuid, DateTime created_date, UUID server, URI url, Option<String> displayName) { - this.uuid = uuid; - this.created_date = created_date; - this.server = server; - this.url = url; - this.displayName = displayName; - } -} - -class JenkinsBuildDto { - public final UUID uuid; - public final DateTime created_date; - public final UUID job; - public final String entryId; - public final URI url; - public final String result; - public final int number; - public final int duration; - public final DateTime timestamp; - - JenkinsBuildDto(UUID uuid, DateTime created_date, UUID job, String entryId, URI url, String result, int number, int duration, DateTime timestamp) { - this.uuid = uuid; - this.created_date = created_date; - this.job = job; - this.entryId = entryId; - this.url = url; - this.result = result; - this.number = number; - this.duration = duration; - this.timestamp = timestamp; - } -} diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java index 680e593..e30dca7 100644 --- a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java +++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java @@ -41,7 +41,7 @@ public class JenkinsImporter { java.util.List<JenkinsServerDto> newKeys; try (Connection c = boneCp.getConnection()) { - newKeys = new JenkinsDao(c).selectServer(true); + newKeys = new JenkinsDao(c).selectServers(true); } serverManager.update(newKeys); diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobDto.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobDto.java new file mode 100644 index 0000000..8ee731c --- /dev/null +++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobDto.java @@ -0,0 +1,23 @@ +package io.trygvis.esper.testing.jenkins; + +import fj.data.*; +import org.joda.time.*; + +import java.net.*; +import java.util.*; + +public class JenkinsJobDto { + public final UUID uuid; + public final DateTime created_date; + public final UUID server; + public final URI url; + public final Option<String> displayName; + + JenkinsJobDto(UUID uuid, DateTime created_date, UUID server, URI url, Option<String> displayName) { + this.uuid = uuid; + this.created_date = created_date; + this.server = server; + this.url = url; + this.displayName = displayName; + } +} diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobXml.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobXml.java index 8cbe049..ca661b8 100644 --- a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobXml.java +++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobXml.java @@ -14,7 +14,7 @@ import static io.trygvis.esper.testing.Util.childText; class JenkinsJobXml { enum JenkinsJobType { - FREE_STYLE, MAVEN_MODULE_SET, MAVEN_MODULE, MATRIX + FREE_STYLE, MAVEN_MODULE_SET, MAVEN_MODULE, MATRIX, MATRIX_CONFIGURATION } public final JenkinsJobType type; diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServerDto.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServerDto.java new file mode 100644 index 0000000..225b786 --- /dev/null +++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServerDto.java @@ -0,0 +1,35 @@ +package io.trygvis.esper.testing.jenkins; + +import org.joda.time.*; + +import java.net.*; +import java.util.*; + +public class JenkinsServerDto { + public final UUID uuid; + public final DateTime created_date; + public final URI url; + public final boolean enabled; + + JenkinsServerDto(UUID uuid, DateTime created_date, URI url, boolean enabled) { + this.uuid = uuid; + this.created_date = created_date; + this.url = url; + this.enabled = enabled; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + JenkinsServerDto that = (JenkinsServerDto) o; + + return uuid.equals(that.uuid); + } + + @Override + public int hashCode() { + return uuid.hashCode(); + } +} |