From 1aef4d0ed7dc27f674c0237d319e16ac9cf2ae91 Mon Sep 17 00:00:00 2001 From: Alessandro Pieve Date: Mon, 19 Sep 2016 09:01:14 +0000 Subject: [PATCH] git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/accounting/accounting-analytics-persistence-couchbase@131470 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 13 +---- .../AccountingPersistenceQueryCouchBase.java | 11 +++- ...countingPersistenceQueryCouchBaseTest.java | 52 +++++++++++++++++-- 3 files changed, 58 insertions(+), 18 deletions(-) diff --git a/pom.xml b/pom.xml index 2b39087..cc80ac0 100644 --- a/pom.xml +++ b/pom.xml @@ -94,18 +94,7 @@ [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) test - - org.gcube.common - authorization-client - [2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT) - provided - - - org.gcube.common - common-authorization - [2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT) - provided - + diff --git a/src/main/java/org/gcube/accounting/analytics/persistence/couchbase/AccountingPersistenceQueryCouchBase.java b/src/main/java/org/gcube/accounting/analytics/persistence/couchbase/AccountingPersistenceQueryCouchBase.java index 5dfa1d5..a4023d1 100644 --- a/src/main/java/org/gcube/accounting/analytics/persistence/couchbase/AccountingPersistenceQueryCouchBase.java +++ b/src/main/java/org/gcube/accounting/analytics/persistence/couchbase/AccountingPersistenceQueryCouchBase.java @@ -603,8 +603,17 @@ AccountingPersistenceBackendQuery { Collection selectExpressions = new ArrayList<>(); //add select expression + /* selectExpressions.add(x("SUM(" + getSpecializedProperty(clz,orderingProperty) + ")"). as(orderingProperty)); + */ + //add select expression and check if exist + + selectExpressions.add(x("SUM(CASE WHEN " + getSpecializedProperty(clz,orderingProperty) + + " IS NOT NULL THEN "+getSpecializedProperty(clz,orderingProperty)+" ELSE 1 END )"). + as(orderingProperty)); + + selectExpressions.add(x(getSpecializedProperty(clz,key)).as(key)); //add where expression @@ -696,7 +705,7 @@ AccountingPersistenceBackendQuery { try { JsonObject jsonObject = row.value(); //logger.trace("JsonObject : {}", row.value()+" key"+key); - + logger.warn("pre"+jsonObject.toString()+" key :"+key); //verify for a not null value String value = jsonObject.getString(key); Number n = jsonObject.getDouble(orderingProperty); diff --git a/src/test/java/org/gcube/accounting/analytics/persistence/couchbase/AccountingPersistenceQueryCouchBaseTest.java b/src/test/java/org/gcube/accounting/analytics/persistence/couchbase/AccountingPersistenceQueryCouchBaseTest.java index 9c11353..ba5458e 100644 --- a/src/test/java/org/gcube/accounting/analytics/persistence/couchbase/AccountingPersistenceQueryCouchBaseTest.java +++ b/src/test/java/org/gcube/accounting/analytics/persistence/couchbase/AccountingPersistenceQueryCouchBaseTest.java @@ -9,6 +9,7 @@ import java.util.Calendar; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.SortedMap; import java.util.SortedSet; @@ -18,7 +19,10 @@ import org.gcube.accounting.analytics.NumberedFilter; import org.gcube.accounting.analytics.TemporalConstraint; import org.gcube.accounting.analytics.TemporalConstraint.AggregationMode; import org.gcube.accounting.analytics.persistence.AccountingPersistenceBackendQueryConfiguration; +import org.gcube.accounting.analytics.persistence.AccountingPersistenceQuery; +import org.gcube.accounting.datamodel.aggregation.AggregatedJobUsageRecord; import org.gcube.accounting.datamodel.aggregation.AggregatedServiceUsageRecord; +import org.gcube.accounting.datamodel.usagerecords.JobUsageRecord; import org.gcube.common.scope.api.ScopeProvider; import org.json.JSONException; import org.json.JSONObject; @@ -74,7 +78,7 @@ public class AccountingPersistenceQueryCouchBaseTest { @Before public void before() throws Exception{ - ScopeProvider.instance.set("/gcube/devNext"); + ScopeProvider.instance.set("/gcube/devNext/NextNext"); AccountingPersistenceBackendQueryConfiguration configuration = new AccountingPersistenceBackendQueryConfiguration(AccountingPersistenceQueryCouchBase.class); @@ -96,11 +100,47 @@ public class AccountingPersistenceQueryCouchBaseTest { } @Test - public void test() throws Exception { + public void testTopJob() throws Exception { Calendar startTime = Calendar.getInstance(); - startTime.set(2016, Calendar.AUGUST, 29); + startTime.set(2015, Calendar.AUGUST, 20); Calendar endTime = Calendar.getInstance(); - endTime.set(2016, Calendar.AUGUST, 29,23,59); + endTime.set(2016, Calendar.SEPTEMBER, 29,23,59); + + + List filters = new ArrayList(); + + TemporalConstraint temporalConstraint = + new TemporalConstraint(startTime.getTimeInMillis(), + endTime.getTimeInMillis(), AggregationMode.DAILY); + + Class clz = + AggregatedJobUsageRecord.class; + + SortedMap> set = + accountingPersistenceQueryCouchBase.getTopValues( + clz, temporalConstraint, filters, + AggregatedJobUsageRecord.CONSUMER_ID, null); + + + JobUsageRecord record =new JobUsageRecord(); + Set result=record.getRequiredFields(); + logger.debug("result"+result.toString()); + logger.debug("Result final{}", set); + } + + @Test + public void getQuerableKey() throws Exception{ + SortedSet keys = AccountingPersistenceQuery.getQuerableKeys(AggregatedJobUsageRecord.class); + logger.debug("keys:"+keys); + + } + + @Test + public void testTopService() throws Exception { + Calendar startTime = Calendar.getInstance(); + startTime.set(2016, Calendar.AUGUST, 25); + Calendar endTime = Calendar.getInstance(); + endTime.set(2016, Calendar.AUGUST, 28,23,59); List filters = new ArrayList(); @@ -115,11 +155,13 @@ public class AccountingPersistenceQueryCouchBaseTest { SortedMap> set = accountingPersistenceQueryCouchBase.getTopValues( clz, temporalConstraint, filters, - AggregatedServiceUsageRecord.CALLED_METHOD, null); + AggregatedServiceUsageRecord.HOST, null); logger.debug("Result final{}", set); } + + public static SortedMap padMap( SortedMap unpaddedData, TemporalConstraint temporalConstraint) throws Exception {