aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java')
-rw-r--r--src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java120
1 files changed, 38 insertions, 82 deletions
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;
- }
-}