diff --git a/.classpath b/.classpath
index 843009d..d03a6f4 100644
--- a/.classpath
+++ b/.classpath
@@ -1,12 +1,12 @@
-
+
-
+
@@ -45,5 +45,5 @@
-
+
diff --git a/distro/changelog.xml b/distro/changelog.xml
index 3558ec8..3e13599 100644
--- a/distro/changelog.xml
+++ b/distro/changelog.xml
@@ -1,4 +1,9 @@
+
+ Updated to AUTH2.0
+ Added Job
+
Added CSV download [Ticket #4041]
diff --git a/pom.xml b/pom.xml
index b8130c6..86960e2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,7 +13,7 @@
4.0.0
org.gcube.portlets.admin
accounting-manager
- 1.3.0-SNAPSHOT
+ 1.4.0-SNAPSHOT
war
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Job.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Job.java
index 16bdf96..1266f21 100644
--- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Job.java
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/maindata/charts/AccountingChart4Job.java
@@ -1,6 +1,9 @@
package org.gcube.portlets.admin.accountingmanager.client.maindata.charts;
import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.job.JobChartBasicPanel;
+import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.job.JobChartTopPanel;
+import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.service.ServiceChartBasicPanel;
+import org.gcube.portlets.admin.accountingmanager.client.maindata.charts.service.ServiceChartTopPanel;
import org.gcube.portlets.admin.accountingmanager.client.state.AccountingClientStateData;
import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesJob;
import org.gcube.portlets.admin.accountingmanager.shared.exception.ChartDrawException;
@@ -16,12 +19,13 @@ import com.sencha.gxt.widget.core.client.container.SimpleContainer;
*
*/
public class AccountingChart4Job extends AccountingChartBuilder {
-
+
private AccountingClientStateData accountingStateData;
private EventBus eventBus;
- public AccountingChart4Job(EventBus eventBus, AccountingClientStateData accountingStateData) {
- this.eventBus=eventBus;
+ public AccountingChart4Job(EventBus eventBus,
+ AccountingClientStateData accountingStateData) {
+ this.eventBus = eventBus;
this.accountingStateData = accountingStateData;
}
@@ -50,16 +54,14 @@ public class AccountingChart4Job extends AccountingChartBuilder {
}
- private SimpleContainer createJobChartPanel()
- throws ChartDrawException {
+ private SimpleContainer createJobChartPanel() throws ChartDrawException {
if (accountingStateData == null
|| accountingStateData.getSeriesRequest() == null
|| accountingStateData.getSeriesRequest()
.getAccountingFilterDefinition() == null
|| accountingStateData.getSeriesRequest()
- .getAccountingFilterDefinition()
- .getChartType() == null) {
+ .getAccountingFilterDefinition().getChartType() == null) {
return null;
}
@@ -67,15 +69,10 @@ public class AccountingChart4Job extends AccountingChartBuilder {
.getAccountingFilterDefinition().getChartType()) {
case Top:
- return null;
- //return new JobChartTopPanel(accountingStateData);
- //createJobChart(new JobChart4Top(accountingStateData));
+ return new JobChartTopPanel(eventBus, accountingStateData);
case Basic:
return new JobChartBasicPanel(eventBus, accountingStateData);
- //createJobChart(new JobChart4Basic(
- //accountingStateData));
default:
-
return null;
}
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/menu/AccountingManagerMenu.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/menu/AccountingManagerMenu.java
index b2187f5..f43429f 100644
--- a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/menu/AccountingManagerMenu.java
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/menu/AccountingManagerMenu.java
@@ -52,6 +52,11 @@ public class AccountingManagerMenu extends TabPanel {
EmptyPanel serviceCategory=new EmptyPanel(AccountingType.SERVICE.name());
add(serviceCategory, serviceItemConf);
+ TabItemConfig jobItemConf = new TabItemConfig("Job", false);
+ jobItemConf.setIcon(AccountingManagerResources.INSTANCE.accountingJob48());
+ EmptyPanel jobCategory=new EmptyPanel(AccountingType.JOB.name());
+ add(jobCategory, jobItemConf);
+
/*
TabItemConfig portletItemConf = new TabItemConfig("Portlet", false);
@@ -65,10 +70,6 @@ public class AccountingManagerMenu extends TabPanel {
add(taskCategory, taskItemConf);
*/
- /*TabItemConfig jobItemConf = new TabItemConfig("Job", false);
- jobItemConf.setIcon(AccountingManagerResources.INSTANCE.accountingJob48());
- EmptyPanel jobCategory=new EmptyPanel(AccountingType.JOB.name());
- add(jobCategory, jobItemConf);*/
setActiveWidget(getWidget(0));
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_128.png b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_128.png
index f798abc..2939ef9 100644
Binary files a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_128.png and b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_128.png differ
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_24.png b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_24.png
index 326b22c..5ef62f3 100644
Binary files a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_24.png and b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_24.png differ
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_32.png b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_32.png
index 7bd40f1..bf24ddc 100644
Binary files a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_32.png and b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_32.png differ
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_48.png b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_48.png
index d2fcd77..bb34e8e 100644
Binary files a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_48.png and b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_48.png differ
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_128.png b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_128.png
index 2939ef9..f798abc 100644
Binary files a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_128.png and b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_128.png differ
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_24.png b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_24.png
index 5ef62f3..326b22c 100644
Binary files a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_24.png and b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_24.png differ
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_32.png b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_32.png
index bf24ddc..7bd40f1 100644
Binary files a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_32.png and b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_32.png differ
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_48.png b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_48.png
index bb34e8e..d2fcd77 100644
Binary files a/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_48.png and b/src/main/java/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_48.png differ
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/ExportServlet.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/ExportServlet.java
index a2ca46a..27f08c9 100644
--- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/ExportServlet.java
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/ExportServlet.java
@@ -157,7 +157,7 @@ public class ExportServlet extends HttpServlet {
logger.error("Error in ExportServlet: "
+ e.getLocalizedMessage());
e.printStackTrace();
- throw new ServletException("Error:"
+ throw new ServletException("Error: "
+ e.getLocalizedMessage(), e);
}
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/SessionUtil.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/SessionUtil.java
index 7a932de..e137ee2 100644
--- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/SessionUtil.java
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/SessionUtil.java
@@ -3,16 +3,10 @@
*/
package org.gcube.portlets.admin.accountingmanager.server;
-import static org.gcube.common.authorization.client.Constants.authorizationService;
-
-import java.util.ArrayList;
-import java.util.List;
-
import javax.servlet.http.HttpSession;
import org.gcube.application.framework.core.session.ASLSession;
import org.gcube.application.framework.core.session.SessionManager;
-import org.gcube.common.authorization.library.provider.UserInfo;
import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper;
import org.gcube.portlets.admin.accountingmanager.server.state.AccountingState;
import org.gcube.portlets.admin.accountingmanager.server.state.AccountingStateData;
@@ -23,8 +17,6 @@ import org.gcube.portlets.admin.accountingmanager.shared.exception.SessionExpire
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
-
/**
*
* @author "Giancarlo Panichi" userRoles = new ArrayList<>();
- userRoles.add(Constants.DEFAULT_ROLE);
- /*
- * if (aslSession.getUsername().compareTo("lucio.lelii") == 0)
- * userRoles.add("VRE-Manager");
- */
- try {
- token = authorizationService().generateUserToken(
- new UserInfo(aslSession.getUsername(), userRoles),
- aslSession.getScope());
- } catch (Exception e) {
- logger.error("Error generating the token for test: "+e.getLocalizedMessage());
- e.printStackTrace();
- throw new ServiceException("Error generating the token for test: "+e.getLocalizedMessage());
- }
-
+ token = Constants.DEFAULT_TOKEN;
} else {
token = aslSession.getSecurityToken();
}
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobBasic.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobBasic.java
index 74f668d..3058031 100644
--- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobBasic.java
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobBasic.java
@@ -5,9 +5,11 @@ import java.util.List;
import org.gcube.accounting.analytics.Info;
import org.gcube.accounting.datamodel.aggregation.AggregatedJobUsageRecord;
+import org.gcube.accounting.datamodel.aggregation.AggregatedServiceUsageRecord;
import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesJob;
import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobBasic;
import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobData;
+import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceData;
import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException;
import org.json.JSONObject;
import org.slf4j.Logger;
@@ -34,28 +36,25 @@ public class SeriesResponse4JobBasic extends SeriesResponseBuilder {
try {
if (infos.size() <= 0) {
logger.error("Error creating series for job accounting: No data available!");
- throw new ServiceException(
- "No data available!");
+ throw new ServiceException("No data available!");
}
ArrayList series = new ArrayList();
for (Info info : infos) {
JSONObject jso = info.getValue();
- // Long duration =
- // jso.getLong(AggregatedJobUsageRecord.DURATION);
+ Long duration = jso.getLong(AggregatedJobUsageRecord.DURATION);
Long operationCount = jso
.getLong(AggregatedJobUsageRecord.OPERATION_COUNT);
- // Long maxInvocationTime =
- // jso.getLong(AggregatedServiceUsageRecord.MAX_INVOCATION_TIME);
- // Long minInvocationTime =
- // jso.getLong(AggregatedServiceUsageRecord.MIN_INVOCATION_TIME);
+ Long maxInvocationTime = jso
+ .getLong(AggregatedJobUsageRecord.MAX_INVOCATION_TIME);
+ Long minInvocationTime = jso
+ .getLong(AggregatedJobUsageRecord.MIN_INVOCATION_TIME);
series.add(new SeriesJobData(info.getCalendar().getTime(),
- operationCount, operationCount, operationCount,
- operationCount));
+ operationCount, duration, maxInvocationTime,
+ minInvocationTime));
}
-
SeriesJobBasic seriesJobBasic = new SeriesJobBasic(series);
SeriesJob seriesJob = new SeriesJob(seriesJobBasic);
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobTop.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobTop.java
index 8655bfd..872e7f1 100644
--- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobTop.java
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4JobTop.java
@@ -7,11 +7,16 @@ import java.util.SortedMap;
import org.gcube.accounting.analytics.Info;
import org.gcube.accounting.analytics.NumberedFilter;
import org.gcube.accounting.datamodel.aggregation.AggregatedJobUsageRecord;
+import org.gcube.accounting.datamodel.aggregation.AggregatedServiceUsageRecord;
import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValue;
import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesJob;
+import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesService;
import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobData;
import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobDataTop;
import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobTop;
+import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceData;
+import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceDataTop;
+import org.gcube.portlets.admin.accountingmanager.shared.data.response.service.SeriesServiceTop;
import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException;
import org.json.JSONObject;
import org.slf4j.Logger;
@@ -43,8 +48,10 @@ public class SeriesResponse4JobTop extends SeriesResponseBuilder {
try {
if (topSM == null || topSM.isEmpty()) {
logger.error("Error creating series for job accounting: No data available!");
- throw new ServiceException("No data available!");
+ throw new ServiceException(
+ "No data available!");
}
+
ArrayList seriesJobDataTopList = new ArrayList<>();
@@ -54,18 +61,19 @@ public class SeriesResponse4JobTop extends SeriesResponseBuilder {
SortedMap infos = topSM.get(topValue);
for (Info info : infos.values()) {
JSONObject jso = info.getValue();
- // Long duration =
- // jso.getLong(AggregatedJobUsageRecord.DURATION);
+ Long duration = jso
+ .getLong(AggregatedServiceUsageRecord.DURATION);
Long operationCount = jso
- .getLong(AggregatedJobUsageRecord.OPERATION_COUNT);
- // Long maxInvocationTime =
- // jso.getLong(AggregatedJobUsageRecord.MAX_INVOCATION_TIME);
- // Long minInvocationTime =
- // jso.getLong(AggregatedJobUsageRecord.MIN_INVOCATION_TIME);
+ .getLong(AggregatedServiceUsageRecord.OPERATION_COUNT);
+ Long maxInvocationTime = jso
+ .getLong(AggregatedServiceUsageRecord.MAX_INVOCATION_TIME);
+ Long minInvocationTime = jso
+ .getLong(AggregatedServiceUsageRecord.MIN_INVOCATION_TIME);
+
+ series.add(new SeriesJobData(info.getCalendar()
+ .getTime(), operationCount, duration,
+ maxInvocationTime, minInvocationTime));
- series.add(new SeriesJobData(info.getCalendar().getTime(),
- operationCount, operationCount, operationCount,
- operationCount));
}
SeriesJobDataTop seriesJobDataTop = new SeriesJobDataTop(
new FilterValue(topValue.getValue()), series);
@@ -73,11 +81,11 @@ public class SeriesResponse4JobTop extends SeriesResponseBuilder {
}
- SeriesJobTop seriesJobTop = new SeriesJobTop(showOthers, topNumber,
+ SeriesJobTop seriesJobTop = new SeriesJobTop(showOthers,topNumber,
seriesJobDataTopList);
- SeriesJob seriesJob = new SeriesJob(seriesJobTop);
+ SeriesJob seriesService = new SeriesJob(seriesJobTop);
- seriesResponseSpec.setSr(seriesJob);
+ seriesResponseSpec.setSr(seriesService);
} catch (Throwable e) {
logger.error("Error creating series for job accounting top chart: "
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceBasic.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceBasic.java
index 0821e47..7f9ca50 100644
--- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceBasic.java
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceBasic.java
@@ -26,39 +26,48 @@ public class SeriesResponse4ServiceBasic extends SeriesResponseBuilder {
private List infos;
public SeriesResponse4ServiceBasic(List infos) {
- this.infos=infos;
+ this.infos = infos;
}
@Override
public void buildSeriesResponse() throws ServiceException {
try {
- if(infos.size()<=0){
+ if (infos.size() <= 0) {
logger.error("Error creating series for service accounting: No data available!");
throw new ServiceException("No data available!");
}
-
- ArrayList series=new ArrayList();
+
+ ArrayList series = new ArrayList();
for (Info info : infos) {
JSONObject jso = info.getValue();
- Long duration = jso.getLong(AggregatedServiceUsageRecord.DURATION);
+ Long duration = jso
+ .getLong(AggregatedServiceUsageRecord.DURATION);
Long operationCount = jso
.getLong(AggregatedServiceUsageRecord.OPERATION_COUNT);
- Long maxInvocationTime = jso.getLong(AggregatedServiceUsageRecord.MAX_INVOCATION_TIME);
- Long minInvocationTime = jso.getLong(AggregatedServiceUsageRecord.MIN_INVOCATION_TIME);
-
- series.add(new SeriesServiceData(info.getCalendar().getTime(), operationCount, duration, maxInvocationTime, minInvocationTime));
-
+ Long maxInvocationTime = jso
+ .getLong(AggregatedServiceUsageRecord.MAX_INVOCATION_TIME);
+ Long minInvocationTime = jso
+ .getLong(AggregatedServiceUsageRecord.MIN_INVOCATION_TIME);
+
+ series.add(new SeriesServiceData(info.getCalendar().getTime(),
+ operationCount, duration, maxInvocationTime,
+ minInvocationTime));
+
}
- SeriesServiceBasic seriesServiceBasic=new SeriesServiceBasic(series);
-
+ SeriesServiceBasic seriesServiceBasic = new SeriesServiceBasic(
+ series);
+
SeriesService seriesService = new SeriesService(seriesServiceBasic);
seriesResponseSpec.setSr(seriesService);
} catch (Throwable e) {
- logger.error("Error creating series for service accounting chart basic: "+e.getLocalizedMessage());
+ logger.error("Error creating series for service accounting chart basic: "
+ + e.getLocalizedMessage());
e.printStackTrace();
- throw new ServiceException("Error creating series for service accounting chart basic: "+e.getLocalizedMessage());
+ throw new ServiceException(
+ "Error creating series for service accounting chart basic: "
+ + e.getLocalizedMessage());
}
}
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceTop.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceTop.java
index 8bca0d3..316cce7 100644
--- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceTop.java
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/amservice/response/SeriesResponse4ServiceTop.java
@@ -33,8 +33,8 @@ public class SeriesResponse4ServiceTop extends SeriesResponseBuilder {
public SeriesResponse4ServiceTop(Boolean showOthers, Integer topNumber,
SortedMap> topSM) {
- this.showOthers=showOthers;
- this.topNumber=topNumber;
+ this.showOthers = showOthers;
+ this.topNumber = topNumber;
this.topSM = topSM;
}
@@ -43,10 +43,8 @@ public class SeriesResponse4ServiceTop extends SeriesResponseBuilder {
try {
if (topSM == null || topSM.isEmpty()) {
logger.error("Error creating series for service accounting: No data available!");
- throw new ServiceException(
- "No data available!");
+ throw new ServiceException("No data available!");
}
-
ArrayList seriesServiceDataTopList = new ArrayList<>();
@@ -76,8 +74,8 @@ public class SeriesResponse4ServiceTop extends SeriesResponseBuilder {
}
- SeriesServiceTop seriesServiceTop = new SeriesServiceTop(showOthers,topNumber,
- seriesServiceDataTopList);
+ SeriesServiceTop seriesServiceTop = new SeriesServiceTop(
+ showOthers, topNumber, seriesServiceDataTopList);
SeriesService seriesService = new SeriesService(seriesServiceTop);
seriesResponseSpec.setSr(seriesService);
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/CSVManager.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/CSVManager.java
index f0eb799..d0a7504 100644
--- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/CSVManager.java
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/CSVManager.java
@@ -11,6 +11,7 @@ import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingDataRow;
import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingDataModel;
+import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingModel4Job;
import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingModel4Service;
import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingModel4Storage;
import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingModelBuilder;
@@ -62,6 +63,8 @@ public class CSVManager {
accountingModelBuilder = new AccountingModel4Storage(accountingStateData);
break;
case JOB:
+ accountingModelBuilder = new AccountingModel4Job(accountingStateData);
+ break;
case PORTLET:
case TASK:
default:
@@ -157,6 +160,8 @@ public class CSVManager {
accountindModelBuilder = new AccountingModel4Storage(accountingStateData);
break;
case JOB:
+ accountindModelBuilder = new AccountingModel4Job(accountingStateData);
+ break;
case PORTLET:
case TASK:
default:
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/JSONManager.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/JSONManager.java
index d0d72d4..2185288 100644
--- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/JSONManager.java
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/JSONManager.java
@@ -10,6 +10,7 @@ import java.nio.file.StandardOpenOption;
import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingDataModel;
import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingDataRow;
+import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingModel4Job;
import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingModel4Service;
import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingModel4Storage;
import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingModelBuilder;
@@ -66,6 +67,9 @@ public class JSONManager {
accountingStateData);
break;
case JOB:
+ accountingModelBuilder = new AccountingModel4Job(
+ accountingStateData);
+ break;
case PORTLET:
case TASK:
default:
@@ -174,6 +178,9 @@ public class JSONManager {
accountingStateData);
break;
case JOB:
+ accountingModelBuilder = new AccountingModel4Job(
+ accountingStateData);
+ break;
case PORTLET:
case TASK:
default:
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/XMLManager.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/XMLManager.java
index 943db60..1895a77 100644
--- a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/XMLManager.java
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/XMLManager.java
@@ -9,6 +9,7 @@ import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingDataModel;
+import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingModel4Job;
import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingModel4Service;
import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingModel4Storage;
import org.gcube.portlets.admin.accountingmanager.server.export.model.AccountingModelBuilder;
@@ -63,6 +64,9 @@ public class XMLManager {
accountingStateData);
break;
case JOB:
+ accountingModelBuilder = new AccountingModel4Job(
+ accountingStateData);
+ break;
case PORTLET:
case TASK:
default:
@@ -157,6 +161,8 @@ public class XMLManager {
accountingStateData);
break;
case JOB:
+ accountingModelBuilder = new AccountingModel4Job(
+ accountingStateData);
case PORTLET:
case TASK:
default:
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/model/AccountingModel4Job.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/model/AccountingModel4Job.java
new file mode 100644
index 0000000..564b155
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/server/export/model/AccountingModel4Job.java
@@ -0,0 +1,150 @@
+package org.gcube.portlets.admin.accountingmanager.server.export.model;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import org.gcube.portlets.admin.accountingmanager.server.state.AccountingStateData;
+import org.gcube.portlets.admin.accountingmanager.shared.data.FilterValue;
+import org.gcube.portlets.admin.accountingmanager.shared.data.query.SeriesRequest;
+import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesJob;
+import org.gcube.portlets.admin.accountingmanager.shared.data.response.SeriesResponse;
+import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobBasic;
+import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobData;
+import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobDataTop;
+import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobDefinition;
+import org.gcube.portlets.admin.accountingmanager.shared.data.response.job.SeriesJobTop;
+import org.gcube.portlets.admin.accountingmanager.shared.exception.ServiceException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Accounting Model 4 Job
+ *
+ * @author "Giancarlo Panichi" email: g.panichi@isti.cnr.it
+ *
+ */
+public class AccountingModel4Job extends AccountingModelBuilder {
+ protected static Logger logger = LoggerFactory
+ .getLogger(AccountingModel4Job.class);
+ private AccountingStateData accountingStateData;
+
+ public AccountingModel4Job(AccountingStateData accountingStateData) {
+ this.accountingStateData = accountingStateData;
+ }
+
+ @Override
+ public void buildOpEx() throws ServiceException {
+ SeriesRequest seriesRequest = accountingStateData.getSeriesRequest();
+
+ if (seriesRequest == null) {
+ logger.error("Error series request is null");
+ throw new ServiceException(
+ "Error series request is null");
+
+ }
+
+ String startDate="";
+ try {
+ startDate = sdfFile.format(sdf.parse(seriesRequest.getAccountingPeriod()
+ .getStartDate()));
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+
+ String endDate="";
+ try {
+ endDate = sdfFile.format(sdf.parse(seriesRequest.getAccountingPeriod()
+ .getEndDate()));
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ String periodType = seriesRequest.getAccountingPeriod().getPeriod()
+ .getLabel();
+
+ SeriesResponse seriesResponse = accountingStateData.getSeriesResponse();
+
+ if (seriesResponse == null) {
+ logger.error("Error series response is null");
+ throw new ServiceException(
+ "Error series response is null");
+ }
+
+ String fileName = "Untitled";
+ ArrayList header;
+ ArrayList rows = new ArrayList<>();
+ if (seriesResponse instanceof SeriesJob) {
+ SeriesJob seriesService = (SeriesJob) seriesResponse;
+ SeriesJobDefinition definition = seriesService
+ .getSeriesJobDefinition();
+ if (definition instanceof SeriesJobBasic) {
+ SeriesJobBasic seriesJobBasic = (SeriesJobBasic) definition;
+ fileName = "Job_" + periodType + "_" + startDate + "_"
+ + endDate;
+ header = new ArrayList<>(Arrays.asList(new String[] { "Date",
+ "Operation Count", "Duration", "Max Invocation",
+ "Min Invocation" }));
+ ArrayList listData = seriesJobBasic
+ .getSeries();
+ for (SeriesJobData seriesData : listData) {
+ ArrayList data = new ArrayList<>();
+ data.add(sdfCSVDate.format(seriesData.getDate()));
+ data.add(String.valueOf(seriesData.getOperationCount()));
+ data.add(String.valueOf(seriesData.getDuration()));
+ data.add(String.valueOf(seriesData.getMaxInvocationTime()));
+ data.add(String.valueOf(seriesData.getMinInvocationTime()));
+ AccountingDataRow csvDataRow = new AccountingDataRow(data);
+ rows.add(csvDataRow);
+ }
+ } else {
+ if (definition instanceof SeriesJobTop) {
+ SeriesJobTop seriesJobTop = (SeriesJobTop) definition;
+ fileName = "JobTop_" + periodType + "_" + startDate
+ + "_" + endDate;
+ header = new ArrayList<>(Arrays.asList(new String[] {
+ "Value", "Date", "Operation Count", "Duration",
+ "Max Invocation", "Min Invocation" }));
+ ArrayList listDataTop = seriesJobTop
+ .getSeriesJobDataTopList();
+ for (SeriesJobDataTop seriesDataTop : listDataTop) {
+ FilterValue filterValue = seriesDataTop
+ .getFilterValue();
+ ArrayList listData = seriesDataTop
+ .getSeries();
+ for (SeriesJobData seriesData : listData) {
+ ArrayList data = new ArrayList<>();
+ data.add(filterValue.getValue());
+ data.add(sdfCSVDate.format(seriesData.getDate()));
+ data.add(String.valueOf(seriesData
+ .getOperationCount()));
+ data.add(String.valueOf(seriesData.getDuration()));
+ data.add(String.valueOf(seriesData
+ .getMaxInvocationTime()));
+ data.add(String.valueOf(seriesData
+ .getMinInvocationTime()));
+ AccountingDataRow csvDataRow = new AccountingDataRow(data);
+ rows.add(csvDataRow);
+ }
+ }
+ } else {
+ logger.error("Unsupported Serie Definition for Job: "
+ + definition);
+ throw new ServiceException(
+ "Unsupported Serie Definition for Job: "
+ + definition);
+ }
+ }
+ } else {
+ logger.error("Job not support this serie response: "
+ + seriesResponse);
+ throw new ServiceException(
+ "Job not support this serie response: "
+ + seriesResponse);
+ }
+
+ AccountingDataModel invocation = new AccountingDataModel(fileName, header, rows);
+ accountingModelSpec.setOp(invocation);
+
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/Constants.java b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/Constants.java
index ebf9e31..397f980 100644
--- a/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/Constants.java
+++ b/src/main/java/org/gcube/portlets/admin/accountingmanager/shared/Constants.java
@@ -14,13 +14,8 @@ public class Constants {
public static final String AM_LANG_COOKIE = "AMLangCookie";
public static final String AM_LANG = "AMLang";
public static final String DEFAULT_USER = "giancarlo.panichi";
- //public final static String DEFAULT_USER = "test.user";
- //public final static String DEFAULT_SCOPE = "/gcube/devNext";
- //public final static String DEFAULT_SCOPE = "/gcube/devsec/devVRE";
-
- //public final static String DEFAULT_SCOPE = "/gcube/devNext/NextNext";
-
- public static final String DEFAULT_SCOPE = "/gcube";
+ public final static String DEFAULT_SCOPE = "/gcube/devNext";
+ public final static String DEFAULT_TOKEN = "16e65d4f-11e0-4e4a-84b9-351688fccc12-98187548";
public static final String DEFAULT_ROLE = "OrganizationMember";
public static final String EXPORT_SERVLET="ExportServlet";
diff --git a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_128.png b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_128.png
index f798abc..2939ef9 100644
Binary files a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_128.png and b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_128.png differ
diff --git a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_24.png b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_24.png
index 326b22c..5ef62f3 100644
Binary files a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_24.png and b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_24.png differ
diff --git a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_32.png b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_32.png
index 7bd40f1..bf24ddc 100644
Binary files a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_32.png and b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_32.png differ
diff --git a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_48.png b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_48.png
index d2fcd77..bb34e8e 100644
Binary files a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_48.png and b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-job_48.png differ
diff --git a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_128.png b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_128.png
index 2939ef9..f798abc 100644
Binary files a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_128.png and b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_128.png differ
diff --git a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_24.png b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_24.png
index 5ef62f3..326b22c 100644
Binary files a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_24.png and b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_24.png differ
diff --git a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_32.png b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_32.png
index bf24ddc..7bd40f1 100644
Binary files a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_32.png and b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_32.png differ
diff --git a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_48.png b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_48.png
index bb34e8e..d2fcd77 100644
Binary files a/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_48.png and b/src/main/resources/org/gcube/portlets/admin/accountingmanager/client/resource/accounting-task_48.png differ