use of org.opennms.netmgt.model.ResourceReference in project opennms by OpenNMS.
the class DefaultStatisticsReportServiceTest method testDatumWithNonExistentResource.
@Test
public void testDatumWithNonExistentResource() {
StatisticsReport report = new StatisticsReport();
report.setId(1);
StatisticsReportData datum = new StatisticsReportData();
ResourceReference resourceRef = new ResourceReference();
resourceRef.setId(1);
resourceRef.setResourceId("node[1].interfaceSnmp[en0]");
datum.setId(1);
datum.setResource(resourceRef);
datum.setReport(report);
datum.setValue(0.1d);
report.addData(datum);
StatisticsReportCommand command = new StatisticsReportCommand();
command.setId(report.getId());
BindException errors = new BindException(command, "");
expect(m_statisticsReportDao.load(report.getId())).andReturn(report);
m_statisticsReportDao.initialize(report);
m_statisticsReportDao.initialize(report.getData());
expect(m_resourceDao.getResourceById(ResourceId.fromString(resourceRef.getResourceId()))).andReturn(null);
m_mocks.replayAll();
StatisticsReportModel model = m_service.getReport(command, errors);
assertNotNull("model should not be null", model);
assertNotNull("model.getData() should not be null", model.getData());
SortedSet<Datum> data = model.getData();
assertEquals("data size", 1, data.size());
Datum d = data.first();
assertNotNull("first datum should not be null", d);
assertNull("first datum resource should be null", d.getResource());
}
use of org.opennms.netmgt.model.ResourceReference in project opennms by OpenNMS.
the class DatabaseReportPersister method getResourceReference.
private ResourceReference getResourceReference(String id) {
ResourceReference resource = m_resourceReferenceDao.getByResourceId(id);
if (resource != null) {
return resource;
}
resource = new ResourceReference();
resource.setResourceId(id);
m_resourceReferenceDao.save(resource);
return resource;
}
use of org.opennms.netmgt.model.ResourceReference in project opennms by OpenNMS.
the class DatabaseReportPersister method persist.
/**
* {@inheritDoc}
*/
@Override
public void persist(ReportInstance report) {
StatisticsReport dbReport = new StatisticsReport();
dbReport.setName(report.getName());
dbReport.setDescription(report.getDescription());
dbReport.setStartDate(new Date(report.getStartTime()));
dbReport.setEndDate(new Date(report.getEndTime()));
dbReport.setJobStartedDate(report.getJobStartedDate());
dbReport.setJobCompletedDate(report.getJobCompletedDate());
dbReport.setPurgeDate(new Date(report.getJobCompletedDate().getTime() + report.getRetainInterval()));
for (AttributeStatistic stat : report.getResults()) {
ResourceReference resource = getResourceReference(stat.getAttribute().getResource().getId().toString());
StatisticsReportData data = new StatisticsReportData();
data.setResource(resource);
data.setReport(dbReport);
data.setValue(stat.getStatistic());
dbReport.addData(data);
LOG.debug("Adding {}", data);
}
if (dbReport.getData().isEmpty()) {
LOG.warn("Cannot store {} because it doesn't contain data. Probably all the metrics are NaN for the report period.", report);
} else {
m_statisticsReportDao.save(dbReport);
}
}
use of org.opennms.netmgt.model.ResourceReference in project opennms by OpenNMS.
the class StatisticsReportsIT method hasReportLinkThatMatchDescription.
@Test
public void hasReportLinkThatMatchDescription() throws Exception {
Date startOfTest = new Date();
HibernateDaoFactory daoFactory = new HibernateDaoFactory(getPostgresService());
ResourceReferenceDao resourceReferenceDao = daoFactory.getDao(ResourceReferenceDaoHibernate.class);
StatisticsReportDao statisticsReportDao = daoFactory.getDao(StatisticsReportDaoHibernate.class);
StatisticsReport report = new StatisticsReport();
report.setName("Top10_Response_Hourly");
report.setDescription("Hourly Top 10 responses across all nodes");
report.setStartDate(new Date());
report.setEndDate(new Date());
report.setJobStartedDate(new Date());
report.setJobCompletedDate(new Date());
report.setPurgeDate(new Date());
ResourceReference resource = new ResourceReference();
resource.setResourceId("node1");
resourceReferenceDao.save(resource);
StatisticsReportData data = new StatisticsReportData();
data.setReport(report);
data.setResource(resource);
data.setValue(4.0);
report.addData(data);
statisticsReportDao.save(report);
await().atMost(1, MINUTES).pollInterval(5, SECONDS).until(DaoUtils.findMatchingCallable(statisticsReportDao, new CriteriaBuilder(StatisticsReport.class).ge("startDate", startOfTest).toCriteria()), notNullValue());
m_driver.navigate().refresh();
assertNotNull(findElementByLink("Hourly Top 10 responses across all nodes"));
}
use of org.opennms.netmgt.model.ResourceReference in project opennms by OpenNMS.
the class StatisticsReportDaoIT method testSave.
@Test
@Transactional
public void testSave() throws Exception {
StatisticsReport report = new StatisticsReport();
report.setName("A Mighty Fine Report");
report.setDescription("hello!");
report.setStartDate(new Date());
report.setEndDate(new Date());
report.setJobStartedDate(new Date());
report.setJobCompletedDate(new Date());
report.setPurgeDate(new Date());
{
ResourceReference resource = new ResourceReference();
resource.setResourceId("foo");
m_resourceReferenceDao.save(resource);
StatisticsReportData data = new StatisticsReportData();
data.setReport(report);
data.setResource(resource);
data.setValue(0.0);
report.addData(data);
}
{
ResourceReference resource = new ResourceReference();
resource.setResourceId("bar");
m_resourceReferenceDao.save(resource);
StatisticsReportData data = new StatisticsReportData();
data.setReport(report);
data.setResource(resource);
data.setValue(0.0);
report.addData(data);
}
m_statisticsReportDao.save(report);
}
Aggregations