git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/accounting/accounting-analytics-persistence-couchbase@131470 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
ee902ac7e3
commit
1aef4d0ed7
13
pom.xml
13
pom.xml
|
@ -94,18 +94,7 @@
|
||||||
<version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
<version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.gcube.common</groupId>
|
|
||||||
<artifactId>authorization-client</artifactId>
|
|
||||||
<version>[2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.gcube.common</groupId>
|
|
||||||
<artifactId>common-authorization</artifactId>
|
|
||||||
<version>[2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version>
|
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- End Use for Junit Test -->
|
<!-- End Use for Junit Test -->
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
|
@ -603,8 +603,17 @@ AccountingPersistenceBackendQuery {
|
||||||
Collection<Expression> selectExpressions = new ArrayList<>();
|
Collection<Expression> selectExpressions = new ArrayList<>();
|
||||||
|
|
||||||
//add select expression
|
//add select expression
|
||||||
|
/*
|
||||||
selectExpressions.add(x("SUM(" + getSpecializedProperty(clz,orderingProperty) + ")").
|
selectExpressions.add(x("SUM(" + getSpecializedProperty(clz,orderingProperty) + ")").
|
||||||
as(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));
|
selectExpressions.add(x(getSpecializedProperty(clz,key)).as(key));
|
||||||
|
|
||||||
//add where expression
|
//add where expression
|
||||||
|
@ -696,7 +705,7 @@ AccountingPersistenceBackendQuery {
|
||||||
try {
|
try {
|
||||||
JsonObject jsonObject = row.value();
|
JsonObject jsonObject = row.value();
|
||||||
//logger.trace("JsonObject : {}", row.value()+" key"+key);
|
//logger.trace("JsonObject : {}", row.value()+" key"+key);
|
||||||
|
logger.warn("pre"+jsonObject.toString()+" key :"+key);
|
||||||
//verify for a not null value
|
//verify for a not null value
|
||||||
String value = jsonObject.getString(key);
|
String value = jsonObject.getString(key);
|
||||||
Number n = jsonObject.getDouble(orderingProperty);
|
Number n = jsonObject.getDouble(orderingProperty);
|
||||||
|
|
|
@ -9,6 +9,7 @@ import java.util.Calendar;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.SortedMap;
|
import java.util.SortedMap;
|
||||||
import java.util.SortedSet;
|
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;
|
||||||
import org.gcube.accounting.analytics.TemporalConstraint.AggregationMode;
|
import org.gcube.accounting.analytics.TemporalConstraint.AggregationMode;
|
||||||
import org.gcube.accounting.analytics.persistence.AccountingPersistenceBackendQueryConfiguration;
|
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.aggregation.AggregatedServiceUsageRecord;
|
||||||
|
import org.gcube.accounting.datamodel.usagerecords.JobUsageRecord;
|
||||||
import org.gcube.common.scope.api.ScopeProvider;
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
@ -74,7 +78,7 @@ public class AccountingPersistenceQueryCouchBaseTest {
|
||||||
@Before
|
@Before
|
||||||
public void before() throws Exception{
|
public void before() throws Exception{
|
||||||
|
|
||||||
ScopeProvider.instance.set("/gcube/devNext");
|
ScopeProvider.instance.set("/gcube/devNext/NextNext");
|
||||||
|
|
||||||
AccountingPersistenceBackendQueryConfiguration configuration = new
|
AccountingPersistenceBackendQueryConfiguration configuration = new
|
||||||
AccountingPersistenceBackendQueryConfiguration(AccountingPersistenceQueryCouchBase.class);
|
AccountingPersistenceBackendQueryConfiguration(AccountingPersistenceQueryCouchBase.class);
|
||||||
|
@ -96,11 +100,47 @@ public class AccountingPersistenceQueryCouchBaseTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test() throws Exception {
|
public void testTopJob() throws Exception {
|
||||||
Calendar startTime = Calendar.getInstance();
|
Calendar startTime = Calendar.getInstance();
|
||||||
startTime.set(2016, Calendar.AUGUST, 29);
|
startTime.set(2015, Calendar.AUGUST, 20);
|
||||||
Calendar endTime = Calendar.getInstance();
|
Calendar endTime = Calendar.getInstance();
|
||||||
endTime.set(2016, Calendar.AUGUST, 29,23,59);
|
endTime.set(2016, Calendar.SEPTEMBER, 29,23,59);
|
||||||
|
|
||||||
|
|
||||||
|
List<Filter> filters = new ArrayList<Filter>();
|
||||||
|
|
||||||
|
TemporalConstraint temporalConstraint =
|
||||||
|
new TemporalConstraint(startTime.getTimeInMillis(),
|
||||||
|
endTime.getTimeInMillis(), AggregationMode.DAILY);
|
||||||
|
|
||||||
|
Class<AggregatedJobUsageRecord> clz =
|
||||||
|
AggregatedJobUsageRecord.class;
|
||||||
|
|
||||||
|
SortedMap<NumberedFilter, SortedMap<Calendar, Info>> set =
|
||||||
|
accountingPersistenceQueryCouchBase.getTopValues(
|
||||||
|
clz, temporalConstraint, filters,
|
||||||
|
AggregatedJobUsageRecord.CONSUMER_ID, null);
|
||||||
|
|
||||||
|
|
||||||
|
JobUsageRecord record =new JobUsageRecord();
|
||||||
|
Set<String> result=record.getRequiredFields();
|
||||||
|
logger.debug("result"+result.toString());
|
||||||
|
logger.debug("Result final{}", set);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getQuerableKey() throws Exception{
|
||||||
|
SortedSet<String> 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<Filter> filters = new ArrayList<Filter>();
|
List<Filter> filters = new ArrayList<Filter>();
|
||||||
|
@ -115,11 +155,13 @@ public class AccountingPersistenceQueryCouchBaseTest {
|
||||||
SortedMap<NumberedFilter, SortedMap<Calendar, Info>> set =
|
SortedMap<NumberedFilter, SortedMap<Calendar, Info>> set =
|
||||||
accountingPersistenceQueryCouchBase.getTopValues(
|
accountingPersistenceQueryCouchBase.getTopValues(
|
||||||
clz, temporalConstraint, filters,
|
clz, temporalConstraint, filters,
|
||||||
AggregatedServiceUsageRecord.CALLED_METHOD, null);
|
AggregatedServiceUsageRecord.HOST, null);
|
||||||
|
|
||||||
logger.debug("Result final{}", set);
|
logger.debug("Result final{}", set);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static SortedMap<Calendar, Info> padMap(
|
public static SortedMap<Calendar, Info> padMap(
|
||||||
SortedMap<Calendar, Info> unpaddedData,
|
SortedMap<Calendar, Info> unpaddedData,
|
||||||
TemporalConstraint temporalConstraint) throws Exception {
|
TemporalConstraint temporalConstraint) throws Exception {
|
||||||
|
|
Reference in New Issue