private List<JobExecutionInfo> processQueryByTable(Connection connection, JobExecutionQuery query) throws SQLException { Preconditions.checkArgument(query.getId().isTable()); Filter tableFilter = constructTableFilter(query.getId().getTable()); // Construct the query for job names by table definition String jobNameByTableQuery = String.format(JOB_NAME_QUERY_BY_TABLE_STATEMENT_TEMPLATE, tableFilter); List<JobExecutionInfo> jobExecutionInfos = Lists.newArrayList(); // Query job names by table definition try (PreparedStatement queryStatement = connection.prepareStatement(jobNameByTableQuery)) { if (tableFilter.isPresent()) { tableFilter.addParameters(queryStatement, 1); } try (ResultSet rs = queryStatement.executeQuery()) { while (rs.next()) { jobExecutionInfos.addAll(processQueryByJobName(connection, rs.getString(1), query, tableFilter)); } } } return jobExecutionInfos; }
List<JobExecutionInfo> jobExecutionInfos = Lists.newArrayList(); JobExecutionInfo jobExecutionInfo = processQueryById(connection, query.getId().getString(), query, Filter.MISSING); if (jobExecutionInfo != null) { jobExecutionInfos.add(jobExecutionInfo); return processQueryByJobName(connection, query.getId().getString(), query, Filter.MISSING); case TABLE: return processQueryByTable(connection, query);
private List<JobExecutionInfo> processQueryByTable(Connection connection, JobExecutionQuery query) throws SQLException { Preconditions.checkArgument(query.getId().isTable()); Filter tableFilter = constructTableFilter(query.getId().getTable()); String jobsWithoutTaskFilter = ""; if (!query.isIncludeJobsWithoutTasks()) { jobsWithoutTaskFilter = " AND " + FILTER_JOBS_WITH_TASKS; } // Construct the query for job names by table definition String jobNameByTableQuery = String.format(JOB_NAME_QUERY_BY_TABLE_STATEMENT_TEMPLATE, tableFilter.getFilter(), jobsWithoutTaskFilter); List<JobExecutionInfo> jobExecutionInfos = Lists.newArrayList(); // Query job names by table definition try (PreparedStatement queryStatement = connection.prepareStatement(jobNameByTableQuery)) { if (tableFilter.isPresent()) { tableFilter.addParameters(queryStatement, 1); } try (ResultSet rs = queryStatement.executeQuery()) { while (rs.next()) { jobExecutionInfos.addAll(processQueryByJobName(connection, rs.getString(1), query, tableFilter)); } } return jobExecutionInfos; } }
@Override public JobExecutionQueryResult get(ComplexResourceKey<JobExecutionQuery, EmptyRecord> key) { JobExecutionQuery query = key.getKey(); JobExecutionInfoArray jobExecutionInfos = new JobExecutionInfoArray(); try { for (JobExecutionInfo jobExecutionInfo : this.jobHistoryStore.get(query)) { jobExecutionInfos.add(jobExecutionInfo); } } catch (Throwable t) { LOGGER .error(String.format("Failed to execute query [id = %s, type = %s]", query.getId(), query.getIdType().name()), t); return null; } JobExecutionQueryResult result = new JobExecutionQueryResult(); result.setJobExecutions(jobExecutionInfos); ResourceContext rc = this.getContext(); rc.setResponseHeader("Access-Control-Allow-Origin", "*"); this.setContext(rc); return result; }
private List<JobExecutionInfo> processListQuery(Connection connection, JobExecutionQuery query) throws SQLException { Preconditions.checkArgument(query.getId().isQueryListType()); QueryListType queryType = query.getId().getQueryListType(); String listJobExecutionsQuery = ""; if (queryType == QueryListType.DISTINCT) {
private List<JobExecutionInfo> processListQuery(Connection connection, JobExecutionQuery query) throws SQLException { Preconditions.checkArgument(query.getId().isQueryListType()); QueryListType queryType = query.getId().getQueryListType(); String listJobExecutionsQuery; if (queryType == QueryListType.DISTINCT) {
List<JobExecutionInfo> jobExecutionInfos = Lists.newArrayList(); JobExecutionInfo jobExecutionInfo = processQueryById(connection, query.getId().getString(), query, Filter.MISSING); if (jobExecutionInfo != null) { jobExecutionInfos.add(jobExecutionInfo); return processQueryByJobName(connection, query.getId().getString(), query, Filter.MISSING); case TABLE: return processQueryByTable(connection, query);
private List<JobExecutionInfo> processQueryByTable(Connection connection, JobExecutionQuery query) throws SQLException { Preconditions.checkArgument(query.getId().isTable()); Filter tableFilter = constructTableFilter(query.getId().getTable()); // Construct the query for job names by table definition String jobNameByTableQuery = String.format(JOB_NAME_QUERY_BY_TABLE_STATEMENT_TEMPLATE, tableFilter); List<JobExecutionInfo> jobExecutionInfos = Lists.newArrayList(); // Query job names by table definition try (PreparedStatement queryStatement = connection.prepareStatement(jobNameByTableQuery)) { if (tableFilter.isPresent()) { tableFilter.addParameters(queryStatement, 1); } try (ResultSet rs = queryStatement.executeQuery()) { while (rs.next()) { jobExecutionInfos.addAll(processQueryByJobName(connection, rs.getString(1), query, tableFilter)); } } } return jobExecutionInfos; }
@Override public JobExecutionQueryResult get(ComplexResourceKey<JobExecutionQuery, EmptyRecord> key) { JobExecutionQuery query = key.getKey(); JobExecutionInfoArray jobExecutionInfos = new JobExecutionInfoArray(); try { for (JobExecutionInfo jobExecutionInfo : this.jobHistoryStore.get(query)) { jobExecutionInfos.add(jobExecutionInfo); } } catch (Throwable t) { LOGGER .error(String.format("Failed to execute query [id = %s, type = %s]", query.getId(), query.getIdType().name()), t); return null; } JobExecutionQueryResult result = new JobExecutionQueryResult(); result.setJobExecutions(jobExecutionInfos); ResourceContext rc = this.getContext(); rc.setResponseHeader("Access-Control-Allow-Origin", "*"); this.setContext(rc); return result; }
private List<JobExecutionInfo> processQueryByTable(Connection connection, JobExecutionQuery query) throws SQLException { Preconditions.checkArgument(query.getId().isTable()); Filter tableFilter = constructTableFilter(query.getId().getTable()); String jobsWithoutTaskFilter = ""; if (!query.isIncludeJobsWithoutTasks()) { jobsWithoutTaskFilter = " AND " + FILTER_JOBS_WITH_TASKS; } // Construct the query for job names by table definition String jobNameByTableQuery = String.format(JOB_NAME_QUERY_BY_TABLE_STATEMENT_TEMPLATE, tableFilter.getFilter(), jobsWithoutTaskFilter); List<JobExecutionInfo> jobExecutionInfos = Lists.newArrayList(); // Query job names by table definition try (PreparedStatement queryStatement = connection.prepareStatement(jobNameByTableQuery)) { if (tableFilter.isPresent()) { tableFilter.addParameters(queryStatement, 1); } try (ResultSet rs = queryStatement.executeQuery()) { while (rs.next()) { jobExecutionInfos.addAll(processQueryByJobName(connection, rs.getString(1), query, tableFilter)); } } return jobExecutionInfos; } }
private List<JobExecutionInfo> processListQuery(Connection connection, JobExecutionQuery query) throws SQLException { Preconditions.checkArgument(query.getId().isQueryListType()); QueryListType queryType = query.getId().getQueryListType(); String listJobExecutionsQuery = ""; if (queryType == QueryListType.DISTINCT) {
private List<JobExecutionInfo> processListQuery(Connection connection, JobExecutionQuery query) throws SQLException { Preconditions.checkArgument(query.getId().isQueryListType()); QueryListType queryType = query.getId().getQueryListType(); String listJobExecutionsQuery; if (queryType == QueryListType.DISTINCT) {