Implementing One Test Usage Record for each Type
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/accounting/accounting-lib@115557 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
5afd95bfa3
commit
99f823c9bb
|
@ -3,8 +3,13 @@
|
||||||
*/
|
*/
|
||||||
package org.gcube.accounting.datamodel;
|
package org.gcube.accounting.datamodel;
|
||||||
|
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
|
|
||||||
import org.gcube.accounting.datamodel.UsageRecord.OperationResult;
|
import org.gcube.accounting.datamodel.UsageRecord.OperationResult;
|
||||||
import org.gcube.accounting.datamodel.implementations.ServiceUsageRecord;
|
import org.gcube.accounting.datamodel.implementations.ServiceUsageRecord;
|
||||||
|
import org.gcube.accounting.datamodel.implementations.StorageUsageRecord;
|
||||||
|
import org.gcube.accounting.datamodel.implementations.StorageUsageRecord.OperationType;
|
||||||
import org.gcube.accounting.exception.InvalidValueException;
|
import org.gcube.accounting.exception.InvalidValueException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -29,8 +34,8 @@ public class TestUsageRecord {
|
||||||
public final static String TEST_PROPERTY_NAME = "TestPropertyName";
|
public final static String TEST_PROPERTY_NAME = "TestPropertyName";
|
||||||
public final static String TEST_PROPERTY_VALUE = "TestPropertyValue";
|
public final static String TEST_PROPERTY_VALUE = "TestPropertyValue";
|
||||||
|
|
||||||
private final static long MIN = 60;
|
private final static long MIN_DURATION = 60; // millisec
|
||||||
private final static long MAX = 1000;
|
private final static long MAX_DURATION = 1000; // millisec
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate A Random long in a range between min and max.
|
* Generate A Random long in a range between min and max.
|
||||||
|
@ -42,31 +47,67 @@ public class TestUsageRecord {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a valid SingleUsageRecord
|
* Create a valid #ServiceUsageRecord
|
||||||
* @return the created UsageRecord
|
* @return the created #ServiceUsageRecord
|
||||||
*/
|
*/
|
||||||
public static SingleUsageRecord createTestUsageRecord() {
|
public static ServiceUsageRecord createTestServiceUsageRecord() {
|
||||||
ServiceUsageRecord serviceUsageRecord = new ServiceUsageRecord();
|
ServiceUsageRecord usageRecord = new ServiceUsageRecord();
|
||||||
try {
|
try {
|
||||||
serviceUsageRecord.setConsumerId(TEST_CONSUMER_ID);
|
usageRecord.setConsumerId(TEST_CONSUMER_ID);
|
||||||
serviceUsageRecord.setScope(TEST_SCOPE);
|
usageRecord.setScope(TEST_SCOPE);
|
||||||
serviceUsageRecord.setOperationResult(OperationResult.SUCCESS);
|
usageRecord.setOperationResult(OperationResult.SUCCESS);
|
||||||
|
|
||||||
serviceUsageRecord.setServiceClass(TEST_SERVICE_CLASS);
|
usageRecord.setServiceClass(TEST_SERVICE_CLASS);
|
||||||
serviceUsageRecord.setServiceName(TEST_SERVICE_NAME);
|
usageRecord.setServiceName(TEST_SERVICE_NAME);
|
||||||
|
|
||||||
serviceUsageRecord.setRefHost(TEST_REF_HOST);
|
usageRecord.setRefHost(TEST_REF_HOST);
|
||||||
serviceUsageRecord.setRefVM(TEST_REF_VM);
|
usageRecord.setRefVM(TEST_REF_VM);
|
||||||
|
|
||||||
serviceUsageRecord.setDuration(generateRandomLong(MIN, MAX));
|
usageRecord.setDuration(generateRandomLong(MIN_DURATION, MAX_DURATION));
|
||||||
|
|
||||||
serviceUsageRecord.setResourceProperty(TEST_PROPERTY_NAME, TEST_PROPERTY_VALUE);
|
usageRecord.setResourceProperty(TEST_PROPERTY_NAME, TEST_PROPERTY_VALUE);
|
||||||
|
|
||||||
} catch (InvalidValueException e) {
|
} catch (InvalidValueException e) {
|
||||||
logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Creating a test Usage Record", e.getCause());
|
logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Creating a test Usage Record", e.getCause());
|
||||||
}
|
}
|
||||||
return serviceUsageRecord;
|
return usageRecord;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final static String TEST_RESOUCE_OWNER = "resource.owner";
|
||||||
|
public final static String TEST_RESOUCE_SCOPE = TEST_SCOPE;
|
||||||
|
|
||||||
|
public final static String TEST_OBJECT_URI = "testprotocol://objectURI";
|
||||||
|
|
||||||
|
private final static long MIN_DATA_VOLUME = 1024;
|
||||||
|
private final static long MAX_DATA_VOLUME = 10240;
|
||||||
|
/**
|
||||||
|
* Create a valid #StorageUsageRecord
|
||||||
|
* @return the created #StorageUsageRecord
|
||||||
|
*/
|
||||||
|
public static StorageUsageRecord createTestStorageUsageRecord() {
|
||||||
|
StorageUsageRecord usageRecord = new StorageUsageRecord();
|
||||||
|
try {
|
||||||
|
usageRecord.setConsumerId(TEST_CONSUMER_ID);
|
||||||
|
usageRecord.setScope(TEST_SCOPE);
|
||||||
|
usageRecord.setOperationResult(OperationResult.SUCCESS);
|
||||||
|
|
||||||
|
usageRecord.setResourceOwner(TEST_RESOUCE_OWNER);
|
||||||
|
usageRecord.setResourceScope(TEST_RESOUCE_SCOPE);
|
||||||
|
|
||||||
|
usageRecord.setObjectURI(new URI(TEST_OBJECT_URI));
|
||||||
|
usageRecord.setOperationType(OperationType.READ);
|
||||||
|
|
||||||
|
//usageRecord.setDataType();
|
||||||
|
usageRecord.setDataVolume(generateRandomLong(MIN_DATA_VOLUME, MAX_DATA_VOLUME));
|
||||||
|
|
||||||
|
|
||||||
|
usageRecord.setResourceProperty(TEST_PROPERTY_NAME, TEST_PROPERTY_VALUE);
|
||||||
|
|
||||||
|
} catch (InvalidValueException | URISyntaxException e) {
|
||||||
|
logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Creating a test Usage Record", e.getCause());
|
||||||
|
}
|
||||||
|
return usageRecord;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,17 +25,34 @@ public class ServiceUsageRecord extends BasicUsageRecord implements SingleUsageR
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -4214891294699473587L;
|
private static final long serialVersionUID = -4214891294699473587L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
@ValidIP
|
@ValidIP
|
||||||
public static final String CALLER_IP = "callerIP";
|
public static final String CALLER_IP = "callerIP";
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
@RequiredField @NotEmpty
|
@RequiredField @NotEmpty
|
||||||
public static final String REF_HOST = "refHost";
|
public static final String REF_HOST = "refHost";
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
@RequiredField @NotEmpty
|
@RequiredField @NotEmpty
|
||||||
public static final String REF_VM = "refVM";
|
public static final String REF_VM = "refVM";
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
@RequiredField @NotEmpty
|
@RequiredField @NotEmpty
|
||||||
public static final String SERVICE_CLASS = "serviceClass";
|
public static final String SERVICE_CLASS = "serviceClass";
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
@RequiredField @NotEmpty
|
@RequiredField @NotEmpty
|
||||||
public static final String SERVICE_NAME = "serviceName";
|
public static final String SERVICE_NAME = "serviceName";
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
@RequiredField @ValidLong
|
@RequiredField @ValidLong
|
||||||
public static final String DURATION = "duration";
|
public static final String DURATION = "duration";
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,9 @@ public class StorageUsageRecord extends BasicUsageRecord implements SingleUsageR
|
||||||
CREATE, READ, UPDATE, DELETE, COPY, MOVE
|
CREATE, READ, UPDATE, DELETE, COPY, MOVE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
@RequiredField @NotEmpty
|
@RequiredField @NotEmpty
|
||||||
public static final String RESOURCE_OWNER = "resourceOwner";
|
public static final String RESOURCE_OWNER = "resourceOwner";
|
||||||
@RequiredField @NotEmpty
|
@RequiredField @NotEmpty
|
||||||
|
@ -48,6 +51,10 @@ public class StorageUsageRecord extends BasicUsageRecord implements SingleUsageR
|
||||||
public static final String OPERATION_TYPE = "operationType";
|
public static final String OPERATION_TYPE = "operationType";
|
||||||
@RequiredField @NotEmpty
|
@RequiredField @NotEmpty
|
||||||
public static final String DATA_TYPE = "dataType";
|
public static final String DATA_TYPE = "dataType";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Quantity of data in terms of KB
|
||||||
|
*/
|
||||||
@RequiredField @ValidLong
|
@RequiredField @ValidLong
|
||||||
public static final String DATA_VOLUME = "dataVolume";
|
public static final String DATA_VOLUME = "dataVolume";
|
||||||
|
|
||||||
|
@ -115,11 +122,11 @@ public class StorageUsageRecord extends BasicUsageRecord implements SingleUsageR
|
||||||
setResourceProperty(OBJECT_URI, objectURI);
|
setResourceProperty(OBJECT_URI, objectURI);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getOperationType() {
|
public OperationType getOperationType() {
|
||||||
return (String) this.resourceProperties.get(OPERATION_TYPE);
|
return (OperationType) this.resourceProperties.get(OPERATION_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOperationType(String operationType) throws InvalidValueException {
|
public void setOperationType(OperationType operationType) throws InvalidValueException {
|
||||||
setResourceProperty(OPERATION_TYPE, operationType);
|
setResourceProperty(OPERATION_TYPE, operationType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -73,7 +73,7 @@ public abstract class Persistence {
|
||||||
if(persistence==null){
|
if(persistence==null){
|
||||||
persistence = fallback;
|
persistence = fallback;
|
||||||
}
|
}
|
||||||
persistence.account(TestUsageRecord.createTestUsageRecord());
|
persistence.account(TestUsageRecord.createTestServiceUsageRecord());
|
||||||
} catch(Exception e){
|
} catch(Exception e){
|
||||||
logger.error("Unable to instance a Persistence Implementation. Using fallback as default",
|
logger.error("Unable to instance a Persistence Implementation. Using fallback as default",
|
||||||
e.getCause());
|
e.getCause());
|
||||||
|
|
|
@ -15,7 +15,7 @@ public class UsageRecordTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCompareToSameObject() throws InvalidValueException {
|
public void testCompareToSameObject() throws InvalidValueException {
|
||||||
UsageRecord usageRecord = TestUsageRecord.createTestUsageRecord();
|
UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord();
|
||||||
UsageRecord ur = usageRecord;
|
UsageRecord ur = usageRecord;
|
||||||
Assert.assertEquals(0, usageRecord.compareTo(ur));
|
Assert.assertEquals(0, usageRecord.compareTo(ur));
|
||||||
Assert.assertEquals(0, ur.compareTo(usageRecord));
|
Assert.assertEquals(0, ur.compareTo(usageRecord));
|
||||||
|
@ -23,7 +23,7 @@ public class UsageRecordTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCompareToEqualsObject() throws Exception {
|
public void testCompareToEqualsObject() throws Exception {
|
||||||
UsageRecord usageRecord = TestUsageRecord.createTestUsageRecord();
|
UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord();
|
||||||
UsageRecord ur = BasicUsageRecord.getUsageRecord(usageRecord.getResourceProperties());
|
UsageRecord ur = BasicUsageRecord.getUsageRecord(usageRecord.getResourceProperties());
|
||||||
Assert.assertEquals(0, usageRecord.compareTo(ur));
|
Assert.assertEquals(0, usageRecord.compareTo(ur));
|
||||||
Assert.assertEquals(0, ur.compareTo(usageRecord));
|
Assert.assertEquals(0, ur.compareTo(usageRecord));
|
||||||
|
@ -31,7 +31,7 @@ public class UsageRecordTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCompareToComparedAddedProperty() throws Exception {
|
public void testCompareToComparedAddedProperty() throws Exception {
|
||||||
UsageRecord usageRecord = TestUsageRecord.createTestUsageRecord();
|
UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord();
|
||||||
UsageRecord ur = BasicUsageRecord.getUsageRecord(usageRecord.getResourceProperties());
|
UsageRecord ur = BasicUsageRecord.getUsageRecord(usageRecord.getResourceProperties());
|
||||||
for(int i=1; i<31; i++){
|
for(int i=1; i<31; i++){
|
||||||
ur.setResourceProperty(Integer.toString(i), i);
|
ur.setResourceProperty(Integer.toString(i), i);
|
||||||
|
@ -42,7 +42,7 @@ public class UsageRecordTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCompareToDifferentForAddedProperties() throws Exception {
|
public void testCompareToDifferentForAddedProperties() throws Exception {
|
||||||
UsageRecord usageRecord = TestUsageRecord.createTestUsageRecord();
|
UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord();
|
||||||
UsageRecord ur = BasicUsageRecord.getUsageRecord(usageRecord.getResourceProperties());
|
UsageRecord ur = BasicUsageRecord.getUsageRecord(usageRecord.getResourceProperties());
|
||||||
usageRecord.setResourceProperty(Integer.toString(1), 2);
|
usageRecord.setResourceProperty(Integer.toString(1), 2);
|
||||||
ur.setResourceProperty(Integer.toString(2), 2);
|
ur.setResourceProperty(Integer.toString(2), 2);
|
||||||
|
@ -52,8 +52,8 @@ public class UsageRecordTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCompareToDifferentFromCreation() throws Exception {
|
public void testCompareToDifferentFromCreation() throws Exception {
|
||||||
UsageRecord usageRecord = TestUsageRecord.createTestUsageRecord();
|
UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord();
|
||||||
UsageRecord ur = TestUsageRecord.createTestUsageRecord();
|
UsageRecord ur = TestUsageRecord.createTestServiceUsageRecord();
|
||||||
Assert.assertEquals(1, usageRecord.compareTo(ur));
|
Assert.assertEquals(1, usageRecord.compareTo(ur));
|
||||||
Assert.assertEquals(1, ur.compareTo(usageRecord));
|
Assert.assertEquals(1, ur.compareTo(usageRecord));
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ public class ServiceUsageRecordAggregationStrategyTest {
|
||||||
@Test
|
@Test
|
||||||
public void secondAsNotAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions {
|
public void secondAsNotAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions {
|
||||||
|
|
||||||
ServiceUsageRecord serviceUsageRecord = (ServiceUsageRecord) TestUsageRecord.createTestUsageRecord();
|
ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecord();
|
||||||
serviceUsageRecord.validate();
|
serviceUsageRecord.validate();
|
||||||
logger.debug("ServiceUsageRecord : {}", serviceUsageRecord);
|
logger.debug("ServiceUsageRecord : {}", serviceUsageRecord);
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ public class ServiceUsageRecordAggregationStrategyTest {
|
||||||
logger.debug("ServiceUsageRecord Converted to Aggregated: {}", aggregated);
|
logger.debug("ServiceUsageRecord Converted to Aggregated: {}", aggregated);
|
||||||
aggregated.validate();
|
aggregated.validate();
|
||||||
|
|
||||||
ServiceUsageRecord serviceUsageRecord2 = (ServiceUsageRecord) TestUsageRecord.createTestUsageRecord();
|
ServiceUsageRecord serviceUsageRecord2 = TestUsageRecord.createTestServiceUsageRecord();
|
||||||
serviceUsageRecord2.validate();
|
serviceUsageRecord2.validate();
|
||||||
logger.debug("ServiceUsageRecord 2 : {}", serviceUsageRecord2);
|
logger.debug("ServiceUsageRecord 2 : {}", serviceUsageRecord2);
|
||||||
ServiceUsageRecordAggregationStrategy suras = new ServiceUsageRecordAggregationStrategy(aggregated);
|
ServiceUsageRecordAggregationStrategy suras = new ServiceUsageRecordAggregationStrategy(aggregated);
|
||||||
|
@ -63,7 +63,7 @@ public class ServiceUsageRecordAggregationStrategyTest {
|
||||||
@Test
|
@Test
|
||||||
public void secondAsAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions {
|
public void secondAsAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions {
|
||||||
|
|
||||||
ServiceUsageRecord serviceUsageRecord = (ServiceUsageRecord) TestUsageRecord.createTestUsageRecord();
|
ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecord();
|
||||||
serviceUsageRecord.validate();
|
serviceUsageRecord.validate();
|
||||||
logger.debug("ServiceUsageRecord : {}", serviceUsageRecord);
|
logger.debug("ServiceUsageRecord : {}", serviceUsageRecord);
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ public class ServiceUsageRecordAggregationStrategyTest {
|
||||||
logger.debug("ServiceUsageRecord Converted to Aggregated: {}", aggregated);
|
logger.debug("ServiceUsageRecord Converted to Aggregated: {}", aggregated);
|
||||||
aggregated.validate();
|
aggregated.validate();
|
||||||
|
|
||||||
ServiceUsageRecord serviceUsageRecord2 = (ServiceUsageRecord) TestUsageRecord.createTestUsageRecord();
|
ServiceUsageRecord serviceUsageRecord2 = TestUsageRecord.createTestServiceUsageRecord();
|
||||||
serviceUsageRecord2.validate();
|
serviceUsageRecord2.validate();
|
||||||
logger.debug("ServiceUsageRecord 2 : {}", serviceUsageRecord2);
|
logger.debug("ServiceUsageRecord 2 : {}", serviceUsageRecord2);
|
||||||
org.gcube.accounting.datamodel.aggregation.ServiceUsageRecord converted2 =
|
org.gcube.accounting.datamodel.aggregation.ServiceUsageRecord converted2 =
|
||||||
|
@ -104,7 +104,7 @@ public class ServiceUsageRecordAggregationStrategyTest {
|
||||||
@Test
|
@Test
|
||||||
public void aggregationStressTest() throws InvalidValueException, NotAggregatableRecordsExceptions {
|
public void aggregationStressTest() throws InvalidValueException, NotAggregatableRecordsExceptions {
|
||||||
|
|
||||||
ServiceUsageRecord serviceUsageRecord = (ServiceUsageRecord) TestUsageRecord.createTestUsageRecord();
|
ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecord();
|
||||||
serviceUsageRecord.validate();
|
serviceUsageRecord.validate();
|
||||||
logger.debug("ServiceUsageRecord : {}", serviceUsageRecord);
|
logger.debug("ServiceUsageRecord : {}", serviceUsageRecord);
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ public class ServiceUsageRecordAggregationStrategyTest {
|
||||||
|
|
||||||
for(int i=2; i<1002; i++){
|
for(int i=2; i<1002; i++){
|
||||||
|
|
||||||
ServiceUsageRecord sur = (ServiceUsageRecord) TestUsageRecord.createTestUsageRecord();
|
ServiceUsageRecord sur = TestUsageRecord.createTestServiceUsageRecord();
|
||||||
sur.validate();
|
sur.validate();
|
||||||
logger.debug("Cycle ServiceUsageRecord {}: {}", i, sur);
|
logger.debug("Cycle ServiceUsageRecord {}: {}", i, sur);
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class PersistenceTest {
|
||||||
int quantity = 3000;
|
int quantity = 3000;
|
||||||
Calendar startTestTime = new GregorianCalendar();
|
Calendar startTestTime = new GregorianCalendar();
|
||||||
for(int i=0; i< quantity; i++){
|
for(int i=0; i< quantity; i++){
|
||||||
SingleUsageRecord usageRecord = TestUsageRecord.createTestUsageRecord();
|
SingleUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord();
|
||||||
persistence.account(usageRecord);
|
persistence.account(usageRecord);
|
||||||
}
|
}
|
||||||
Calendar stopTestTime = new GregorianCalendar();
|
Calendar stopTestTime = new GregorianCalendar();
|
||||||
|
|
Loading…
Reference in New Issue