Fixing internals
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/accounting/accounting-lib@122626 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
51cc51f546
commit
d106fe5b4c
|
@ -58,7 +58,7 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public BasicUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException {
|
public BasicUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException {
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ public class AggregatedJobUsageRecord extends AbstractJobUsageRecord implements
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public AggregatedJobUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException{
|
public AggregatedJobUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException{
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ public class AggregatedPortletUsageRecord extends AbstractPortletUsageRecord imp
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public AggregatedPortletUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException{
|
public AggregatedPortletUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException{
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class AggregatedServiceUsageRecord extends AbstractServiceUsageRecord imp
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public AggregatedServiceUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException{
|
public AggregatedServiceUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException{
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,7 +136,6 @@ public class AggregatedServiceUsageRecord extends AbstractServiceUsageRecord imp
|
||||||
throws NotAggregatableRecordsExceptions {
|
throws NotAggregatableRecordsExceptions {
|
||||||
try {
|
try {
|
||||||
AggregationUtility<AggregatedServiceUsageRecord> aggregationUtility = new AggregationUtility<AggregatedServiceUsageRecord>(this);
|
AggregationUtility<AggregatedServiceUsageRecord> aggregationUtility = new AggregationUtility<AggregatedServiceUsageRecord>(this);
|
||||||
aggregationUtility.aggregate(record);
|
|
||||||
|
|
||||||
setDuration(durationWeightedAverage(record));
|
setDuration(durationWeightedAverage(record));
|
||||||
|
|
||||||
|
@ -149,6 +148,12 @@ public class AggregatedServiceUsageRecord extends AbstractServiceUsageRecord imp
|
||||||
if(min < this.getMinInvocationTime()){
|
if(min < this.getMinInvocationTime()){
|
||||||
this.setMinInvocationTime(min);
|
this.setMinInvocationTime(min);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This statement is at the end because the aggregate method
|
||||||
|
// sum operation counts. If this statement is moved at the
|
||||||
|
// beginning the weighted average is not calculated correctly
|
||||||
|
aggregationUtility.aggregate(record);
|
||||||
|
|
||||||
} catch(NotAggregatableRecordsExceptions e){
|
} catch(NotAggregatableRecordsExceptions e){
|
||||||
throw e;
|
throw e;
|
||||||
} catch(Exception ex){
|
} catch(Exception ex){
|
||||||
|
|
|
@ -38,7 +38,7 @@ public class AggregatedStorageUsageRecord extends AbstractStorageUsageRecord imp
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public AggregatedStorageUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException{
|
public AggregatedStorageUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException{
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ public class AggregatedTaskUsageRecord extends AbstractTaskUsageRecord implement
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public AggregatedTaskUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException{
|
public AggregatedTaskUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException{
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ import org.gcube.documentstore.records.implementation.validations.validators.Not
|
||||||
public class MoveToConsumerIdAction implements FieldAction {
|
public class MoveToConsumerIdAction implements FieldAction {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Comparable<? extends Serializable> validate(String key, Comparable<? extends Serializable> value, Record record) throws InvalidValueException {
|
public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException {
|
||||||
NotEmptyIfNotNullValidator neinnv = new NotEmptyIfNotNullValidator();
|
NotEmptyIfNotNullValidator neinnv = new NotEmptyIfNotNullValidator();
|
||||||
value = neinnv.validate(key, value, record);
|
value = neinnv.validate(key, value, record);
|
||||||
record.setResourceProperty(UsageRecord.CONSUMER_ID, (String) value);
|
record.setResourceProperty(UsageRecord.CONSUMER_ID, (String) value);
|
||||||
|
|
|
@ -22,7 +22,7 @@ public class MoveToOperationResultAction implements FieldAction {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Comparable<? extends Serializable> validate(String key, Comparable<? extends Serializable> value, Record record) throws InvalidValueException {
|
public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException {
|
||||||
ValidOperationResultValidator vorv = new ValidOperationResultValidator();
|
ValidOperationResultValidator vorv = new ValidOperationResultValidator();
|
||||||
value = vorv.validate(key, value, record);
|
value = vorv.validate(key, value, record);
|
||||||
record.setResourceProperty(UsageRecord.OPERATION_RESULT, (OperationResult) value);
|
record.setResourceProperty(UsageRecord.OPERATION_RESULT, (OperationResult) value);
|
||||||
|
|
|
@ -12,7 +12,7 @@ import org.gcube.documentstore.records.implementation.FieldAction;
|
||||||
public class MoveToRecordTypeAction implements FieldAction {
|
public class MoveToRecordTypeAction implements FieldAction {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Comparable<? extends Serializable> validate(String key, Comparable<? extends Serializable> value, Record record) throws InvalidValueException {
|
public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException {
|
||||||
if(value instanceof String && value!= null && !((String) value).isEmpty()){
|
if(value instanceof String && value!= null && !((String) value).isEmpty()){
|
||||||
record.setResourceProperty(Record.RECORD_TYPE, value);
|
record.setResourceProperty(Record.RECORD_TYPE, value);
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,8 +20,8 @@ public class MoveToTaskEndTimeAction implements FieldAction {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Comparable<? extends Serializable> validate(String key,
|
public Serializable validate(String key,
|
||||||
Comparable<? extends Serializable> value, Record record)
|
Serializable value, Record record)
|
||||||
throws InvalidValueException {
|
throws InvalidValueException {
|
||||||
record.setResourceProperty(AbstractTaskUsageRecord.TASK_END_TIME, value);
|
record.setResourceProperty(AbstractTaskUsageRecord.TASK_END_TIME, value);
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -20,8 +20,8 @@ public class MoveToTaskStartTimeAction implements FieldAction {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Comparable<? extends Serializable> validate(String key,
|
public Serializable validate(String key,
|
||||||
Comparable<? extends Serializable> value, Record record)
|
Serializable value, Record record)
|
||||||
throws InvalidValueException {
|
throws InvalidValueException {
|
||||||
record.setResourceProperty(AbstractTaskUsageRecord.TASK_START_TIME, value);
|
record.setResourceProperty(AbstractTaskUsageRecord.TASK_START_TIME, value);
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -34,19 +34,19 @@ public abstract class AbstractJobUsageRecord extends BasicUsageRecord {
|
||||||
@NotEmptyIfNotNull
|
@NotEmptyIfNotNull
|
||||||
public static final String JOB_QUALIFIER = "jobQualifier";
|
public static final String JOB_QUALIFIER = "jobQualifier";
|
||||||
|
|
||||||
@RequiredField @ValidLong @CalculateJobWallDuration
|
@RequiredField @ValidLong
|
||||||
public static final String JOB_START_TIME = "jobStartTime";
|
public static final String JOB_START_TIME = "jobStartTime";
|
||||||
@RequiredField @ValidLong @CalculateJobWallDuration
|
@RequiredField @ValidLong
|
||||||
public static final String JOB_END_TIME = "jobEndTime";
|
public static final String JOB_END_TIME = "jobEndTime";
|
||||||
@RequiredField @ValidLong @CalculateJobWallDuration @ComputedField
|
@ComputedField(action=CalculateJobWallDurationAction.class) @ValidLong
|
||||||
protected static final String WALL_DURATION = "_wallDuration";
|
public static final String WALL_DURATION = "_wallDuration";
|
||||||
|
|
||||||
|
|
||||||
public AbstractJobUsageRecord(){
|
public AbstractJobUsageRecord(){
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public AbstractJobUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException{
|
public AbstractJobUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException{
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,6 +114,7 @@ public abstract class AbstractJobUsageRecord extends BasicUsageRecord {
|
||||||
long endTime = (Long) this.resourceProperties.get(JOB_END_TIME);
|
long endTime = (Long) this.resourceProperties.get(JOB_END_TIME);
|
||||||
long startTime = (Long) this.resourceProperties.get(JOB_START_TIME);
|
long startTime = (Long) this.resourceProperties.get(JOB_START_TIME);
|
||||||
long wallDuration = endTime - startTime;
|
long wallDuration = endTime - startTime;
|
||||||
|
setResourceProperty(AbstractJobUsageRecord.WALL_DURATION, wallDuration);
|
||||||
return wallDuration;
|
return wallDuration;
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
throw new InvalidValueException(String.format("To calculate Wall Duration both %s and %s must be set",
|
throw new InvalidValueException(String.format("To calculate Wall Duration both %s and %s must be set",
|
||||||
|
|
|
@ -38,7 +38,7 @@ public abstract class AbstractPortletUsageRecord extends BasicUsageRecord {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public AbstractPortletUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException {
|
public AbstractPortletUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException {
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ public abstract class AbstractServiceUsageRecord extends BasicUsageRecord {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public AbstractServiceUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException {
|
public AbstractServiceUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException {
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,7 @@ public abstract class AbstractStorageUsageRecord extends BasicUsageRecord {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public AbstractStorageUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException {
|
public AbstractStorageUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException {
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ package org.gcube.accounting.datamodel.basetypes;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.gcube.accounting.datamodel.BasicUsageRecord;
|
import org.gcube.accounting.datamodel.BasicUsageRecord;
|
||||||
|
@ -36,22 +37,21 @@ public abstract class AbstractTaskUsageRecord extends BasicUsageRecord {
|
||||||
@NotEmptyIfNotNull
|
@NotEmptyIfNotNull
|
||||||
public static final String REF_HOSTING_NODE_ID = "refHostingNodeId";
|
public static final String REF_HOSTING_NODE_ID = "refHostingNodeId";
|
||||||
|
|
||||||
@RequiredField @ValidLong @CalculateTaskWallDuration
|
@RequiredField @ValidLong
|
||||||
public static final String TASK_START_TIME = "taskStartTime";
|
public static final String TASK_START_TIME = "taskStartTime";
|
||||||
@RequiredField @ValidLong @CalculateTaskWallDuration
|
@RequiredField @ValidLong
|
||||||
public static final String TASK_END_TIME = "taskEndTime";
|
public static final String TASK_END_TIME = "taskEndTime";
|
||||||
|
@ComputedField(action=CalculateTaskWallDurationAction.class) @ValidLong
|
||||||
|
public static final String WALL_DURATION = "_wallDuration";
|
||||||
|
|
||||||
@RequiredField @ValidLong @CalculateTaskWallDuration @ComputedField
|
@NotEmptyIfNotNull
|
||||||
protected static final String WALL_DURATION = "wallDuration";
|
|
||||||
|
|
||||||
@RequiredField //@ValidMap
|
|
||||||
public static final String INPUT_PARAMETERS = "inputParameters";
|
public static final String INPUT_PARAMETERS = "inputParameters";
|
||||||
|
|
||||||
public AbstractTaskUsageRecord(){
|
public AbstractTaskUsageRecord(){
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public AbstractTaskUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException {
|
public AbstractTaskUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException {
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,13 +155,12 @@ public abstract class AbstractTaskUsageRecord extends BasicUsageRecord {
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public Map<String, ? extends Object> getInputParameters(){
|
public Map<String, Serializable> getInputParameters(){
|
||||||
return (Map<String, Object>) getResourceProperty(INPUT_PARAMETERS);
|
return (HashMap<String, Serializable>) getResourceProperty(INPUT_PARAMETERS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
public void setInputParameters(HashMap<String, Serializable> inputParameters) throws InvalidValueException{
|
||||||
public void setInputParameters(Map<String, ? extends Object> inputParameters) throws InvalidValueException{
|
setResourceProperty(INPUT_PARAMETERS, inputParameters);
|
||||||
setResourceProperty(INPUT_PARAMETERS, (Comparable<? extends Serializable>) inputParameters);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ public class CalculateJobWallDurationAction implements FieldAction {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(CalculateJobWallDurationAction.class);
|
private static final Logger logger = LoggerFactory.getLogger(CalculateJobWallDurationAction.class);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Comparable<? extends Serializable> validate(String key, Comparable<? extends Serializable> value, Record record) throws InvalidValueException {
|
public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException {
|
||||||
try {
|
try {
|
||||||
long wallDuration = ((AbstractJobUsageRecord) record).calculateWallDuration();
|
long wallDuration = ((AbstractJobUsageRecord) record).calculateWallDuration();
|
||||||
if(key.compareTo(AbstractJobUsageRecord.WALL_DURATION)==0){
|
if(key.compareTo(AbstractJobUsageRecord.WALL_DURATION)==0){
|
||||||
|
|
|
@ -16,13 +16,15 @@ public class CalculateTaskWallDurationAction implements FieldAction {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(CalculateTaskWallDurationAction.class);
|
private static final Logger logger = LoggerFactory.getLogger(CalculateTaskWallDurationAction.class);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Comparable<? extends Serializable> validate(String key, Comparable<? extends Serializable> value, Record record) throws InvalidValueException {
|
public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException {
|
||||||
try {
|
try {
|
||||||
long wallDuration = ((AbstractTaskUsageRecord) record).calculateWallDuration();
|
long wallDuration = ((AbstractTaskUsageRecord) record).calculateWallDuration();
|
||||||
if(key.compareTo(AbstractTaskUsageRecord.WALL_DURATION)==0){
|
if(key.compareTo(AbstractTaskUsageRecord.WALL_DURATION)==0){
|
||||||
logger.warn("{} is automatically computed using {} and {}. This invocation has the only effect of recalculating the value. Any provided value is ignored.",
|
logger.warn("{} is automatically computed using {} and {}. This invocation has the only effect of recalculating the value. Any provided value is ignored.",
|
||||||
AbstractTaskUsageRecord.WALL_DURATION, AbstractTaskUsageRecord.TASK_START_TIME, AbstractTaskUsageRecord.TASK_END_TIME);
|
AbstractTaskUsageRecord.WALL_DURATION, AbstractTaskUsageRecord.TASK_START_TIME, AbstractTaskUsageRecord.TASK_END_TIME);
|
||||||
value = wallDuration;
|
value = wallDuration;
|
||||||
|
}else{
|
||||||
|
record.setResourceProperty(AbstractTaskUsageRecord.WALL_DURATION, wallDuration);
|
||||||
}
|
}
|
||||||
}catch(InvalidValueException e){ }
|
}catch(InvalidValueException e){ }
|
||||||
return value;
|
return value;
|
||||||
|
|
|
@ -8,7 +8,6 @@ import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.gcube.accounting.datamodel.UsageRecord.OperationResult;
|
import org.gcube.accounting.datamodel.UsageRecord.OperationResult;
|
||||||
|
@ -71,12 +70,6 @@ public class TestUsageRecord {
|
||||||
*/
|
*/
|
||||||
public static ServiceUsageRecord createTestServiceUsageRecordExplicitScope() throws InvalidValueException {
|
public static ServiceUsageRecord createTestServiceUsageRecordExplicitScope() throws InvalidValueException {
|
||||||
ServiceUsageRecord usageRecord = createTestServiceUsageRecordAutomaticScope();
|
ServiceUsageRecord usageRecord = createTestServiceUsageRecordAutomaticScope();
|
||||||
try {
|
|
||||||
usageRecord.setScope(TEST_SCOPE);
|
|
||||||
} catch (InvalidValueException e) {
|
|
||||||
logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Setting the Scope", e);
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
return usageRecord;
|
return usageRecord;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -123,12 +116,6 @@ public class TestUsageRecord {
|
||||||
*/
|
*/
|
||||||
public static StorageUsageRecord createTestStorageUsageRecordExplicitScope() {
|
public static StorageUsageRecord createTestStorageUsageRecordExplicitScope() {
|
||||||
StorageUsageRecord usageRecord = createTestStorageUsageRecordAutomaticScope();
|
StorageUsageRecord usageRecord = createTestStorageUsageRecordAutomaticScope();
|
||||||
try {
|
|
||||||
usageRecord.setScope(TEST_SCOPE);
|
|
||||||
} catch (InvalidValueException e) {
|
|
||||||
logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Setting the Scope", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
return usageRecord;
|
return usageRecord;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -169,14 +156,7 @@ public class TestUsageRecord {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static JobUsageRecord createTestJobUsageRecordExplicitScope() {
|
public static JobUsageRecord createTestJobUsageRecordExplicitScope() {
|
||||||
|
|
||||||
JobUsageRecord usageRecord = createTestJobUsageRecordAutomaticScope();
|
JobUsageRecord usageRecord = createTestJobUsageRecordAutomaticScope();
|
||||||
try {
|
|
||||||
usageRecord.setScope(TEST_SCOPE);
|
|
||||||
} catch (InvalidValueException e) {
|
|
||||||
logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Setting the Scope", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
return usageRecord;
|
return usageRecord;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -217,14 +197,7 @@ public class TestUsageRecord {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static TaskUsageRecord createTestTaskUsageRecordExplicitScope() {
|
public static TaskUsageRecord createTestTaskUsageRecordExplicitScope() {
|
||||||
|
|
||||||
TaskUsageRecord usageRecord = createTestTaskUsageRecordAutomaticScope();
|
TaskUsageRecord usageRecord = createTestTaskUsageRecordAutomaticScope();
|
||||||
try {
|
|
||||||
usageRecord.setScope(TEST_SCOPE);
|
|
||||||
} catch (InvalidValueException e) {
|
|
||||||
logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Setting the Scope", e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
return usageRecord;
|
return usageRecord;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,11 +225,11 @@ public class TestUsageRecord {
|
||||||
usageRecord.setTaskStartTime(startTime);
|
usageRecord.setTaskStartTime(startTime);
|
||||||
usageRecord.setTaskEndTime(endTime);
|
usageRecord.setTaskEndTime(endTime);
|
||||||
|
|
||||||
Map<String, Serializable> inputParameters = new HashMap<>();
|
HashMap<String, Serializable> inputParameters = new HashMap<>();
|
||||||
inputParameters.put(TEST_PROPERTY_NAME, TEST_PROPERTY_VALUE);
|
inputParameters.put(TEST_PROPERTY_NAME, TEST_PROPERTY_VALUE);
|
||||||
inputParameters.put(TEST_PROPERTY_VALUE, TEST_PROPERTY_NAME);
|
inputParameters.put(TEST_PROPERTY_VALUE, TEST_PROPERTY_NAME);
|
||||||
|
|
||||||
HashMap<String, Comparable<? extends Serializable>> parameter = new HashMap<>();
|
HashMap<String, Serializable> parameter = new HashMap<>();
|
||||||
parameter.put(TEST_PROPERTY_NAME, TEST_PROPERTY_VALUE);
|
parameter.put(TEST_PROPERTY_NAME, TEST_PROPERTY_VALUE);
|
||||||
parameter.put(TEST_PROPERTY_VALUE, TEST_PROPERTY_NAME);
|
parameter.put(TEST_PROPERTY_VALUE, TEST_PROPERTY_NAME);
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ public class DeprecatedWarningAction implements FieldAction {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Comparable<? extends Serializable> validate(String key, Comparable<? extends Serializable> value, Record record) throws InvalidValueException {
|
public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException {
|
||||||
logger.trace("The field {} is deprecated for {}. Anyway the field will be included in the SingleUsageRecord. The field can be lost during aggregation.",
|
logger.trace("The field {} is deprecated for {}. Anyway the field will be included in the SingleUsageRecord. The field can be lost during aggregation.",
|
||||||
key, record.getClass().getSimpleName());
|
key, record.getClass().getSimpleName());
|
||||||
return value;
|
return value;
|
||||||
|
|
|
@ -17,7 +17,7 @@ public class JobUsageRecord extends AbstractJobUsageRecord {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public JobUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException{
|
public JobUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException{
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ public class PortletUsageRecord extends AbstractPortletUsageRecord {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public PortletUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException {
|
public PortletUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException {
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ public class ServiceUsageRecord extends AbstractServiceUsageRecord {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServiceUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException {
|
public ServiceUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException {
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ public class StorageUsageRecord extends AbstractStorageUsageRecord {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public StorageUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException {
|
public StorageUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException {
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ public class TaskUsageRecord extends AbstractTaskUsageRecord {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public TaskUsageRecord(Map<String, Comparable<? extends Serializable>> properties) throws InvalidValueException {
|
public TaskUsageRecord(Map<String, ? extends Serializable> properties) throws InvalidValueException {
|
||||||
super(properties);
|
super(properties);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class FixDataVolumeSignAction implements FieldAction {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Comparable<? extends Serializable> validate(String key, Comparable<? extends Serializable> value, Record record) throws InvalidValueException {
|
public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
if(key.compareTo(AbstractStorageUsageRecord.DATA_VOLUME)==0){
|
if(key.compareTo(AbstractStorageUsageRecord.DATA_VOLUME)==0){
|
||||||
|
|
|
@ -16,7 +16,7 @@ public class ValidDataTypeValidator implements FieldAction {
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
@Override
|
@Override
|
||||||
public Comparable<? extends Serializable> validate(String key, Comparable<? extends Serializable> value, Record record) throws InvalidValueException {
|
public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException {
|
||||||
if(value instanceof DataType){
|
if(value instanceof DataType){
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class ValidIPValidator implements FieldAction {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Comparable<? extends Serializable> validate(String key, Comparable<? extends Serializable> value, Record record) throws InvalidValueException {
|
public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException {
|
||||||
try {
|
try {
|
||||||
if(isIpAddress((String) value)){
|
if(isIpAddress((String) value)){
|
||||||
return (String) value;
|
return (String) value;
|
||||||
|
|
|
@ -15,7 +15,7 @@ public class ValidMapValidator implements FieldAction {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Comparable<? extends Serializable> validate(String key, Comparable<? extends Serializable> value, Record record) throws InvalidValueException {
|
public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if(value instanceof Map){
|
if(value instanceof Map){
|
||||||
|
|
|
@ -16,7 +16,7 @@ public class ValidOperationResultValidator implements FieldAction {
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
@Override
|
@Override
|
||||||
public Comparable<? extends Serializable> validate(String key, Comparable<? extends Serializable> value, Record record) throws InvalidValueException {
|
public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException {
|
||||||
if(value instanceof OperationResult){
|
if(value instanceof OperationResult){
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ public class ValidOperationTypeValidator implements FieldAction {
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
@Override
|
@Override
|
||||||
public Comparable<? extends Serializable> validate(String key, Comparable<? extends Serializable> value, Record record) throws InvalidValueException {
|
public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException {
|
||||||
if(value instanceof OperationType){
|
if(value instanceof OperationType){
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ public class ValidURIValidator implements FieldAction {
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Comparable<? extends Serializable> validate(String key, Comparable<? extends Serializable> value, Record record) throws InvalidValueException {
|
public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException {
|
||||||
try {
|
try {
|
||||||
if(value instanceof URI){
|
if(value instanceof URI){
|
||||||
return value;
|
return value;
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
*/
|
*/
|
||||||
package org.gcube.accounting.datamodel;
|
package org.gcube.accounting.datamodel;
|
||||||
|
|
||||||
import org.gcube.accounting.datamodel.UsageRecord;
|
|
||||||
import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
|
import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
|
||||||
import org.gcube.documentstore.exception.InvalidValueException;
|
import org.gcube.documentstore.exception.InvalidValueException;
|
||||||
import org.gcube.documentstore.records.RecordUtility;
|
import org.gcube.documentstore.records.RecordUtility;
|
||||||
|
|
|
@ -22,7 +22,6 @@ import org.slf4j.LoggerFactory;
|
||||||
*/
|
*/
|
||||||
public class AggregatedServiceUsageRecordTest {
|
public class AggregatedServiceUsageRecordTest {
|
||||||
|
|
||||||
|
|
||||||
private static Logger logger = LoggerFactory.getLogger(AggregatedServiceUsageRecordTest.class);
|
private static Logger logger = LoggerFactory.getLogger(AggregatedServiceUsageRecordTest.class);
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -20,11 +20,8 @@ import org.slf4j.LoggerFactory;
|
||||||
*/
|
*/
|
||||||
public class AggregatedStorageUsageRecordTest {
|
public class AggregatedStorageUsageRecordTest {
|
||||||
|
|
||||||
|
|
||||||
private static Logger logger = LoggerFactory.getLogger(AggregatedStorageUsageRecordTest.class);
|
private static Logger logger = LoggerFactory.getLogger(AggregatedStorageUsageRecordTest.class);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void secondAsNotAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions {
|
public void secondAsNotAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions {
|
||||||
ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
|
ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
|
||||||
|
|
|
@ -12,8 +12,12 @@ import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
|
||||||
import org.gcube.common.scope.api.ScopeProvider;
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
import org.gcube.documentstore.exception.InvalidValueException;
|
import org.gcube.documentstore.exception.InvalidValueException;
|
||||||
import org.gcube.documentstore.records.Record;
|
import org.gcube.documentstore.records.Record;
|
||||||
|
import org.junit.After;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
|
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
|
||||||
|
@ -21,6 +25,20 @@ import org.junit.Test;
|
||||||
*/
|
*/
|
||||||
public class JobUsageRecordTest {
|
public class JobUsageRecordTest {
|
||||||
|
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(JobUsageRecordTest.class);
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void before(){
|
||||||
|
ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
|
||||||
|
logger.trace("Setting {} scope", TestUsageRecord.TEST_SCOPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void after(){
|
||||||
|
ScopeProvider.instance.reset();
|
||||||
|
logger.trace("Scope reset");
|
||||||
|
}
|
||||||
|
|
||||||
public static Set<String> getExpectedRequiredFields(){
|
public static Set<String> getExpectedRequiredFields(){
|
||||||
Set<String> expectedRequiredFields = new HashSet<String>();
|
Set<String> expectedRequiredFields = new HashSet<String>();
|
||||||
expectedRequiredFields.add(Record.ID);
|
expectedRequiredFields.add(Record.ID);
|
||||||
|
@ -32,40 +50,49 @@ public class JobUsageRecordTest {
|
||||||
expectedRequiredFields.add(AbstractJobUsageRecord.JOB_ID);
|
expectedRequiredFields.add(AbstractJobUsageRecord.JOB_ID);
|
||||||
expectedRequiredFields.add(AbstractJobUsageRecord.JOB_START_TIME);
|
expectedRequiredFields.add(AbstractJobUsageRecord.JOB_START_TIME);
|
||||||
expectedRequiredFields.add(AbstractJobUsageRecord.JOB_END_TIME);
|
expectedRequiredFields.add(AbstractJobUsageRecord.JOB_END_TIME);
|
||||||
|
|
||||||
return expectedRequiredFields;
|
return expectedRequiredFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected=InvalidValueException.class)
|
@Test(expected=InvalidValueException.class)
|
||||||
public void scopeNotSetValidationError() throws InvalidValueException {
|
public void scopeNotSetValidationError() throws InvalidValueException {
|
||||||
ScopeProvider.instance.reset();
|
ScopeProvider.instance.reset();
|
||||||
JobUsageRecord jobUsageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope();
|
JobUsageRecord usageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope();
|
||||||
jobUsageRecord.validate();
|
usageRecord.validate();
|
||||||
|
logger.debug("{}", usageRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRequiredFields() throws InvalidValueException{
|
public void testRequiredFields() throws InvalidValueException{
|
||||||
ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
|
JobUsageRecord usageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope();
|
||||||
JobUsageRecord jobUsageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope();
|
|
||||||
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
||||||
Set<String> gotRequiredFields = jobUsageRecord.getRequiredFields();
|
logger.debug("Expected Required Fields : {}", expectedRequiredFields);
|
||||||
|
|
||||||
|
Set<String> gotRequiredFields = usageRecord.getRequiredFields();
|
||||||
|
logger.debug("Got Required Fields : {}", gotRequiredFields);
|
||||||
|
|
||||||
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
||||||
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
||||||
|
|
||||||
jobUsageRecord.validate();
|
usageRecord.validate();
|
||||||
|
logger.debug("{}", usageRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{
|
public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{
|
||||||
JobUsageRecord jobUsageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope();
|
ScopeProvider.instance.reset();
|
||||||
jobUsageRecord.setScope(TestUsageRecord.TEST_SCOPE);
|
JobUsageRecord usageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope();
|
||||||
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
Assert.assertTrue(usageRecord.getScope()==null);
|
||||||
|
usageRecord.setScope(TestUsageRecord.TEST_SCOPE);
|
||||||
|
|
||||||
Set<String> gotRequiredFields = jobUsageRecord.getRequiredFields();
|
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
||||||
|
Set<String> gotRequiredFields = usageRecord.getRequiredFields();
|
||||||
|
|
||||||
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
||||||
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
||||||
|
|
||||||
jobUsageRecord.validate();
|
usageRecord.validate();
|
||||||
|
logger.debug("{}", usageRecord);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,8 +12,12 @@ import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
|
||||||
import org.gcube.common.scope.api.ScopeProvider;
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
import org.gcube.documentstore.exception.InvalidValueException;
|
import org.gcube.documentstore.exception.InvalidValueException;
|
||||||
import org.gcube.documentstore.records.Record;
|
import org.gcube.documentstore.records.Record;
|
||||||
|
import org.junit.After;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
|
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
|
||||||
|
@ -21,6 +25,20 @@ import org.junit.Test;
|
||||||
*/
|
*/
|
||||||
public class ServiceUsageRecordTest {
|
public class ServiceUsageRecordTest {
|
||||||
|
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(ServiceUsageRecordTest.class);
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void before(){
|
||||||
|
ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
|
||||||
|
logger.trace("Setting {} scope", TestUsageRecord.TEST_SCOPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void after(){
|
||||||
|
ScopeProvider.instance.reset();
|
||||||
|
logger.trace("Scope reset");
|
||||||
|
}
|
||||||
|
|
||||||
public static Set<String> getExpectedRequiredFields(){
|
public static Set<String> getExpectedRequiredFields(){
|
||||||
Set<String> expectedRequiredFields = new HashSet<String>();
|
Set<String> expectedRequiredFields = new HashSet<String>();
|
||||||
expectedRequiredFields.add(Record.ID);
|
expectedRequiredFields.add(Record.ID);
|
||||||
|
@ -41,34 +59,43 @@ public class ServiceUsageRecordTest {
|
||||||
@Test(expected=InvalidValueException.class)
|
@Test(expected=InvalidValueException.class)
|
||||||
public void scopeNotSetValidationError() throws InvalidValueException {
|
public void scopeNotSetValidationError() throws InvalidValueException {
|
||||||
ScopeProvider.instance.reset();
|
ScopeProvider.instance.reset();
|
||||||
ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope();
|
ServiceUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope();
|
||||||
serviceUsageRecord.validate();
|
usageRecord.validate();
|
||||||
|
logger.debug("{}", usageRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRequiredFields() throws InvalidValueException{
|
public void testRequiredFields() throws InvalidValueException{
|
||||||
ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
|
ServiceUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope();
|
||||||
ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope();
|
|
||||||
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
||||||
Set<String> gotRequiredFields = serviceUsageRecord.getRequiredFields();
|
logger.debug("Expected Required Fields : {}", expectedRequiredFields);
|
||||||
|
|
||||||
|
Set<String> gotRequiredFields = usageRecord.getRequiredFields();
|
||||||
|
logger.debug("Got Required Fields : {}", gotRequiredFields);
|
||||||
|
|
||||||
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
||||||
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
||||||
|
|
||||||
serviceUsageRecord.validate();
|
usageRecord.validate();
|
||||||
|
logger.debug("{}", usageRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{
|
public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{
|
||||||
ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope();
|
ScopeProvider.instance.reset();
|
||||||
serviceUsageRecord.setScope(TestUsageRecord.TEST_SCOPE);
|
ServiceUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope();
|
||||||
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
Assert.assertTrue(usageRecord.getScope()==null);
|
||||||
|
usageRecord.setScope(TestUsageRecord.TEST_SCOPE);
|
||||||
|
|
||||||
Set<String> gotRequiredFields = serviceUsageRecord.getRequiredFields();
|
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
||||||
|
Set<String> gotRequiredFields = usageRecord.getRequiredFields();
|
||||||
|
|
||||||
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
||||||
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
||||||
|
|
||||||
serviceUsageRecord.validate();
|
usageRecord.validate();
|
||||||
|
logger.debug("{}", usageRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.gcube.accounting.datamodel.UsageRecord;
|
import org.gcube.accounting.datamodel.UsageRecord;
|
||||||
import org.gcube.accounting.datamodel.basetypes.AbstractJobUsageRecord;
|
import org.gcube.accounting.datamodel.basetypes.AbstractStorageUsageRecord;
|
||||||
import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
|
import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
|
||||||
import org.gcube.common.scope.api.ScopeProvider;
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
import org.gcube.documentstore.exception.InvalidValueException;
|
import org.gcube.documentstore.exception.InvalidValueException;
|
||||||
|
@ -47,59 +47,57 @@ public class StorageUsageRecordTest {
|
||||||
expectedRequiredFields.add(UsageRecord.RECORD_TYPE);
|
expectedRequiredFields.add(UsageRecord.RECORD_TYPE);
|
||||||
expectedRequiredFields.add(UsageRecord.SCOPE);
|
expectedRequiredFields.add(UsageRecord.SCOPE);
|
||||||
expectedRequiredFields.add(UsageRecord.OPERATION_RESULT);
|
expectedRequiredFields.add(UsageRecord.OPERATION_RESULT);
|
||||||
expectedRequiredFields.add(AbstractJobUsageRecord.JOB_ID);
|
expectedRequiredFields.add(AbstractStorageUsageRecord.RESOURCE_OWNER);
|
||||||
expectedRequiredFields.add(AbstractJobUsageRecord.JOB_QUALIFIER);
|
expectedRequiredFields.add(AbstractStorageUsageRecord.RESOURCE_SCOPE);
|
||||||
expectedRequiredFields.add(AbstractJobUsageRecord.JOB_NAME);
|
expectedRequiredFields.add(AbstractStorageUsageRecord.RESOURCE_URI);
|
||||||
expectedRequiredFields.add(AbstractJobUsageRecord.JOB_START_TIME);
|
expectedRequiredFields.add(AbstractStorageUsageRecord.PROVIDER_URI);
|
||||||
expectedRequiredFields.add(AbstractJobUsageRecord.JOB_END_TIME);
|
expectedRequiredFields.add(AbstractStorageUsageRecord.OPERATION_TYPE);
|
||||||
|
expectedRequiredFields.add(AbstractStorageUsageRecord.DATA_TYPE);
|
||||||
|
expectedRequiredFields.add(AbstractStorageUsageRecord.DATA_VOLUME);
|
||||||
|
|
||||||
return expectedRequiredFields;
|
return expectedRequiredFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected=InvalidValueException.class)
|
@Test(expected=InvalidValueException.class)
|
||||||
public void scopeNotSetValidationError() throws InvalidValueException {
|
public void scopeNotSetValidationError() throws InvalidValueException {
|
||||||
ScopeProvider.instance.reset();
|
ScopeProvider.instance.reset();
|
||||||
JobUsageRecord jobUsageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope();
|
StorageUsageRecord usageRecord = TestUsageRecord.createTestStorageUsageRecordAutomaticScope();
|
||||||
jobUsageRecord.validate();
|
usageRecord.validate();
|
||||||
|
logger.debug("{}", usageRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRequiredFields() throws InvalidValueException{
|
public void testRequiredFields() throws InvalidValueException{
|
||||||
JobUsageRecord jobUsageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope();
|
StorageUsageRecord usageRecord = TestUsageRecord.createTestStorageUsageRecordAutomaticScope();
|
||||||
|
|
||||||
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
||||||
|
|
||||||
logger.debug("Expected Required Fields : {}", expectedRequiredFields);
|
logger.debug("Expected Required Fields : {}", expectedRequiredFields);
|
||||||
|
|
||||||
Set<String> gotRequiredFields = jobUsageRecord.getRequiredFields();
|
Set<String> gotRequiredFields = usageRecord.getRequiredFields();
|
||||||
|
|
||||||
logger.debug("Got Required Fields : {}", gotRequiredFields);
|
logger.debug("Got Required Fields : {}", gotRequiredFields);
|
||||||
|
|
||||||
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
||||||
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
||||||
|
|
||||||
jobUsageRecord.validate();
|
usageRecord.validate();
|
||||||
|
logger.debug("{}", usageRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{
|
public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{
|
||||||
ScopeProvider.instance.reset();
|
ScopeProvider.instance.reset();
|
||||||
JobUsageRecord jobUsageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope();
|
StorageUsageRecord usageRecord = TestUsageRecord.createTestStorageUsageRecordExplicitScope();
|
||||||
Assert.assertTrue(jobUsageRecord.getScope()==null);
|
Assert.assertTrue(usageRecord.getScope()==null);
|
||||||
jobUsageRecord.setScope(TestUsageRecord.TEST_SCOPE);
|
usageRecord.setScope(TestUsageRecord.TEST_SCOPE);
|
||||||
|
|
||||||
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
||||||
Set<String> gotRequiredFields = jobUsageRecord.getRequiredFields();
|
Set<String> gotRequiredFields = usageRecord.getRequiredFields();
|
||||||
|
|
||||||
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
||||||
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
||||||
|
|
||||||
jobUsageRecord.validate();
|
usageRecord.validate();
|
||||||
|
logger.debug("{}", usageRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testWallDuration() throws InvalidValueException{
|
|
||||||
JobUsageRecord jobUsageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope();
|
|
||||||
Assert.assertTrue(jobUsageRecord.getWallDuration()==(TestUsageRecord.HALF_DURATION*2));
|
|
||||||
jobUsageRecord.validate();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,8 +12,12 @@ import org.gcube.accounting.datamodel.basetypes.TestUsageRecord;
|
||||||
import org.gcube.common.scope.api.ScopeProvider;
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
import org.gcube.documentstore.exception.InvalidValueException;
|
import org.gcube.documentstore.exception.InvalidValueException;
|
||||||
import org.gcube.documentstore.records.Record;
|
import org.gcube.documentstore.records.Record;
|
||||||
|
import org.junit.After;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
|
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
|
||||||
|
@ -21,6 +25,20 @@ import org.junit.Test;
|
||||||
*/
|
*/
|
||||||
public class TaskUsageRecordTest {
|
public class TaskUsageRecordTest {
|
||||||
|
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(TaskUsageRecordTest.class);
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void before(){
|
||||||
|
ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
|
||||||
|
logger.trace("Setting {} scope", TestUsageRecord.TEST_SCOPE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void after(){
|
||||||
|
ScopeProvider.instance.reset();
|
||||||
|
logger.trace("Scope reset");
|
||||||
|
}
|
||||||
|
|
||||||
public static Set<String> getExpectedRequiredFields(){
|
public static Set<String> getExpectedRequiredFields(){
|
||||||
Set<String> expectedRequiredFields = new HashSet<String>();
|
Set<String> expectedRequiredFields = new HashSet<String>();
|
||||||
expectedRequiredFields.add(Record.ID);
|
expectedRequiredFields.add(Record.ID);
|
||||||
|
@ -32,41 +50,50 @@ public class TaskUsageRecordTest {
|
||||||
expectedRequiredFields.add(AbstractTaskUsageRecord.TASK_ID);
|
expectedRequiredFields.add(AbstractTaskUsageRecord.TASK_ID);
|
||||||
expectedRequiredFields.add(AbstractTaskUsageRecord.TASK_START_TIME);
|
expectedRequiredFields.add(AbstractTaskUsageRecord.TASK_START_TIME);
|
||||||
expectedRequiredFields.add(AbstractTaskUsageRecord.TASK_END_TIME);
|
expectedRequiredFields.add(AbstractTaskUsageRecord.TASK_END_TIME);
|
||||||
|
|
||||||
return expectedRequiredFields;
|
return expectedRequiredFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected=InvalidValueException.class)
|
@Test(expected=InvalidValueException.class)
|
||||||
public void scopeNotSetValidationError() throws InvalidValueException {
|
public void scopeNotSetValidationError() throws InvalidValueException {
|
||||||
ScopeProvider.instance.reset();
|
ScopeProvider.instance.reset();
|
||||||
TaskUsageRecord taskUsageRecord = TestUsageRecord.createTestTaskUsageRecordAutomaticScope();
|
TaskUsageRecord usageRecord = TestUsageRecord.createTestTaskUsageRecordAutomaticScope();
|
||||||
taskUsageRecord.validate();
|
usageRecord.validate();
|
||||||
|
logger.debug("{}", usageRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRequiredFields() throws InvalidValueException{
|
public void testRequiredFields() throws InvalidValueException{
|
||||||
ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
|
ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE);
|
||||||
TaskUsageRecord taskUsageRecord = TestUsageRecord.createTestTaskUsageRecordAutomaticScope();
|
TaskUsageRecord usageRecord = TestUsageRecord.createTestTaskUsageRecordAutomaticScope();
|
||||||
|
|
||||||
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
||||||
Set<String> gotRequiredFields = taskUsageRecord.getRequiredFields();
|
logger.debug("Expected Required Fields : {}", expectedRequiredFields);
|
||||||
|
|
||||||
|
Set<String> gotRequiredFields = usageRecord.getRequiredFields();
|
||||||
|
logger.debug("Got Required Fields : {}", gotRequiredFields);
|
||||||
|
|
||||||
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
||||||
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
||||||
|
|
||||||
taskUsageRecord.validate();
|
usageRecord.validate();
|
||||||
|
logger.debug("{}", usageRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{
|
public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{
|
||||||
TaskUsageRecord taskUsageRecord = TestUsageRecord.createTestTaskUsageRecordExplicitScope();
|
ScopeProvider.instance.reset();
|
||||||
taskUsageRecord.setScope(TestUsageRecord.TEST_SCOPE);
|
TaskUsageRecord usageRecord = TestUsageRecord.createTestTaskUsageRecordExplicitScope();
|
||||||
|
Assert.assertTrue(usageRecord.getScope()==null);
|
||||||
|
usageRecord.setScope(TestUsageRecord.TEST_SCOPE);
|
||||||
|
|
||||||
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
Set<String> expectedRequiredFields = getExpectedRequiredFields();
|
||||||
Set<String> gotRequiredFields = taskUsageRecord.getRequiredFields();
|
Set<String> gotRequiredFields = usageRecord.getRequiredFields();
|
||||||
|
|
||||||
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields));
|
||||||
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields));
|
||||||
|
|
||||||
taskUsageRecord.validate();
|
usageRecord.validate();
|
||||||
|
logger.debug("{}", usageRecord);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,13 +19,13 @@ public class NotEmptyIfNotNullValidatorTest {
|
||||||
@Test
|
@Test
|
||||||
public void testBoolean() throws InvalidValueException{
|
public void testBoolean() throws InvalidValueException{
|
||||||
NotEmptyIfNotNullValidator notEmptyIfNotNullValidator = new NotEmptyIfNotNullValidator();
|
NotEmptyIfNotNullValidator notEmptyIfNotNullValidator = new NotEmptyIfNotNullValidator();
|
||||||
Comparable<? extends Serializable> primitiveTrue = notEmptyIfNotNullValidator.validate(null, true, null);
|
Serializable primitiveTrue = notEmptyIfNotNullValidator.validate(null, true, null);
|
||||||
Assert.assertTrue((Boolean) primitiveTrue);
|
Assert.assertTrue((Boolean) primitiveTrue);
|
||||||
Comparable<? extends Serializable> primitiveFalse = notEmptyIfNotNullValidator.validate(null, false, null);
|
Serializable primitiveFalse = notEmptyIfNotNullValidator.validate(null, false, null);
|
||||||
Assert.assertFalse((Boolean) primitiveFalse);
|
Assert.assertFalse((Boolean) primitiveFalse);
|
||||||
Comparable<? extends Serializable> booleanClassTrue = notEmptyIfNotNullValidator.validate(null, Boolean.TRUE, null);
|
Serializable booleanClassTrue = notEmptyIfNotNullValidator.validate(null, Boolean.TRUE, null);
|
||||||
Assert.assertTrue((Boolean) booleanClassTrue);
|
Assert.assertTrue((Boolean) booleanClassTrue);
|
||||||
Comparable<? extends Serializable> booleanClassFalse = notEmptyIfNotNullValidator.validate(null, Boolean.FALSE, null);
|
Serializable booleanClassFalse = notEmptyIfNotNullValidator.validate(null, Boolean.FALSE, null);
|
||||||
Assert.assertFalse((Boolean) booleanClassFalse);
|
Assert.assertFalse((Boolean) booleanClassFalse);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,14 +34,12 @@ public class AggregationSchedulerTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PersistenceExecutor persistenceExecutor = new PersistenceExecutor(){
|
public static PersistenceExecutor persistenceExecutor = new PersistenceExecutor(){
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void persist(Record... records) throws Exception {
|
public void persist(Record... records) throws Exception {
|
||||||
for(Record record : records){
|
for(Record record : records){
|
||||||
logger.debug("Storing : {}", record.toString());
|
logger.debug("Storing : {}", record.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
protected void madeAssertion(Map<String, List<Record>> bufferedRecords, List<String> types, int size, int count) {
|
protected void madeAssertion(Map<String, List<Record>> bufferedRecords, List<String> types, int size, int count) {
|
||||||
|
|
Loading…
Reference in New Issue