modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java
| 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/ReportExporter.java
| 38 ++++-----
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftHistoryView.java
| 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/OperationHistoryView.java
| 2
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentAlertHandler.java
| 39 +++++++--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentAlertLocal.java
| 8 -
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentDriftHandler.java
| 42 ++++++----
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentOperationsHandler.java
| 22 ++++-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentOperationsLocal.java
| 8 -
9 files changed, 102 insertions(+), 61 deletions(-)
New commits:
commit 125219cc3cc8b0a5fe951ecadb574e016efaae94
Author: Mike Thompson <mithomps(a)redhat.com>
Date: Fri Mar 30 13:19:40 2012 -0700
[BZ 800453] Export Csv Reports. First draft hooking up backend restful reports.
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java
index 9c19531..5ebf50c 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/alert/AlertHistoryView.java
@@ -48,7 +48,6 @@ import org.rhq.enterprise.gui.coregui.client.util.message.Message;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Date;
import java.util.LinkedHashMap;
/**
@@ -126,7 +125,6 @@ public class AlertHistoryView extends
TableSection<AlertDataSource> implements H
toDateFilter = new DateItem();
toDateFilter.setUseTextField(true);
toDateFilter.setTitle(MSG.filter_to_date());
- toDateFilter.setValue(new Date());
if (isShowFilterForm()) {
setFilterFormItems(fromDateFilter, toDateFilter, priorityFilter);
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/ReportExporter.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/ReportExporter.java
index 6cbe4d3..2eddf11 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/ReportExporter.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/components/ReportExporter.java
@@ -63,8 +63,8 @@ public class ReportExporter {
String driftPath;
// Date filtering
- Date fromDate;
- Date toDate;
+ Date startDate;
+ Date endDate;
/**
@@ -89,8 +89,8 @@ public class ReportExporter {
public static ReportExporter createStandardExporter(String reportUrl, Date fromDate,
Date toDate) {
ReportExporter newExporter = new ReportExporter(reportUrl);
- newExporter.setFromDate(fromDate);
- newExporter.setToDate(toDate);
+ newExporter.setStartDate(fromDate);
+ newExporter.setEndDate(toDate);
return newExporter;
}
@@ -102,24 +102,24 @@ public class ReportExporter {
newExporter.setDriftDefinition(definition);
newExporter.setDriftPath(path);
newExporter.setDriftSnapshot(snapshot);
- newExporter.setFromDate(fromDate);
- newExporter.setToDate(toDate);
+ newExporter.setStartDate(fromDate);
+ newExporter.setEndDate(toDate);
return newExporter;
}
public static ReportExporter createExporterForRecentAlerts(String reportUrl, String[]
alertPriorityList, Date fromDate, Date toDate) {
ReportExporter newExportDialog = new ReportExporter(reportUrl);
newExportDialog.setAlertPriorityFilters(alertPriorityList);
- newExportDialog.setFromDate(fromDate);
- newExportDialog.setToDate(toDate);
+ newExportDialog.setStartDate(fromDate);
+ newExportDialog.setEndDate(toDate);
return newExportDialog;
}
public static ReportExporter createExporterForRecentOperations(String reportUrl,
String[] operationRequestStatuses, Date fromDate, Date toDate) {
ReportExporter newExportDialog = new ReportExporter(reportUrl);
newExportDialog.setOperationRequestStatusList(operationRequestStatuses);
- newExportDialog.setFromDate(fromDate);
- newExportDialog.setToDate(toDate);
+ newExportDialog.setStartDate(fromDate);
+ newExportDialog.setEndDate(toDate);
return newExportDialog;
}
@@ -142,7 +142,7 @@ public class ReportExporter {
if (showAllDetail) {
queryString.append("showAllDetails=").append("true");
- } else if (!resourceTypeIds.isEmpty()) {
+ } else if (null != resourceTypeIds && !resourceTypeIds.isEmpty()) {
queryString.append("resourceTypeId=").append(StringUtility.toString(resourceTypeIds));
}
@@ -183,11 +183,11 @@ public class ReportExporter {
}
// to/from Dates
- if(fromDate != null){
- queryString.append("fromDate=").append(fromDate.getTime());
+ if(startDate != null){
+ queryString.append("startTime=").append(startDate.getTime());
}
- if(toDate != null){
- queryString.append("toDate=").append(toDate.getTime());
+ if(endDate != null){
+ queryString.append("endTime=").append(endDate.getTime());
}
@@ -218,12 +218,12 @@ public class ReportExporter {
this.driftPath = driftPath;
}
- public void setFromDate(Date fromDate) {
- this.fromDate = fromDate;
+ public void setStartDate(Date startDate) {
+ this.startDate = startDate;
}
- public void setToDate(Date toDate) {
- this.toDate = toDate;
+ public void setEndDate(Date endDate) {
+ this.endDate = endDate;
}
public void export(){
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftHistoryView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftHistoryView.java
index 168cf14..f35a0f8 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftHistoryView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/drift/DriftHistoryView.java
@@ -42,7 +42,6 @@ import
org.rhq.enterprise.gui.coregui.client.inventory.resource.AncestryUtil;
import org.rhq.enterprise.gui.coregui.client.util.selenium.SeleniumUtility;
import java.util.ArrayList;
-import java.util.Date;
import java.util.LinkedHashMap;
/**
@@ -148,7 +147,6 @@ public class DriftHistoryView extends
StringIDTableSection<DriftDataSource> {
toDateFilter = new DateItem();
toDateFilter.setUseTextField(true);
toDateFilter.setTitle(MSG.filter_to_date());
- toDateFilter.setValue(new Date());
if (isShowFilterForm()) {
diff --git
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/OperationHistoryView.java
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/OperationHistoryView.java
index 021c78b..d2307fe 100644
---
a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/OperationHistoryView.java
+++
b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/operation/OperationHistoryView.java
@@ -45,7 +45,6 @@ import
org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.operation
import org.rhq.enterprise.gui.coregui.client.util.message.Message;
import java.util.ArrayList;
-import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
@@ -144,7 +143,6 @@ public class OperationHistoryView extends
TableSection<OperationHistoryDataSourc
toDateFilter = new DateItem();
toDateFilter.setUseTextField(true);
toDateFilter.setTitle(MSG.filter_to_date());
- toDateFilter.setValue(new Date());
if (isShowFilterForm()) {
setFilterFormItems(fromDateFilter, toDateFilter, statusFilter);
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentAlertHandler.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentAlertHandler.java
index f4687db..be8ed5f 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentAlertHandler.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentAlertHandler.java
@@ -2,10 +2,10 @@ package org.rhq.enterprise.server.rest.reporting;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.rhq.core.domain.alert.*;
import org.rhq.core.domain.criteria.AlertCriteria;
import org.rhq.core.domain.measurement.MeasurementUnits;
import org.rhq.core.domain.util.PageList;
+import org.rhq.core.domain.util.PageOrdering;
import org.rhq.enterprise.server.alert.AlertManagerLocal;
import org.rhq.enterprise.server.rest.AbstractRestBean;
import org.rhq.enterprise.server.rest.SetCallerInterceptor;
@@ -23,6 +23,7 @@ import javax.ws.rs.core.UriInfo;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Set;
@@ -39,20 +40,28 @@ public class RecentAlertHandler extends AbstractRestBean implements
RecentAlertL
private AlertManagerLocal alertManager;
@Override
- public StreamingOutput recentAlerts(final String alertPriority, UriInfo uriInfo,
final HttpServletRequest request,
- HttpHeaders headers) {
+ public StreamingOutput recentAlerts(final String alertPriority, final Long startTime,
final Long endTime,
+ final UriInfo uriInfo, final HttpServletRequest
request,
+ final HttpHeaders headers) {
return new StreamingOutput() {
@Override
public void write(OutputStream stream) throws IOException,
WebApplicationException {
final AlertCriteria criteria = new AlertCriteria();
+ criteria.addSortCtime(PageOrdering.DESC);
- List<AlertPriority> alertPriorityList = new
ArrayList<AlertPriority>(10);
- String alertPriorities[] = alertPriority.split(",");
- for ( String alertPriorityValue : alertPriorities) {
- log.info("Alert Priority Filter set for: " +
alertPriorityValue);
-
alertPriorityList.add(AlertPriority.valueOf(alertPriorityValue.toUpperCase()));
+ if(startTime != null){
+ criteria.addFilterStartTime(startTime);
+ }
+ if(endTime != null){
+ criteria.addFilterEndTime(endTime);
+ }
+ // lets default the end time for them to now if they didnt enter it
+ if(startTime != null && endTime == null){
+ Date today = new Date();
+ criteria.addFilterEndTime(today.getTime());
}
- criteria.addFilterPriorities(alertPriorityList.toArray(new
AlertPriority[alertPriorityList.size()]));
+
+ criteria.addFilterPriorities(getAlertPriorities());
CriteriaQueryExecutor<Alert, AlertCriteria> queryExecutor =
new CriteriaQueryExecutor<Alert, AlertCriteria>() {
@@ -73,6 +82,18 @@ public class RecentAlertHandler extends AbstractRestBean implements
RecentAlertL
}
}
+
+ private AlertPriority[] getAlertPriorities() {
+ List<AlertPriority> alertPriorityList = new
ArrayList<AlertPriority>(10);
+ String alertPriorities[] = alertPriority.split(",");
+ for ( String alertPriorityValue : alertPriorities) {
+ log.info("Alert Priority Filter set for: " +
alertPriorityValue);
+
alertPriorityList.add(AlertPriority.valueOf(alertPriorityValue.toUpperCase()));
+ }
+
+ return alertPriorityList.toArray(new
AlertPriority[alertPriorityList.size()]);
+ }
+
private String toCSV(Alert alert) {
return formatDateTime(alert.getCtime()) + "," +
cleanForCSV(alert.getAlertDefinition().getName()) + ","
+
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentAlertLocal.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentAlertLocal.java
index 035f316..456fb90 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentAlertLocal.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentAlertLocal.java
@@ -2,11 +2,7 @@ package org.rhq.enterprise.server.rest.reporting;
import javax.ejb.Local;
import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
+import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.StreamingOutput;
@@ -21,6 +17,8 @@ public interface RecentAlertLocal {
@Produces({"text/csv", "application/xml"})
StreamingOutput recentAlerts(
@QueryParam("alertPriority")
@DefaultValue("high,medium,low") String alertPriority,
+ @QueryParam("startTime") Long startTime,
+ @QueryParam("endTime") Long endTime,
@Context UriInfo uriInfo,
@Context HttpServletRequest request,
@Context HttpHeaders headers);
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentDriftHandler.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentDriftHandler.java
index fb30273..686e430 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentDriftHandler.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentDriftHandler.java
@@ -24,6 +24,7 @@ import javax.ws.rs.core.UriInfo;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import static org.rhq.enterprise.server.rest.reporting.ReportFormatHelper.cleanForCSV;
@@ -52,6 +53,19 @@ public class RecentDriftHandler extends AbstractRestBean implements
RecentDriftL
criteria.fetchChangeSet(true);
criteria.addFilterChangeSetStartVersion(1);// always start at 1 for this
report
+ if(startTime != null){
+ criteria.addFilterStartTime(startTime);
+ }
+ if(endTime != null){
+ criteria.addFilterEndTime(endTime);
+ }
+ // lets default the end time for them to now if they didnt enter it
+ if(startTime != null && endTime == null){
+ Date today = new Date();
+ criteria.addFilterEndTime(today.getTime());
+ }
+
+
if(snapshot != null){
log.info("Drift Snapshot version Filter set for: " +
snapshot);
criteria.addFilterChangeSetEndVersion(snapshot);
@@ -62,23 +76,10 @@ public class RecentDriftHandler extends AbstractRestBean implements
RecentDriftL
}
if(definition != null){
log.info("Drift Definition Filter set for: " +
definition);
- criteria.addFilterId(path);
+ //@todo: drift sorting is done in the resultset after no criteria for
definition
}
- List<DriftCategory> driftCategoryList = new
ArrayList<DriftCategory>(10);
- String categoryArray[] = categories.split(",");
- for (String category : categoryArray) {
- log.info("DriftCategories Filter set for: " + category);
-
driftCategoryList.add(DriftCategory.valueOf(category.toUpperCase()));
- }
- criteria.addFilterCategories(driftCategoryList.toArray(new
DriftCategory[driftCategoryList.size()]));
-
- if(startTime != null){
- criteria.addFilterStartTime(startTime);
- }
- if(endTime != null){
- criteria.addFilterEndTime(endTime);
- }
+ criteria.addFilterCategories(getCategories());
CriteriaQueryExecutor<DriftComposite, DriftCriteria> queryExecutor
=
new CriteriaQueryExecutor<DriftComposite, DriftCriteria>()
{
@@ -99,6 +100,17 @@ public class RecentDriftHandler extends AbstractRestBean implements
RecentDriftL
}
}
+
+ private DriftCategory[] getCategories() {
+ List<DriftCategory> driftCategoryList = new
ArrayList<DriftCategory>(10);
+ String categoryArray[] = categories.split(",");
+ for (String category : categoryArray) {
+ log.info("DriftCategories Filter set for: " + category);
+
driftCategoryList.add(DriftCategory.valueOf(category.toUpperCase()));
+ }
+ return (driftCategoryList.toArray(new
DriftCategory[driftCategoryList.size()]));
+ }
+
private String toCSV(DriftComposite drift) {
return formatDateTime(drift.getDrift().getCtime()) + "," +
cleanForCSV(drift.getDriftDefinitionName()) + "," +
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentOperationsHandler.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentOperationsHandler.java
index 3ce9a93..4064a09 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentOperationsHandler.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentOperationsHandler.java
@@ -6,6 +6,7 @@ import org.rhq.core.domain.criteria.ResourceOperationHistoryCriteria;
import org.rhq.core.domain.operation.OperationRequestStatus;
import org.rhq.core.domain.operation.ResourceOperationHistory;
import org.rhq.core.domain.util.PageList;
+import org.rhq.core.domain.util.PageOrdering;
import org.rhq.enterprise.server.operation.OperationManagerLocal;
import org.rhq.enterprise.server.rest.AbstractRestBean;
import org.rhq.enterprise.server.rest.SetCallerInterceptor;
@@ -23,6 +24,7 @@ import javax.ws.rs.core.UriInfo;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import static org.rhq.enterprise.server.rest.reporting.ReportFormatHelper.cleanForCSV;
@@ -33,16 +35,32 @@ import static
org.rhq.enterprise.server.rest.reporting.ReportFormatHelper.format
public class RecentOperationsHandler extends AbstractRestBean implements
RecentOperationsLocal {
private final Log log = LogFactory.getLog(RecentOperationsHandler.class);
+
@EJB
private OperationManagerLocal operationManager;
@Override
- public StreamingOutput recentOperations(final String operationRequestStatus, UriInfo
uriInfo,
- final HttpServletRequest request, HttpHeaders headers) {
+ public StreamingOutput recentOperations(final String operationRequestStatus,
+ final Long startTime, final Long endTime,
final UriInfo uriInfo,
+ final HttpServletRequest request, final
HttpHeaders headers) {
return new StreamingOutput() {
@Override
public void write(OutputStream stream) throws IOException,
WebApplicationException {
final ResourceOperationHistoryCriteria criteria = new
ResourceOperationHistoryCriteria();
+ criteria.addSortEndTime(PageOrdering.DESC);
+
+ if(startTime != null){
+ criteria.addFilterStartTime(startTime);
+ }
+ if(endTime != null){
+ criteria.addFilterEndTime(endTime);
+ }
+ // lets default the end time for them to now if they didnt enter it
+ if(startTime != null && endTime == null){
+ Date today = new Date();
+ criteria.addFilterEndTime(today.getTime());
+ }
+
List<OperationRequestStatus> operationRequestStatusList = new
ArrayList<OperationRequestStatus>(10);
String statuses[] = operationRequestStatus.split(",");
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentOperationsLocal.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentOperationsLocal.java
index d27d236..64077b1 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentOperationsLocal.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/reporting/RecentOperationsLocal.java
@@ -2,11 +2,7 @@ package org.rhq.enterprise.server.rest.reporting;
import javax.ejb.Local;
import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.DefaultValue;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
+import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.StreamingOutput;
@@ -21,6 +17,8 @@ public interface RecentOperationsLocal {
@Produces({"text/csv", "application/xml"})
StreamingOutput recentOperations(
@QueryParam("operationRequestStatus")
@DefaultValue("inprogress,success,failure,cancelled") String
operationRequestStatus,
+ @QueryParam("startTime") Long startTime,
+ @QueryParam("endTime") Long endTime,
@Context UriInfo uriInfo,
@Context HttpServletRequest request,
@Context HttpHeaders headers);