diff --git a/pom.xml b/pom.xml
index bb6491e..f88fc48 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,6 +55,23 @@
2.7.11
+
+ org.gcube.common
+ storagehub-client-library
+ [1.0.0, 2.0.0-SNAPSHOT)
+
+
+
+ org.gcube.common
+ home-library-jcr
+ [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT)
+
+
+ org.gcube.common
+ home-library
+ [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT)
+
+
junit
diff --git a/src/main/java/org/gcube/accounting/aggregator/directory/WorkSpaceDirectoryStructure.java b/src/main/java/org/gcube/accounting/aggregator/directory/WorkSpaceDirectoryStructure.java
index 41dfd13..2400eab 100644
--- a/src/main/java/org/gcube/accounting/aggregator/directory/WorkSpaceDirectoryStructure.java
+++ b/src/main/java/org/gcube/accounting/aggregator/directory/WorkSpaceDirectoryStructure.java
@@ -1,22 +1,23 @@
package org.gcube.accounting.aggregator.directory;
import org.gcube.accounting.aggregator.workspace.WorkSpaceManagement;
+import org.gcube.common.storagehub.client.dsl.FolderContainer;
/**
* @author Luca Frosini (ISTI - CNR)
*/
-public class WorkSpaceDirectoryStructure extends DirectoryStructure{
+public class WorkSpaceDirectoryStructure extends DirectoryStructure{
private static final String BACKUP_FOLDER_DESCRIPTION = "Accouting Aggregator Plugin Backup Folder";
@Override
- protected String getRoot() throws Exception {
- return WorkSpaceManagement.getHome();
+ protected FolderContainer getRoot() throws Exception {
+ return WorkSpaceManagement.getInstance().getWorkspaceRoot();
}
@Override
- protected String createDirectory(String parent, String name) throws Exception {
- return WorkSpaceManagement.createFolder(parent, name, BACKUP_FOLDER_DESCRIPTION);
+ protected FolderContainer createDirectory(FolderContainer parent, String name) throws Exception {
+ return WorkSpaceManagement.getInstance().createFolder(parent, name, BACKUP_FOLDER_DESCRIPTION);
}
diff --git a/src/main/java/org/gcube/accounting/aggregator/persist/Persist.java b/src/main/java/org/gcube/accounting/aggregator/persist/Persist.java
index 835f1d2..e9ddf4a 100644
--- a/src/main/java/org/gcube/accounting/aggregator/persist/Persist.java
+++ b/src/main/java/org/gcube/accounting/aggregator/persist/Persist.java
@@ -9,6 +9,7 @@ import org.gcube.accounting.aggregator.status.AggregationState;
import org.gcube.accounting.aggregator.status.AggregationStatus;
import org.gcube.accounting.aggregator.utility.Utility;
import org.gcube.accounting.aggregator.workspace.WorkSpaceManagement;
+import org.gcube.common.storagehub.client.dsl.FolderContainer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -89,14 +90,14 @@ public class Persist {
if(AggregationState.canContinue(aggregationStatus.getAggregationState(),AggregationState.ADDED)){
Calendar now = Utility.getUTCCalendarInstance();
WorkSpaceDirectoryStructure workspaceDirectoryStructure = new WorkSpaceDirectoryStructure();
- String targetFolder = workspaceDirectoryStructure.getTargetFolder(aggregationStatus.getAggregationInfo().getAggregationType(), aggregationStatus.getAggregationInfo().getAggregationStartDate());
+ FolderContainer targetFolder = workspaceDirectoryStructure.getTargetFolder(aggregationStatus.getAggregationInfo().getAggregationType(), aggregationStatus.getAggregationInfo().getAggregationStartDate());
File malformedRecords = Utility.getMalformatedFile(aggregateRecordsBackupFile);
if(malformedRecords.exists()){
- WorkSpaceManagement.zipAndBackupFiles(targetFolder,
+ WorkSpaceManagement.getInstance().zipAndBackupFiles(targetFolder,
originalRecordsbackupFile.getName().replace(Elaborator.ORIGINAL_SUFFIX, "-with-malformed"), originalRecordsbackupFile, aggregateRecordsBackupFile, malformedRecords);
}else{
- WorkSpaceManagement.zipAndBackupFiles(targetFolder,
+ WorkSpaceManagement.getInstance().zipAndBackupFiles(targetFolder,
originalRecordsbackupFile.getName().replace(Elaborator.ORIGINAL_SUFFIX, ""), originalRecordsbackupFile, aggregateRecordsBackupFile);
}
diff --git a/src/main/java/org/gcube/accounting/aggregator/utility/Utility.java b/src/main/java/org/gcube/accounting/aggregator/utility/Utility.java
index 439f7c9..9a99406 100644
--- a/src/main/java/org/gcube/accounting/aggregator/utility/Utility.java
+++ b/src/main/java/org/gcube/accounting/aggregator/utility/Utility.java
@@ -163,6 +163,12 @@ public class Utility {
return calendarToSanitize.getTime();
}
+ public static Calendar getEndCalendarFromStartCalendar(AggregationType aggregationType, Calendar aggregationStartCalendar, int offset) {
+ Calendar aggregationEndDate = getUTCCalendarInstance();
+ aggregationEndDate.setTimeInMillis(aggregationStartCalendar.getTimeInMillis());
+ aggregationEndDate.add(aggregationType.getCalendarField(), offset);
+ return aggregationEndDate;
+ }
public static Date getEndDateFromStartDate(AggregationType aggregationType, Date aggregationStartDate, int offset) {
Calendar aggregationEndDate = getUTCCalendarInstance();
diff --git a/src/main/java/org/gcube/accounting/aggregator/workspace/HTTPCall.java b/src/main/java/org/gcube/accounting/aggregator/workspace/HTTPCall.java
deleted file mode 100644
index 0c1cd7d..0000000
--- a/src/main/java/org/gcube/accounting/aggregator/workspace/HTTPCall.java
+++ /dev/null
@@ -1,337 +0,0 @@
-package org.gcube.accounting.aggregator.workspace;
-
-import java.io.BufferedReader;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.StringWriter;
-import java.io.UnsupportedEncodingException;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLEncoder;
-import java.util.Map;
-
-import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
-import org.gcube.common.scope.api.ScopeProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class HTTPCall {
-
- private static final Logger logger = LoggerFactory
- .getLogger(HTTPCall.class);
-
- public static final String CONTENT_TYPE_APPLICATION_JSON_CHARSET_UTF_8 = "application/json;charset=UTF-8";
- public static final String CONTENT_TYPE_APPLICATION_XML_CHARSET_UTF_8 = "application/xml;charset=UTF-8";
- public static final String CONTENT_TYPE_TEXT_PLAIN = "text/plain;charset=UTF-8";
-
- public enum HTTPMETHOD {
- HEAD, GET, POST, PUT, DELETE;
-
- @Override
- public String toString() {
- return this.name();
- }
- }
-
- public static final String PATH_SEPARATOR = "/";
- public static final String PARAM_STARTER = "?";
- public static final String PARAM_EQUALS = "=";
- public static final String PARAM_SEPARATOR = "&";
- public static final String UTF8 = "UTF-8";
-
- protected final String address;
- protected final String userAgent;
-
- public HTTPCall(String address, String userAgent) {
- this.address = address;
- this.userAgent = userAgent;
- }
-
- protected String getParametersDataString(
- Map parameters)
- throws UnsupportedEncodingException {
-
- if (parameters == null) {
- return null;
- }
-
- StringBuilder result = new StringBuilder();
- boolean first = true;
- for (String key : parameters.keySet()) {
- if (first) {
- first = false;
- } else {
- result.append(PARAM_SEPARATOR);
- }
-
- result.append(URLEncoder.encode(key, UTF8));
- result.append(PARAM_EQUALS);
- result.append(URLEncoder.encode(parameters.get(key), UTF8));
-
- }
-
- return result.toString();
- }
-
- protected URL getURL(String address, String path, String urlParameters) throws MalformedURLException {
-
- StringWriter stringWriter = new StringWriter();
- stringWriter.append(address);
-
- if(address.endsWith(PATH_SEPARATOR)){
- if(path.startsWith(PATH_SEPARATOR)){
- path = path.substring(1);
- }
- }else{
- if(path.compareTo("")!=0 && !path.startsWith(PATH_SEPARATOR)){
- stringWriter.append(PATH_SEPARATOR);
- }
- }
-
- stringWriter.append(path);
-
- if(urlParameters!=null){
- stringWriter.append(PARAM_STARTER);
- stringWriter.append(urlParameters);
- }
-
- return getURL(stringWriter.toString());
- }
-
-
- protected URL getURL(String urlString) throws MalformedURLException{
- URL url = new URL(urlString);
- if(url.getProtocol().compareTo("https")==0){
- url = new URL(url.getProtocol(), url.getHost(), url.getDefaultPort(), url.getFile());
- }
- return url;
- }
-
-
- protected HttpURLConnection getConnection(String path, String urlParameters, HTTPMETHOD method, String body, String contentType)
- throws Exception {
- URL url = getURL(address, path, urlParameters);
- return getConnection(url, method, body, contentType);
- }
-
- protected HttpURLConnection getConnection(String path, String urlParameters, HTTPMETHOD method, InputStream inputStream, String contentType)
- throws Exception {
- URL url = getURL(address, path, urlParameters);
- return getConnection(url, method, inputStream, contentType);
- }
-
- protected HttpURLConnection getConnection(URL url, HTTPMETHOD method, InputStream inputStream, String contentType) throws Exception {
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
-
- if (SecurityTokenProvider.instance.get() == null) {
- if (ScopeProvider.instance.get() == null) {
- throw new RuntimeException(
- "Null Token and Scope. Please set your token first.");
- }
- connection.setRequestProperty("gcube-scope",
- ScopeProvider.instance.get());
- } else {
- connection.setRequestProperty(org.gcube.common.authorization.client.Constants.TOKEN_HEADER_ENTRY,
- SecurityTokenProvider.instance.get());
- }
-
- connection.setDoOutput(true);
-
- connection.setRequestProperty("Content-type", contentType);
- connection.setRequestProperty("User-Agent", userAgent);
-
- connection.setRequestMethod(method.toString());
-
-
- if (inputStream != null
- && (method == HTTPMETHOD.POST || method == HTTPMETHOD.PUT)) {
-
- DataOutputStream wr = new DataOutputStream(
- connection.getOutputStream());
- byte[] buffer = new byte[1024];
-
- int len;
- while ((len = inputStream.read(buffer)) > 0) {
- wr.write(buffer, 0, len);
- }
- wr.flush();
- wr.close();
- }
-
-
- int responseCode = connection.getResponseCode();
- String responseMessage = connection.getResponseMessage();
- logger.trace("{} {} : {} - {}",
- method, connection.getURL(), responseCode, responseMessage);
-
- if (responseCode == HttpURLConnection.HTTP_MOVED_TEMP ||
- responseCode == HttpURLConnection.HTTP_MOVED_PERM ||
- responseCode == HttpURLConnection.HTTP_SEE_OTHER) {
-
- URL redirectURL = getURL(connection.getHeaderField("Location"));
-
- logger.trace("{} is going to be redirect to {}", url.toString(), redirectURL.toString());
-
- connection = getConnection(redirectURL, method, inputStream, contentType);
- }
-
- return connection;
- }
-
-
- protected HttpURLConnection getConnection(URL url, HTTPMETHOD method, String body, String contentType) throws Exception {
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
-
- if (SecurityTokenProvider.instance.get() == null) {
- if (ScopeProvider.instance.get() == null) {
- throw new RuntimeException(
- "Null Token and Scope. Please set your token first.");
- }
- connection.setRequestProperty("gcube-scope",
- ScopeProvider.instance.get());
- } else {
- connection.setRequestProperty(org.gcube.common.authorization.client.Constants.TOKEN_HEADER_ENTRY,
- SecurityTokenProvider.instance.get());
- }
-
- connection.setDoOutput(true);
-
- connection.setRequestProperty("Content-type", contentType);
- connection.setRequestProperty("User-Agent", userAgent);
-
- connection.setRequestMethod(method.toString());
-
-
- if (body != null
- && (method == HTTPMETHOD.POST || method == HTTPMETHOD.PUT)) {
-
- DataOutputStream wr = new DataOutputStream(
- connection.getOutputStream());
- wr.writeBytes(body);
- wr.flush();
- wr.close();
- }
-
-
- int responseCode = connection.getResponseCode();
- String responseMessage = connection.getResponseMessage();
- logger.trace("{} {} : {} - {}",
- method, connection.getURL(), responseCode, responseMessage);
-
- if (responseCode == HttpURLConnection.HTTP_MOVED_TEMP ||
- responseCode == HttpURLConnection.HTTP_MOVED_PERM ||
- responseCode == HttpURLConnection.HTTP_SEE_OTHER) {
-
- URL redirectURL = getURL(connection.getHeaderField("Location"));
-
- logger.trace("{} is going to be redirect to {}", url.toString(), redirectURL.toString());
-
- connection = getConnection(redirectURL, method, body, contentType);
- }
-
- return connection;
- }
-
- protected StringBuilder getStringBuilder(InputStream inputStream) throws IOException{
- StringBuilder result = new StringBuilder();
- try (BufferedReader reader = new BufferedReader(
- new InputStreamReader(inputStream))) {
- String line;
- while ((line = reader.readLine()) != null) {
- result.append(line);
- }
- }
-
- return result;
- }
-
- public void call(String path, HTTPMETHOD method, Map parameters, String contentType) throws Exception {
- call(path, method, parameters, null, contentType);
- }
-
- public void call(String path, HTTPMETHOD method, String body, String contentType) throws Exception {
- call(path, method, null, body, contentType);
- }
-
- protected void call(String path, HTTPMETHOD method, Map parameters, String body, String contentType) throws Exception {
-
- String urlParameters = getParametersDataString(parameters);
-
- HttpURLConnection connection = getConnection(path, urlParameters, method, body, contentType);
-
- int responseCode = connection.getResponseCode();
- String responseMessage = connection.getResponseMessage();
-
- logger.info("{} {} : {} - {}",
- method, connection.getURL(), responseCode, responseMessage);
-
- if(method == HTTPMETHOD.HEAD){
- if(responseCode == HttpURLConnection.HTTP_NO_CONTENT){
- throw new Exception(responseMessage);
- }
- if(responseCode == HttpURLConnection.HTTP_NOT_FOUND){
- throw new Exception(responseMessage);
- }
- if(responseCode == HttpURLConnection.HTTP_FORBIDDEN){
- throw new Exception(responseMessage);
- }
- }
-
-
- if (responseCode >= HttpURLConnection.HTTP_BAD_REQUEST) {
- InputStream inputStream = connection.getErrorStream();
- StringBuilder result = getStringBuilder(inputStream);
- String res = result.toString();
- throw new Exception(res);
- }
-
- StringBuilder result = getStringBuilder(connection.getInputStream());
- String res = result.toString();
- logger.trace("Server returned content : {}", res);
-
- connection.disconnect();
-
- }
-
- public void call(String path, HTTPMETHOD method, InputStream inputStream, Map parameters, String contentType) throws Exception {
- String urlParameters = getParametersDataString(parameters);
-
- HttpURLConnection connection = getConnection(path, urlParameters, method, inputStream, contentType);
-
- int responseCode = connection.getResponseCode();
- String responseMessage = connection.getResponseMessage();
-
- logger.info("{} {} : {} - {}",
- method, connection.getURL(), responseCode, responseMessage);
-
- if(method == HTTPMETHOD.HEAD){
- if(responseCode == HttpURLConnection.HTTP_NO_CONTENT){
- throw new Exception(responseMessage);
- }
- if(responseCode == HttpURLConnection.HTTP_NOT_FOUND){
- throw new Exception(responseMessage);
- }
- if(responseCode == HttpURLConnection.HTTP_FORBIDDEN){
- throw new Exception(responseMessage);
- }
- }
-
-
- if (responseCode >= HttpURLConnection.HTTP_BAD_REQUEST) {
- InputStream errorStream = connection.getErrorStream();
- StringBuilder result = getStringBuilder(errorStream);
- String res = result.toString();
- throw new Exception(res);
- }
-
- StringBuilder result = getStringBuilder(connection.getInputStream());
- String res = result.toString();
- logger.trace("Server returned content : {}", res);
-
- connection.disconnect();
- }
-
-}
diff --git a/src/main/java/org/gcube/accounting/aggregator/workspace/WorkSpaceManagement.java b/src/main/java/org/gcube/accounting/aggregator/workspace/WorkSpaceManagement.java
index 526b1f4..d4bc3f4 100644
--- a/src/main/java/org/gcube/accounting/aggregator/workspace/WorkSpaceManagement.java
+++ b/src/main/java/org/gcube/accounting/aggregator/workspace/WorkSpaceManagement.java
@@ -4,26 +4,26 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
-import org.gcube.accounting.aggregator.plugin.AccountingAggregatorPluginDeclaration;
import org.gcube.accounting.aggregator.utility.Utility;
-import org.gcube.accounting.aggregator.workspace.HTTPCall.HTTPMETHOD;
-import org.gcube.common.resources.gcore.GCoreEndpoint;
-import org.gcube.common.resources.gcore.GCoreEndpoint.Profile.Endpoint;
-import org.gcube.common.resources.gcore.utils.Group;
-import org.gcube.resources.discovery.client.api.DiscoveryClient;
-import org.gcube.resources.discovery.client.queries.api.SimpleQuery;
-import org.gcube.resources.discovery.icclient.ICFactory;
+import org.gcube.common.homelibrary.home.Home;
+import org.gcube.common.homelibrary.home.HomeLibrary;
+import org.gcube.common.homelibrary.home.HomeManager;
+import org.gcube.common.homelibrary.home.HomeManagerFactory;
+import org.gcube.common.homelibrary.home.User;
+import org.gcube.common.homelibrary.home.workspace.Workspace;
+import org.gcube.common.storagehub.client.dsl.FolderContainer;
+import org.gcube.common.storagehub.client.dsl.ItemContainer;
+import org.gcube.common.storagehub.client.dsl.ListResolverTyped;
+import org.gcube.common.storagehub.client.dsl.StorageHubClient;
+import org.gcube.common.storagehub.model.items.Item;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * @author Alessandro Pieve (ISTI - CNR)
* @author Luca Frosini (ISTI - CNR)
*/
public class WorkSpaceManagement {
@@ -34,47 +34,17 @@ public class WorkSpaceManagement {
private static final String ZIP_FILE_DESCRIPTION = "Backup of original records deleted and aggregtaed records inserted.";
private static final String ZIP_MIMETYPE = "application/zip, application/octet-stream";
- protected static final GCoreEndpoint gCoreEndpoint;
- protected static final Map restEndpointMap;
+ protected StorageHubClient storageHubClient;
- protected static final String CLASS_FORMAT = "$resource/Profile/ServiceClass/text() eq '%1s'";
- protected static final String NAME_FORMAT = "$resource/Profile/ServiceName/text() eq '%1s'";
- protected static final String STATUS_FORMAT = "$resource/Profile/DeploymentData/Status/text() eq 'ready'";
-
- protected static final String SERVICE_CLASS = "DataAccess";
- protected static final String SERVICE_NAME = "HomeLibraryWebapp";
-
- public static final String USER_AGENT = AccountingAggregatorPluginDeclaration.NAME;
-
- protected static SimpleQuery queryForHomeLibraryGCoreEndpoint(){
- return ICFactory.queryFor(GCoreEndpoint.class)
- .addCondition(String.format(CLASS_FORMAT, SERVICE_CLASS))
- .addCondition(String.format(NAME_FORMAT, SERVICE_NAME))
- .addCondition(String.format(STATUS_FORMAT))
- .setResult("$resource");
+ public static WorkSpaceManagement getInstance() {
+ return new WorkSpaceManagement();
}
- protected static GCoreEndpoint getHomeLibraryGCoreEndpoint(){
- SimpleQuery query = queryForHomeLibraryGCoreEndpoint();
- DiscoveryClient client = ICFactory.clientFor(GCoreEndpoint.class);
- List gCoreEndpoints = client.submit(query);
- return gCoreEndpoints.get(0);
+ protected WorkSpaceManagement() {
+ storageHubClient = new StorageHubClient();
}
- static {
- gCoreEndpoint = getHomeLibraryGCoreEndpoint();
- Group endpoints = gCoreEndpoint.profile().endpoints();
- restEndpointMap = new HashMap<>();
- for(Endpoint endpoint : endpoints){
- String endpointName = endpoint.name();
- String endpointURI = endpoint.uri().toString();
- if(endpointURI.contains("rest")){
- restEndpointMap.put(endpointName, endpointURI);
- }
- }
- }
-
- public static void addToZipFile(ZipOutputStream zos, File file) throws Exception {
+ public void addToZipFile(ZipOutputStream zos, File file) throws Exception {
byte[] buffer = new byte[1024];
@@ -90,12 +60,12 @@ public class WorkSpaceManagement {
in.close();
}
- private static String getZipFileName(String name) throws Exception {
+ private String getZipFileName(String name) throws Exception {
String zipFileName = String.format("%s%s", name, ZIP_SUFFIX);
return zipFileName;
}
- public static boolean zipAndBackupFiles(String targetFolder, String name, File... files) throws Exception {
+ public boolean zipAndBackupFiles(FolderContainer targetFolder, String name, File... files) throws Exception {
try {
String zipFileName = getZipFileName(name);
@@ -116,7 +86,7 @@ public class WorkSpaceManagement {
FileInputStream zipFileStream = new FileInputStream(zipFile);
- WorkSpaceManagement.uploadFile(zipFileStream, zipFileName, ZIP_FILE_DESCRIPTION,
+ WorkSpaceManagement.getInstance().uploadFile(zipFileStream, zipFileName, ZIP_FILE_DESCRIPTION,
ZIP_MIMETYPE, targetFolder);
zipFile.delete();
@@ -128,13 +98,55 @@ public class WorkSpaceManagement {
}
}
- public static String getHome() throws Exception {
- String username = Utility.getUsername();
- return String.format("/Home/%s/Workspace", username);
+ public FolderContainer getWorkspaceRoot() throws Exception {
+ try {
+ return storageHubClient.getWSRoot();
+ } catch(Exception e) {
+ String username = Utility.getUsername();
+ logger.info("Unable to obtain the Workspace Root for {}. Going to create it.", username);
+ try {
+ HomeManagerFactory factory = HomeLibrary.getHomeManagerFactory();
+ HomeManager manager = factory.getHomeManager();
+ User user = manager.createUser(username);
+ @SuppressWarnings("deprecation")
+ Home home = manager.getHome(user);
+ Workspace ws = home.getWorkspace();
+ ws.getRoot();
+ return storageHubClient.getWSRoot();
+ } catch(Exception ex) {
+ logger.info("Unable to create the Workspace Root for {}.", username);
+ throw e;
+ }
+ }
+ }
+
+ protected FolderContainer getOrCreateFolder(FolderContainer parent, String name, String description, boolean hidden)
+ throws Exception {
+ FolderContainer destinationFolder = null;
+ ListResolverTyped listResolverTyped = parent.list();
+ List> containers = listResolverTyped.includeHidden().getContainers();
+ for(ItemContainer extends Item> itemContainer : containers) {
+ if(itemContainer instanceof FolderContainer) {
+ if(itemContainer.get().getName().compareTo(name) == 0) {
+ destinationFolder = (FolderContainer) itemContainer;
+ }
+ }
+ }
+ if(destinationFolder == null) {
+ if(hidden) {
+ destinationFolder = parent.newHiddenFolder(name, description);
+ } else {
+ destinationFolder = parent.newFolder(name, description);
+ }
+ }
+ return destinationFolder;
}
- public static String createFolder(String parentPath, String folderName, String folderDescription)
+ public FolderContainer createFolder(FolderContainer parentPath, String folderName, String folderDescription)
throws Exception {
+ // TODO
+
+ /*
try {
HTTPCall httpCall = new HTTPCall(restEndpointMap.get("CreateFolder"), USER_AGENT);
Map parameters = new HashMap<>();
@@ -147,13 +159,19 @@ public class WorkSpaceManagement {
logger.error("Error while creating folder ", e);
throw e;
}
+ */
+
+ return null;
}
- public static void uploadFile(InputStream inputStream, String name, String description, String mimeType,
- String parentPath) throws Exception {
+ public void uploadFile(InputStream inputStream, String name, String description, String mimeType,
+ FolderContainer parentPath) throws Exception {
try {
logger.trace("Going to upload file on WorkSpace name:{}, description:{}, mimetype:{}, parentPath:{}", name,
description, mimeType, parentPath);
+ // TODO
+
+ /*
HTTPCall httpCall = new HTTPCall(restEndpointMap.get("Upload"), USER_AGENT);
Map parameters = new HashMap<>();
parameters.put("name", name);
@@ -161,6 +179,7 @@ public class WorkSpaceManagement {
parameters.put("parentPath", parentPath);
httpCall.call("", HTTPMETHOD.POST, inputStream, parameters, HTTPCall.CONTENT_TYPE_TEXT_PLAIN);
+ */
} catch (Exception e) {
logger.error("Error while uploading file on WorkSpace", e);
diff --git a/src/test/java/org/gcube/accounting/aggregator/file/WorkSpaceDirectoryStructureTest.java b/src/test/java/org/gcube/accounting/aggregator/file/WorkSpaceDirectoryStructureTest.java
index 7af01ae..69e9fe0 100644
--- a/src/test/java/org/gcube/accounting/aggregator/file/WorkSpaceDirectoryStructureTest.java
+++ b/src/test/java/org/gcube/accounting/aggregator/file/WorkSpaceDirectoryStructureTest.java
@@ -10,6 +10,7 @@ import org.gcube.accounting.aggregator.plugin.ContextTest;
import org.gcube.accounting.aggregator.utility.Constant;
import org.gcube.accounting.aggregator.utility.Utility;
import org.gcube.accounting.aggregator.workspace.WorkSpaceManagement;
+import org.gcube.common.storagehub.client.dsl.FolderContainer;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -25,10 +26,10 @@ public class WorkSpaceDirectoryStructureTest extends ContextTest {
Date date = Utility.getAggregationStartCalendar(2015, Calendar.JANUARY, 1).getTime();
WorkSpaceDirectoryStructure workSpaceDirectoryStructure = new WorkSpaceDirectoryStructure();
- String targetFolder = workSpaceDirectoryStructure.getTargetFolder(aggregationType, date);
+ FolderContainer targetFolder = workSpaceDirectoryStructure.getTargetFolder(aggregationType, date);
File file = new File(Constant.ROOT_DIRECTORY, "aux.txt");
- WorkSpaceManagement.zipAndBackupFiles(targetFolder, "Test", file);
+ WorkSpaceManagement.getInstance().zipAndBackupFiles(targetFolder, "Test", file);
}
}
diff --git a/src/test/java/org/gcube/accounting/aggregator/plugin/AccountingAggregatorPluginTest.java b/src/test/java/org/gcube/accounting/aggregator/plugin/AccountingAggregatorPluginTest.java
index 35ca3d6..ac34ccb 100644
--- a/src/test/java/org/gcube/accounting/aggregator/plugin/AccountingAggregatorPluginTest.java
+++ b/src/test/java/org/gcube/accounting/aggregator/plugin/AccountingAggregatorPluginTest.java
@@ -17,7 +17,7 @@ public class AccountingAggregatorPluginTest extends ContextTest {
private static Logger logger = LoggerFactory.getLogger(AccountingAggregatorPluginTest.class);
- private static final String ROOT_PROD = "/d4science.research-infrastructures.eu";
+ // private static final String ROOT_PROD = "/d4science.research-infrastructures.eu";
@Test
public void aggregate() throws Exception {
@@ -44,7 +44,7 @@ public class AccountingAggregatorPluginTest extends ContextTest {
inputs.put(AccountingAggregatorPlugin.FORCE_RERUN, false);
inputs.put(AccountingAggregatorPlugin.FORCE_RESTART, true);
- Calendar aggregationStartCalendar = Utility.getAggregationStartCalendar(2016, Calendar.OCTOBER, 1);
+ Calendar aggregationStartCalendar = Utility.getAggregationStartCalendar(2017, Calendar.JUNE, 1);
String aggregationStartDate = AccountingAggregatorPlugin.AGGREGATION_START_DATE_DATE_FORMAT.format(aggregationStartCalendar.getTime());
logger.trace("{} : {}", AccountingAggregatorPlugin.AGGREGATION_START_DATE_INPUT_PARAMETER, aggregationStartDate);
inputs.put(AccountingAggregatorPlugin.AGGREGATION_START_DATE_INPUT_PARAMETER, aggregationStartDate);
@@ -58,11 +58,15 @@ public class AccountingAggregatorPluginTest extends ContextTest {
AccountingAggregatorPlugin plugin = new AccountingAggregatorPlugin(null);
logger.debug("Going to launch {} with inputs {}", AccountingAggregatorPluginDeclaration.NAME, inputs);
-
- while(aggregationStartCalendar.get(Calendar.YEAR)!=2018) {
- aggregationStartCalendar.add(Calendar.MONTH, 1);
- inputs.put(AccountingAggregatorPlugin.AGGREGATION_START_DATE_INPUT_PARAMETER, aggregationStartDate);
+
+ // Calendar end = Utility.getEndCalendarFromStartCalendar(AggregationType.MONTHLY, aggregationStartCalendar, 1);
+ Calendar end = Utility.getAggregationStartCalendar(2018, Calendar.JANUARY, 1);
+
+ while(aggregationStartCalendar.before(end)) {
plugin.launch(inputs);
+ aggregationStartCalendar.add(Calendar.MONTH, 1);
+ aggregationStartDate = AccountingAggregatorPlugin.AGGREGATION_START_DATE_DATE_FORMAT.format(aggregationStartCalendar.getTime());
+ inputs.put(AccountingAggregatorPlugin.AGGREGATION_START_DATE_INPUT_PARAMETER, aggregationStartDate);
}
}
diff --git a/src/test/java/org/gcube/accounting/aggregator/workspace/WorkSpaceManagementTest.java b/src/test/java/org/gcube/accounting/aggregator/workspace/WorkSpaceManagementTest.java
deleted file mode 100644
index b026c4b..0000000
--- a/src/test/java/org/gcube/accounting/aggregator/workspace/WorkSpaceManagementTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.gcube.accounting.aggregator.workspace;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.gcube.accounting.aggregator.plugin.ContextTest;
-import org.gcube.common.resources.gcore.GCoreEndpoint.Profile;
-import org.gcube.common.resources.gcore.GCoreEndpoint.Profile.Endpoint;
-import org.gcube.common.resources.gcore.utils.Group;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class WorkSpaceManagementTest extends ContextTest {
-
- public static Logger logger = LoggerFactory.getLogger(WorkSpaceManagementTest.class);
-
- @Test
- public void endpointTest(){
- Profile profile = WorkSpaceManagement.gCoreEndpoint.profile();
- Group endpoints = profile.endpoints();
- Map restEndpointMap = new HashMap<>();
- for(Endpoint endpoint : endpoints){
- String endpointName = endpoint.name();
- String endpointURI = endpoint.uri().toString();
- if(endpointURI.contains("rest")){
- restEndpointMap.put(endpointName, endpointURI);
- }
- }
- logger.debug("{}", restEndpointMap);
- }
-
-}