refs #200: Create accouting-lib library
https://support.d4science.org/issues/200 Implementing library git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/accounting/accounting-lib@115289 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
80f9872aff
commit
3a2792d7d5
|
@ -494,11 +494,14 @@ public abstract class RawUsageRecord implements UsageRecord, Serializable {
|
||||||
List<FieldAction> fieldValidators = validation.get(key);
|
List<FieldAction> fieldValidators = validation.get(key);
|
||||||
if(fieldValidators!=null){
|
if(fieldValidators!=null){
|
||||||
for(FieldAction fieldValidator : fieldValidators){
|
for(FieldAction fieldValidator : fieldValidators){
|
||||||
|
if(aggregatedFields.contains(key)){
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
if(computedFields.contains(key)){
|
||||||
|
logger.debug("{} is a computed field. To be calculated all the required fields to calcutalate it MUST be set. "
|
||||||
|
+ "In any case the provided value is ignored.");
|
||||||
|
}
|
||||||
checkedValue = fieldValidator.validate(key, checkedValue, this);
|
checkedValue = fieldValidator.validate(key, checkedValue, this);
|
||||||
/*
|
|
||||||
* Check here if the key is for a ComputedField or for an
|
|
||||||
* AggregatedField
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return checkedValue;
|
return checkedValue;
|
||||||
|
|
|
@ -23,13 +23,17 @@ import org.gcube.accounting.datamodel.validations.annotations.NotEmpty;
|
||||||
import org.gcube.accounting.datamodel.validations.annotations.ValidInteger;
|
import org.gcube.accounting.datamodel.validations.annotations.ValidInteger;
|
||||||
import org.gcube.accounting.datamodel.validations.annotations.ValidLong;
|
import org.gcube.accounting.datamodel.validations.annotations.ValidLong;
|
||||||
import org.gcube.accounting.exception.InvalidValueException;
|
import org.gcube.accounting.exception.InvalidValueException;
|
||||||
|
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/
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class JobUsageRecord extends RawUsageRecord implements SingleUsageRecord {
|
public class JobUsageRecord extends RawUsageRecord implements SingleUsageRecord {
|
||||||
|
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(JobUsageRecord.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generated Serial Version UID
|
* Generated Serial Version UID
|
||||||
*/
|
*/
|
||||||
|
@ -67,14 +71,11 @@ public class JobUsageRecord extends RawUsageRecord implements SingleUsageRecord
|
||||||
try {
|
try {
|
||||||
long wallDuration = calculateWallDuration();
|
long wallDuration = calculateWallDuration();
|
||||||
if(key.compareTo(WALL_DURATION)==0){
|
if(key.compareTo(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.",
|
||||||
|
WALL_DURATION, JOB_START_TIME, JOB_END_TIME);
|
||||||
value = wallDuration;
|
value = wallDuration;
|
||||||
}
|
}
|
||||||
}catch(InvalidValueException e){
|
}catch(InvalidValueException e){ }
|
||||||
if(key.compareTo(WALL_DURATION)==0){
|
|
||||||
throw new InvalidValueException(String.format("Unable to set %s. %s and %s MUST be set before.", WALL_DURATION,
|
|
||||||
JOB_START_TIME, JOB_END_TIME));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ public class JobUsageRecord extends org.gcube.accounting.datamodel.implementatio
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<JobUsageRecord> aggregate(List<JobUsageRecord> records) {
|
public List<JobUsageRecord> aggregate(List<JobUsageRecord> records) {
|
||||||
// TODO implements
|
// TODO
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ public class PortletUsageRecord extends org.gcube.accounting.datamodel.implement
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<PortletUsageRecord> aggregate(List<PortletUsageRecord> records) {
|
public List<PortletUsageRecord> aggregate(List<PortletUsageRecord> records) {
|
||||||
// TODO implements
|
// TODO
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ public class ServiceUsageRecord extends org.gcube.accounting.datamodel.implement
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<ServiceUsageRecord> aggregate(List<ServiceUsageRecord> records) {
|
public List<ServiceUsageRecord> aggregate(List<ServiceUsageRecord> records) {
|
||||||
// TODO implements
|
// TODO
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ public class StorageUsageUsageRecord extends org.gcube.accounting.datamodel.impl
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<StorageUsageUsageRecord> aggregate(List<StorageUsageUsageRecord> records) {
|
public List<StorageUsageUsageRecord> aggregate(List<StorageUsageUsageRecord> records) {
|
||||||
// TODO implements
|
// TODO
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,8 +79,7 @@ public class CouchDBPersistence extends Persistence {
|
||||||
HttpClient httpClient = initHttpClient(host, port, username, password);
|
HttpClient httpClient = initHttpClient(host, port, username, password);
|
||||||
couchDbInstance = new StdCouchDbInstance(httpClient);
|
couchDbInstance = new StdCouchDbInstance(httpClient);
|
||||||
couchDbConnector = new StdCouchDbConnector(dbName, couchDbInstance);
|
couchDbConnector = new StdCouchDbConnector(dbName, couchDbInstance);
|
||||||
// TODO remove this
|
couchDbConnector.createDatabaseIfNotExists(); // TODO remove this
|
||||||
couchDbConnector.createDatabaseIfNotExists();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void createItem(JsonNode node, String id) throws Exception {
|
protected void createItem(JsonNode node, String id) throws Exception {
|
||||||
|
|
Loading…
Reference in New Issue