Fixed model

This commit is contained in:
Luca Frosini 2021-04-15 17:58:06 +02:00
parent 5637b3c0af
commit 9011b0262d
5 changed files with 76 additions and 8 deletions

View File

@ -116,9 +116,14 @@ public class AggregatedStorageStatusRecord extends AbstractStorageStatusRecord i
throws NotAggregatableRecordsExceptions { throws NotAggregatableRecordsExceptions {
try { try {
AggregationUtility<AggregatedStorageStatusRecord> aggregationUtility = new AggregationUtility<AggregatedStorageStatusRecord>(this); AggregationUtility<AggregatedStorageStatusRecord> aggregationUtility = new AggregationUtility<AggregatedStorageStatusRecord>(this);
Calendar thisStartTime = this.getStartTime();
aggregationUtility.aggregate(record); aggregationUtility.aggregate(record);
this.setDataVolume(record.getDataVolume());
this.setDataCount(record.getDataCount()); // Getting the last value
if(record.getStartTime().after(thisStartTime)) {
this.setDataVolume(record.getDataVolume());
this.setDataCount(record.getDataCount());
}
}catch(NotAggregatableRecordsExceptions e){ }catch(NotAggregatableRecordsExceptions e){
throw e; throw e;

View File

@ -0,0 +1,15 @@
package org.gcube.accounting.datamodel.backwardcompatibility;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.gcube.documentstore.records.implementation.FieldDecorator;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@FieldDecorator(action=MoveToProviderURIAction.class)
public @interface MoveToProviderURI {
}

View File

@ -0,0 +1,32 @@
/**
*
*/
package org.gcube.accounting.datamodel.backwardcompatibility;
import java.io.Serializable;
import java.net.URI;
import org.gcube.accounting.datamodel.basetypes.AbstractStorageStatusRecord;
import org.gcube.accounting.datamodel.validations.validators.ValidURIValidator;
import org.gcube.documentstore.exception.InvalidValueException;
import org.gcube.documentstore.records.Record;
import org.gcube.documentstore.records.implementation.FieldAction;
/**
* @author Luca Frosini (ISTI - CNR)
*
*/
public class MoveToProviderURIAction implements FieldAction {
/**
* {@inheritDoc}
*/
@Override
public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException {
ValidURIValidator validURIValidator = new ValidURIValidator();
value = validURIValidator.validate(key, value, record);
record.setResourceProperty(AbstractStorageStatusRecord.PROVIDER_URI, (URI) value);
return null; //Returning null the initial key is removed from Record
}
}

View File

@ -8,6 +8,7 @@ import java.net.URI;
import java.util.Map; import java.util.Map;
import org.gcube.accounting.datamodel.BasicUsageRecord; import org.gcube.accounting.datamodel.BasicUsageRecord;
import org.gcube.accounting.datamodel.backwardcompatibility.MoveToProviderURI;
import org.gcube.accounting.datamodel.basetypes.AbstractStorageUsageRecord.DataType; import org.gcube.accounting.datamodel.basetypes.AbstractStorageUsageRecord.DataType;
import org.gcube.accounting.datamodel.validations.annotations.FixDataVolumeSign; import org.gcube.accounting.datamodel.validations.annotations.FixDataVolumeSign;
import org.gcube.accounting.datamodel.validations.annotations.ValidDataType; import org.gcube.accounting.datamodel.validations.annotations.ValidDataType;
@ -45,7 +46,7 @@ public abstract class AbstractStorageStatusRecord extends BasicUsageRecord {
/** /**
* KEY for : data Count number of objects * KEY for : data Count number of objects
*/ */
@RequiredField @NotEmpty @RequiredField @ValidLong @NotEmpty
public static final String DATA_COUNT = "dataCount"; public static final String DATA_COUNT = "dataCount";
/** /**
@ -69,9 +70,13 @@ public abstract class AbstractStorageStatusRecord extends BasicUsageRecord {
/** /**
* KEY for : providerId the identifier of the provider which is the target of a read/write operation * KEY for : providerId the identifier of the provider which is the target of a read/write operation
*/ */
@RequiredField @ValidURI @ValidURI @MoveToProviderURI
public static final String PROVIDER_ID = "providerId"; public static final String PROVIDER_ID = "providerId";
@RequiredField @ValidURI
public static final String PROVIDER_URI = "providerURI";
public AbstractStorageStatusRecord() { public AbstractStorageStatusRecord() {
super(); super();
@ -149,12 +154,23 @@ public abstract class AbstractStorageStatusRecord extends BasicUsageRecord {
} }
@JsonIgnore @JsonIgnore
@Deprecated
public URI getProviderId() { public URI getProviderId() {
return (URI) this.resourceProperties.get(PROVIDER_ID); return (URI) this.resourceProperties.get(PROVIDER_URI);
} }
@Deprecated
public void setProviderId(URI provideId) throws InvalidValueException { public void setProviderId(URI provideId) throws InvalidValueException {
setResourceProperty(PROVIDER_ID, provideId); // setResourceProperty(PROVIDER_ID, provideId);
setResourceProperty(PROVIDER_URI, provideId);
} }
@JsonIgnore
public URI getProviderURI() {
return (URI) this.resourceProperties.get(PROVIDER_URI);
}
public void setProviderURI(URI provideURI) throws InvalidValueException {
setResourceProperty(PROVIDER_URI, provideURI);
}
} }

View File

@ -34,7 +34,7 @@ public abstract class AbstractStorageUsageRecord extends BasicUsageRecord {
} }
public enum DataType { public enum DataType {
STORAGE, TREE, GEO, DATABASE, LOCAL, OTHER STORAGE, TREE, GEO, DATABASE, LOCAL, OTHER, JUPYTER, KUBERNETES
} }
/** /**