From 5d56a80555ebe5a419dae3b1b849ffa78449b410 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sat, 8 Dec 2012 00:52:19 +0100 Subject: o Storing Jenkins builds discovered from the feed. --- .../trygvis/esper/testing/jenkins/JenkinsDao.java | 132 +++++++++++++++++++-- 1 file changed, 123 insertions(+), 9 deletions(-) (limited to 'src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java') 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 757902a..05ed567 100644 --- a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java +++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java @@ -1,23 +1,59 @@ package io.trygvis.esper.testing.jenkins; +import fj.data.*; +import org.joda.time.*; + import java.net.URI; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; +import java.sql.*; import java.util.ArrayList; import java.util.List; import java.util.UUID; +import static fj.data.Option.none; +import static fj.data.Option.some; +import static java.lang.System.currentTimeMillis; + public class JenkinsDao { private final Connection c; - private static final String JENKINS_SERVER = "uuid, url"; + + private static final String JENKINS_SERVER = "uuid, created_date, url"; + + private static final String JENKINS_BUILD = "uuid, created_date, entry_id, url, result, number, duration, timestamp"; public JenkinsDao(Connection c) { this.c = c; } + private JenkinsServerDto jenkinsServer(ResultSet rs) throws SQLException { + int i = 1; + return new JenkinsServerDto( + UUID.fromString(rs.getString(i++)), + new DateTime(rs.getTimestamp(i++).getTime()), + URI.create(rs.getString(i))); + } + +// private JenkinsEventDto jenkinsEvent(ResultSet rs) throws SQLException { +// int i = 1; +// return new JenkinsEventDto( +// UUID.fromString(rs.getString(i++)), +// new DateTime(rs.getTimestamp(i++).getTime()), +// URI.create(rs.getString(i))); +// } + + private JenkinsBuildDto jenkinsBuild(ResultSet rs) throws SQLException { + int i = 1; + return new JenkinsBuildDto( + UUID.fromString(rs.getString(i++)), + new DateTime(rs.getTimestamp(i++).getTime()), + rs.getString(i++), + URI.create(rs.getString(i++)), + rs.getString(i++), + rs.getInt(i++), + rs.getInt(i++), + new DateTime(rs.getTimestamp(i).getTime())); + } + public List selectServer() throws SQLException { try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_SERVER + " FROM jenkins_server")) { ResultSet rs = s.executeQuery(); @@ -28,21 +64,49 @@ public class JenkinsDao { } return servers; } + } + + public Option selectBuildByEntryId(String id) throws SQLException { + try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_BUILD + " FROM jenkins_build WHERE entry_id=?")) { + int i = 1; + s.setString(i, id); + ResultSet rs = s.executeQuery(); + + if (!rs.next()) { + return none(); + } + return some(jenkinsBuild(rs)); + } } - private JenkinsServerDto jenkinsServer(ResultSet rs) throws SQLException { - int i = 1; - return new JenkinsServerDto(UUID.fromString(rs.getString(i++)), URI.create(rs.getString(i))); + public UUID insertBuild(String entryId, URI uri, String result, int number, int duration, long timestamp) throws SQLException { + try (PreparedStatement s = c.prepareStatement("INSERT INTO jenkins_build(" + JENKINS_BUILD + ") VALUES(?, ?, ?, ?, ?, ?, ?, ?)")) { + UUID uuid = UUID.randomUUID(); + int i = 1; + s.setString(i++, uuid.toString()); + s.setTimestamp(i++, new Timestamp(currentTimeMillis())); + s.setString(i++, entryId); + s.setString(i++, uri.toASCIIString()); + s.setString(i++, result); + s.setInt(i++, number); + s.setInt(i++, duration); + s.setTimestamp(i, new Timestamp(timestamp)); + s.executeUpdate(); + + return uuid; + } } } class JenkinsServerDto { public final UUID uuid; + public final DateTime created_date; public final URI uri; - JenkinsServerDto(UUID uuid, URI uri) { + JenkinsServerDto(UUID uuid, DateTime created_date, URI uri) { this.uuid = uuid; + this.created_date = created_date; this.uri = uri; } @@ -61,3 +125,53 @@ class JenkinsServerDto { return uuid.hashCode(); } } + +class JenkinsJobDto { + public final UUID uuid; + public final DateTime created_date; + public final URI uri; + public final String title; + + JenkinsJobDto(UUID uuid, DateTime created_date, URI uri, String title) { + this.uuid = uuid; + this.created_date = created_date; + this.uri = uri; + this.title = title; + } +} + +class JenkinsBuildDto { + public final UUID uuid; + public final DateTime created_date; + public final String entryId; + public final URI uri; + public final String result; + public final int number; + public final int duration; + public final DateTime timestamp; + + JenkinsBuildDto(UUID uuid, DateTime created_date, String entryId, URI uri, String result, int number, int duration, DateTime timestamp) { + this.uuid = uuid; + this.created_date = created_date; + this.entryId = entryId; + this.uri = uri; + this.result = result; + this.number = number; + this.duration = duration; + this.timestamp = timestamp; + } +} + +class JenkinsEventDto { + public final UUID uuid; + public final DateTime created_date; + public final String id; + public final DateTime timestamp; + + JenkinsEventDto(UUID uuid, DateTime created_date, String id, DateTime timestamp) { + this.uuid = uuid; + this.created_date = created_date; + this.id = id; + this.timestamp = timestamp; + } +} -- cgit v1.2.3