2021-03-10 19:11:17 +01:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
package org.gcube.documentstore.persistence;
|
|
|
|
|
|
|
|
import org.gcube.accounting.datamodel.UsageRecord;
|
2021-03-15 15:03:42 +01:00
|
|
|
import org.gcube.accounting.datamodel.aggregation.AggregatedJobUsageRecord;
|
|
|
|
import org.gcube.accounting.datamodel.aggregation.AggregatedPortletUsageRecord;
|
2021-03-15 11:56:13 +01:00
|
|
|
import org.gcube.accounting.datamodel.aggregation.AggregatedServiceUsageRecord;
|
2021-03-15 15:03:42 +01:00
|
|
|
import org.gcube.accounting.datamodel.aggregation.AggregatedStorageStatusRecord;
|
2021-03-15 11:56:13 +01:00
|
|
|
import org.gcube.accounting.datamodel.aggregation.AggregatedStorageUsageRecord;
|
2021-03-15 15:03:42 +01:00
|
|
|
import org.gcube.accounting.datamodel.usagerecords.JobUsageRecord;
|
|
|
|
import org.gcube.accounting.datamodel.usagerecords.PortletUsageRecord;
|
2021-03-15 11:56:13 +01:00
|
|
|
import org.gcube.accounting.datamodel.usagerecords.ServiceUsageRecord;
|
2021-03-15 15:03:42 +01:00
|
|
|
import org.gcube.accounting.datamodel.usagerecords.StorageStatusRecord;
|
2021-03-15 11:56:13 +01:00
|
|
|
import org.gcube.accounting.datamodel.usagerecords.StorageUsageRecord;
|
2021-03-10 19:11:17 +01:00
|
|
|
import org.gcube.common.authorization.client.exceptions.ObjectNotFound;
|
|
|
|
import org.junit.Assert;
|
|
|
|
import org.junit.Test;
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @author Luca Frosini (ISTI - CNR)
|
|
|
|
*/
|
|
|
|
public class PersistencePostgreSQLTest extends ContextTest {
|
|
|
|
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(PersistencePostgreSQLTest.class);
|
|
|
|
|
2021-03-12 19:13:57 +01:00
|
|
|
/*
|
2021-03-10 19:11:17 +01:00
|
|
|
protected UsageRecord getTestServiceUsageRecord() throws Exception {
|
|
|
|
AggregatedServiceUsageRecord serviceUsageRecord = new AggregatedServiceUsageRecord();
|
|
|
|
serviceUsageRecord.setAggregated(true);
|
|
|
|
|
|
|
|
Calendar creationTime = Calendar.getInstance();
|
|
|
|
serviceUsageRecord.setCreationTime(creationTime);
|
|
|
|
|
|
|
|
Calendar startTime = Calendar.getInstance();
|
|
|
|
serviceUsageRecord.setStartTime(startTime);
|
|
|
|
|
|
|
|
serviceUsageRecord.setCalledMethod("createResource");
|
|
|
|
serviceUsageRecord.setCallerHost("localhost");
|
|
|
|
serviceUsageRecord.setHost("localhost");
|
|
|
|
serviceUsageRecord.setConsumerId("luca.frosini");
|
|
|
|
serviceUsageRecord.setCallerQualifier("TOKEN");
|
|
|
|
serviceUsageRecord.setDuration((long) 100);
|
|
|
|
|
|
|
|
serviceUsageRecord.setMaxInvocationTime((long) 150);
|
|
|
|
serviceUsageRecord.setMinInvocationTime((long) 50);
|
|
|
|
serviceUsageRecord.setOperationCount(9);
|
|
|
|
serviceUsageRecord.setOperationResult(OperationResult.SUCCESS);
|
|
|
|
serviceUsageRecord.setScope(ContextTest.getCurrentContextFullName());
|
|
|
|
|
|
|
|
Calendar endTime = Calendar.getInstance();
|
|
|
|
endTime.add(Calendar.MINUTE, 5);
|
|
|
|
serviceUsageRecord.setEndTime(endTime);
|
|
|
|
|
|
|
|
serviceUsageRecord.setServiceClass("information-system");
|
|
|
|
serviceUsageRecord.setServiceName("resource-registry");
|
|
|
|
|
|
|
|
return serviceUsageRecord;
|
|
|
|
}
|
2021-03-12 19:13:57 +01:00
|
|
|
*/
|
2021-03-15 15:03:42 +01:00
|
|
|
protected AggregatedJobUsageRecord getTestAggregatedJobUsageRecord() throws Exception {
|
|
|
|
JobUsageRecord jobUsageRecord = TestUsageRecord.createTestJobUsageRecord();
|
|
|
|
AggregatedJobUsageRecord aggregatedJobUsageRecord = new AggregatedJobUsageRecord(jobUsageRecord);
|
|
|
|
return aggregatedJobUsageRecord;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected AggregatedPortletUsageRecord getTestAggregatedPortletUsageRecord() throws Exception {
|
|
|
|
PortletUsageRecord portletUsageRecord = TestUsageRecord.createTestPortletUsageRecord();
|
|
|
|
AggregatedPortletUsageRecord aggregatedPortletUsageRecord = new AggregatedPortletUsageRecord(portletUsageRecord);
|
|
|
|
return aggregatedPortletUsageRecord;
|
|
|
|
}
|
|
|
|
|
2021-03-15 15:09:15 +01:00
|
|
|
protected AggregatedServiceUsageRecord getTestAggregatedServiceUsageRecord() throws Exception {
|
|
|
|
ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecord();
|
|
|
|
AggregatedServiceUsageRecord aggregatedServiceUsageRecord = new AggregatedServiceUsageRecord(serviceUsageRecord);
|
|
|
|
return aggregatedServiceUsageRecord;
|
|
|
|
}
|
|
|
|
|
2021-03-15 15:03:42 +01:00
|
|
|
protected AggregatedStorageStatusRecord getTestAggregatedStorageStatusRecord() throws Exception {
|
|
|
|
StorageStatusRecord storageStatusRecord = TestUsageRecord.createTestStorageVolumeUsageRecord();
|
|
|
|
AggregatedStorageStatusRecord aggregatedStorageStatusRecord = new AggregatedStorageStatusRecord(storageStatusRecord);
|
|
|
|
return aggregatedStorageStatusRecord;
|
|
|
|
}
|
|
|
|
|
2021-03-15 15:09:15 +01:00
|
|
|
protected AggregatedStorageUsageRecord getTestAggregatedStorageUsageRecord() throws Exception {
|
|
|
|
StorageUsageRecord storageUsageRecord = TestUsageRecord.createTestStorageUsageRecord();
|
|
|
|
AggregatedStorageUsageRecord aggregatedStorageUsageRecord = new AggregatedStorageUsageRecord(storageUsageRecord);
|
|
|
|
return aggregatedStorageUsageRecord;
|
|
|
|
}
|
|
|
|
|
2021-03-10 19:11:17 +01:00
|
|
|
@Test
|
|
|
|
public void testSQLStatementString() throws Exception {
|
|
|
|
PersistencePostgreSQL persistencePostgreSQL = new PersistencePostgreSQL();
|
2021-03-15 15:03:42 +01:00
|
|
|
|
|
|
|
UsageRecord usageRecord = getTestAggregatedJobUsageRecord();
|
2021-03-10 19:11:17 +01:00
|
|
|
String sql = persistencePostgreSQL.getSQLInsertCommand(usageRecord);
|
|
|
|
logger.debug(sql);
|
2021-03-12 19:13:57 +01:00
|
|
|
|
2021-03-15 15:03:42 +01:00
|
|
|
usageRecord = getTestAggregatedPortletUsageRecord();
|
|
|
|
sql = persistencePostgreSQL.getSQLInsertCommand(usageRecord);
|
|
|
|
logger.debug(sql);
|
|
|
|
|
|
|
|
usageRecord = getTestAggregatedServiceUsageRecord();
|
|
|
|
sql = persistencePostgreSQL.getSQLInsertCommand(usageRecord);
|
|
|
|
logger.debug(sql);
|
|
|
|
|
|
|
|
usageRecord = getTestAggregatedStorageStatusRecord();
|
|
|
|
sql = persistencePostgreSQL.getSQLInsertCommand(usageRecord);
|
|
|
|
logger.debug(sql);
|
|
|
|
|
|
|
|
usageRecord = getTestAggregatedStorageUsageRecord();
|
2021-03-12 19:13:57 +01:00
|
|
|
sql = persistencePostgreSQL.getSQLInsertCommand(usageRecord);
|
|
|
|
logger.debug(sql);
|
2021-03-10 19:11:17 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void persistenceIsPostgreSQL() throws ObjectNotFound, Exception {
|
|
|
|
logger.debug("Going to check if the Persistence is CouchBase");
|
|
|
|
PersistenceBackendFactory.setFallbackLocation(null);
|
|
|
|
String context = ContextTest.getCurrentContextFullName();
|
|
|
|
FallbackPersistenceBackend fallbackPersistenceBackend = PersistenceBackendFactory.createFallback(context);
|
|
|
|
|
|
|
|
PersistenceBackend persistenceBackend = PersistenceBackendFactory.rediscoverPersistenceBackend(fallbackPersistenceBackend, context);
|
|
|
|
|
|
|
|
Assert.assertTrue(persistenceBackend instanceof PersistencePostgreSQL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2021-03-12 19:13:57 +01:00
|
|
|
|
|
|
|
@Test
|
|
|
|
public void testInsertRecords() throws ObjectNotFound, Exception {
|
|
|
|
PersistenceBackendFactory.setFallbackLocation(null);
|
|
|
|
String context = ContextTest.getCurrentContextFullName();
|
|
|
|
FallbackPersistenceBackend fallbackPersistenceBackend = PersistenceBackendFactory.createFallback(context);
|
|
|
|
PersistenceBackend persistenceBackend = PersistenceBackendFactory.rediscoverPersistenceBackend(fallbackPersistenceBackend, context);
|
|
|
|
Assert.assertTrue(persistenceBackend instanceof PersistencePostgreSQL);
|
|
|
|
PersistencePostgreSQL persistencePostgreSQL = (PersistencePostgreSQL) persistenceBackend;
|
|
|
|
persistencePostgreSQL.newConnection();
|
|
|
|
for(int i=0; i<10; i++) {
|
2021-03-15 15:03:42 +01:00
|
|
|
UsageRecord usageRecord = getTestAggregatedJobUsageRecord();
|
|
|
|
persistencePostgreSQL.insert(usageRecord);
|
|
|
|
|
|
|
|
usageRecord = getTestAggregatedPortletUsageRecord();
|
|
|
|
persistencePostgreSQL.insert(usageRecord);
|
|
|
|
|
|
|
|
usageRecord = getTestAggregatedServiceUsageRecord();
|
|
|
|
persistencePostgreSQL.insert(usageRecord);
|
|
|
|
|
|
|
|
usageRecord = getTestAggregatedStorageStatusRecord();
|
2021-03-15 11:56:13 +01:00
|
|
|
persistencePostgreSQL.insert(usageRecord);
|
2021-03-15 15:03:42 +01:00
|
|
|
|
|
|
|
|
2021-03-15 11:56:13 +01:00
|
|
|
usageRecord = getTestAggregatedStorageUsageRecord();
|
2021-03-12 19:13:57 +01:00
|
|
|
persistencePostgreSQL.insert(usageRecord);
|
2021-03-15 15:03:42 +01:00
|
|
|
|
2021-03-12 19:13:57 +01:00
|
|
|
}
|
|
|
|
persistencePostgreSQL.commitAndClose();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2021-03-10 19:11:17 +01:00
|
|
|
}
|