From 3a2792d7d54b1bfb27f2d952ebe0d809e0618ce1 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Wed, 10 Jun 2015 12:01:33 +0000 Subject: [PATCH] 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 --- .../accounting/datamodel/RawUsageRecord.java | 11 +++++++---- .../datamodel/implementations/JobUsageRecord.java | 15 ++++++++------- .../aggregated/JobUsageRecord.java | 2 +- .../aggregated/PortletUsageRecord.java | 2 +- .../aggregated/ServiceUsageRecord.java | 2 +- .../aggregated/StorageUsageUsageRecord.java | 2 +- .../persistence/CouchDBPersistence.java | 3 +-- 7 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/main/java/org/gcube/accounting/datamodel/RawUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/RawUsageRecord.java index 310e1a5..94d9c41 100644 --- a/src/main/java/org/gcube/accounting/datamodel/RawUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/RawUsageRecord.java @@ -494,11 +494,14 @@ public abstract class RawUsageRecord implements UsageRecord, Serializable { List fieldValidators = validation.get(key); if(fieldValidators!=null){ 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); - /* - * Check here if the key is for a ComputedField or for an - * AggregatedField - */ } } return checkedValue; diff --git a/src/main/java/org/gcube/accounting/datamodel/implementations/JobUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/implementations/JobUsageRecord.java index 3c629f8..a1eedad 100644 --- a/src/main/java/org/gcube/accounting/datamodel/implementations/JobUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/implementations/JobUsageRecord.java @@ -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.ValidLong; import org.gcube.accounting.exception.InvalidValueException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ * */ public class JobUsageRecord extends RawUsageRecord implements SingleUsageRecord { - + + private static Logger logger = LoggerFactory.getLogger(JobUsageRecord.class); + /** * Generated Serial Version UID */ @@ -67,14 +71,11 @@ public class JobUsageRecord extends RawUsageRecord implements SingleUsageRecord try { long wallDuration = calculateWallDuration(); 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; } - }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)); - } - } + }catch(InvalidValueException e){ } return value; } } diff --git a/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/JobUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/JobUsageRecord.java index aea9fac..59ba2ac 100644 --- a/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/JobUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/JobUsageRecord.java @@ -36,7 +36,7 @@ public class JobUsageRecord extends org.gcube.accounting.datamodel.implementatio */ @Override public List aggregate(List records) { - // TODO implements + // TODO throw new UnsupportedOperationException(); } diff --git a/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/PortletUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/PortletUsageRecord.java index 3a18d02..0fee189 100644 --- a/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/PortletUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/PortletUsageRecord.java @@ -37,7 +37,7 @@ public class PortletUsageRecord extends org.gcube.accounting.datamodel.implement */ @Override public List aggregate(List records) { - // TODO implements + // TODO throw new UnsupportedOperationException(); } diff --git a/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/ServiceUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/ServiceUsageRecord.java index 9150673..8677eea 100644 --- a/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/ServiceUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/ServiceUsageRecord.java @@ -59,7 +59,7 @@ public class ServiceUsageRecord extends org.gcube.accounting.datamodel.implement */ @Override public List aggregate(List records) { - // TODO implements + // TODO throw new UnsupportedOperationException(); } } diff --git a/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/StorageUsageUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/StorageUsageUsageRecord.java index 28b24f4..ef45f50 100644 --- a/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/StorageUsageUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/implementations/aggregated/StorageUsageUsageRecord.java @@ -36,7 +36,7 @@ public class StorageUsageUsageRecord extends org.gcube.accounting.datamodel.impl */ @Override public List aggregate(List records) { - // TODO implements + // TODO throw new UnsupportedOperationException(); } } diff --git a/src/main/java/org/gcube/accounting/persistence/CouchDBPersistence.java b/src/main/java/org/gcube/accounting/persistence/CouchDBPersistence.java index b910e40..3f928e4 100644 --- a/src/main/java/org/gcube/accounting/persistence/CouchDBPersistence.java +++ b/src/main/java/org/gcube/accounting/persistence/CouchDBPersistence.java @@ -79,8 +79,7 @@ public class CouchDBPersistence extends Persistence { HttpClient httpClient = initHttpClient(host, port, username, password); couchDbInstance = new StdCouchDbInstance(httpClient); couchDbConnector = new StdCouchDbConnector(dbName, couchDbInstance); - // TODO remove this - couchDbConnector.createDatabaseIfNotExists(); + couchDbConnector.createDatabaseIfNotExists(); // TODO remove this } protected void createItem(JsonNode node, String id) throws Exception {