added token and region parameters.

refactoring code
This commit is contained in:
roberto cirillo 2020-12-22 17:57:44 +01:00
parent a4532fcacd
commit e0a11206b7
67 changed files with 516 additions and 448 deletions

View File

@ -16,7 +16,7 @@ package org.gcube.contentmanagement.blobstorage.resource;
* *
* It means that the client would be upload a file that have an absolute local path defined in pathClient field, * It means that the client would be upload a file that have an absolute local path defined in pathClient field,
* on the remote location identifies by pathServer field of the resource MyFile * on the remote location identifies by pathServer field of the resource MyFile
* @see org.gcube.contentmanagement.blobstorage.resource.MyFile * @see org.gcube.contentmanagement.blobstorage.resource.RequestObject
* *
* @author Roberto Cirillo (ISTI-CNR) * @author Roberto Cirillo (ISTI-CNR)
* *

View File

@ -19,7 +19,7 @@ import org.slf4j.LoggerFactory;
* @author Roberto Cirillo (ISTI - CNR) * @author Roberto Cirillo (ISTI - CNR)
* *
*/ */
public class MyFile { public class RequestObject {
// file name // file name
private String name; private String name;
@ -88,9 +88,17 @@ public class MyFile {
private String readPreference; private String readPreference;
private String rootPath; private String rootPath;
private boolean replace=false; private boolean replace=false;
final Logger logger = LoggerFactory.getLogger(MyFile.class); private String token;
private String region;
public MyFile(boolean lock){
final Logger logger = LoggerFactory.getLogger(RequestObject.class);
public RequestObject(boolean lock){
setLock(lock); setLock(lock);
} }
@ -100,7 +108,7 @@ public class MyFile {
* @param name name of the file * @param name name of the file
* @param pathClient local path of the file * @param pathClient local path of the file
*/ */
public MyFile(String author, String name, String pathClient, MemoryType memoryType){ public RequestObject(String author, String name, String pathClient, MemoryType memoryType){
this.setOwner(author); this.setOwner(author);
this.setName(name); this.setName(name);
this.setLocalPath(pathClient); this.setLocalPath(pathClient);
@ -115,7 +123,7 @@ public class MyFile {
* @param pathServer remote path of the file * @param pathServer remote path of the file
*/ */
public MyFile(String author, String name, String pathClient, String pathServer, MemoryType memoryType){ public RequestObject(String author, String name, String pathClient, String pathServer, MemoryType memoryType){
this.setOwner(author); this.setOwner(author);
this.setName(name); this.setName(name);
this.setLocalPath(pathClient); this.setLocalPath(pathClient);
@ -123,7 +131,7 @@ public class MyFile {
setGcubeMemoryType(memoryType); setGcubeMemoryType(memoryType);
} }
public MyFile(MemoryType memoryType) { public RequestObject(MemoryType memoryType) {
setGcubeMemoryType(memoryType); setGcubeMemoryType(memoryType);
} }
@ -132,7 +140,7 @@ public class MyFile {
* build a new object with only the name setted * build a new object with only the name setted
* @param name file name * @param name file name
*/ */
public MyFile(String name, MemoryType memoryType){ public RequestObject(String name, MemoryType memoryType){
setName(name); setName(name);
setGcubeMemoryType(memoryType); setGcubeMemoryType(memoryType);
} }
@ -237,8 +245,8 @@ public class MyFile {
* returns a copy of the current resource * returns a copy of the current resource
* @return the file copy * @return the file copy
*/ */
public MyFile copyProperties(){ public RequestObject copyProperties(){
MyFile dest=new MyFile(getGcubeMemoryType()); RequestObject dest=new RequestObject(getGcubeMemoryType());
dest.setOwner(getOwner()); dest.setOwner(getOwner());
dest.setLocalDir(this.getLocalDir()); dest.setLocalDir(this.getLocalDir());
dest.setRemoteDir(this.getRemoteDir()); dest.setRemoteDir(this.getRemoteDir());
@ -689,6 +697,20 @@ public class MyFile {
public void setId2(String id2) { public void setId2(String id2) {
this.id2 = id2; this.id2 = id2;
} }
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public void setRegion(String region) {
this.region=region;
}
public String getRegion() {
return region;
}
} }

View File

@ -5,7 +5,7 @@ import java.net.UnknownHostException;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.StorageObject; import org.gcube.contentmanagement.blobstorage.resource.StorageObject;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -85,13 +85,13 @@ public class DirectoryBucket {
* @param bucket remote file to remove * @param bucket remote file to remove
*/ */
@Deprecated @Deprecated
public void removeKeysOnDirBucket(MyFile resource, String bucket, String rootArea, String backendType, String[] dbNames){ public void removeKeysOnDirBucket(RequestObject resource, String bucket, String rootArea, String backendType, String[] dbNames){
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
logger.debug("CHECK REMOVE: "+bucket); logger.debug("CHECK REMOVE: "+bucket);
String[] bucketList=null; String[] bucketList=null;
bucketList=retrieveBucketsName(path, rootArea); bucketList=retrieveBucketsName(path, rootArea);
TransportManagerFactory tmf=new TransportManagerFactory(server, user, password); TransportManagerFactory tmf=new TransportManagerFactory(server, user, password);
TransportManager tm=tmf.getTransport(backendType, resource.getGcubeMemoryType(), dbNames, resource.getWriteConcern(), resource.getReadPreference()); TransportManager tm=tmf.getTransport(backendType, resource.getGcubeMemoryType(), dbNames, resource.getWriteConcern(), resource.getReadPreference(), resource.getToken(), resource.getRegion());
// TerrastoreClient client=new TerrastoreClient( new OrderedHostManager(Arrays.asList(server)), new HTTPConnectionFactory()); // TerrastoreClient client=new TerrastoreClient( new OrderedHostManager(Arrays.asList(server)), new HTTPConnectionFactory());
for(int i=0;i<bucketList.length;i++){ for(int i=0;i<bucketList.length;i++){
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
@ -114,7 +114,7 @@ public class DirectoryBucket {
* remove a remote directory and all the files that the remote directory contains * remove a remote directory and all the files that the remote directory contains
* @param bucket * @param bucket
*/ */
public String removeDirBucket(MyFile resource, String bucket, String rootArea, String backendType, String[] dbNames){ public String removeDirBucket(RequestObject resource, String bucket, String rootArea, String backendType, String[] dbNames){
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
logger.debug("CHECK REMOVE: "+bucket); logger.debug("CHECK REMOVE: "+bucket);
String[] bucketList=null; String[] bucketList=null;
@ -124,7 +124,7 @@ public class DirectoryBucket {
logger.debug("bucketDir Coded: "+bucketDirCoded); logger.debug("bucketDir Coded: "+bucketDirCoded);
bucketList=retrieveBucketsName(bucket, rootArea); bucketList=retrieveBucketsName(bucket, rootArea);
TransportManagerFactory tmf=new TransportManagerFactory(server, user, password); TransportManagerFactory tmf=new TransportManagerFactory(server, user, password);
TransportManager tm=tmf.getTransport(backendType, resource.getGcubeMemoryType(), dbNames, resource.getWriteConcern(),resource.getReadPreference()); TransportManager tm=tmf.getTransport(backendType, resource.getGcubeMemoryType(), dbNames, resource.getWriteConcern(),resource.getReadPreference(), resource.getToken(), resource.getRegion());
for(int i=0;i<bucketList.length;i++){ for(int i=0;i<bucketList.length;i++){
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
logger.debug("REMOVE: check "+bucketList[i]+" bucketDirCoded: "+bucketDirCoded ); logger.debug("REMOVE: check "+bucketList[i]+" bucketDirCoded: "+bucketDirCoded );
@ -204,7 +204,7 @@ public class DirectoryBucket {
* @param bucketCoded bucketName coded * @param bucketCoded bucketName coded
* @param tm a client for the cluster * @param tm a client for the cluster
*/ */
public String searchInBucket(MyFile resource, String name, String bucketCoded, public String searchInBucket(RequestObject resource, String name, String bucketCoded,
TransportManager tm, String rootArea) { TransportManager tm, String rootArea) {
Map <String, StorageObject> dirs=null; Map <String, StorageObject> dirs=null;
try{ try{

View File

@ -1,6 +1,6 @@
package org.gcube.contentmanagement.blobstorage.service.directoryOperation; package org.gcube.contentmanagement.blobstorage.service.directoryOperation;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
/** /**
@ -38,7 +38,7 @@ public class DirectoryEntity {
setAuthor(author); setAuthor(author);
} }
public DirectoryEntity(String dir, String author, MyFile file){ public DirectoryEntity(String dir, String author, RequestObject file){
setDirectory(dir); setDirectory(dir);
setAuthor(author); setAuthor(author);
} }

View File

@ -1,6 +1,6 @@
package org.gcube.contentmanagement.blobstorage.service.impl; package org.gcube.contentmanagement.blobstorage.service.impl;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCAL_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCAL_RESOURCE;
/** /**
* This class is used from methods that can have both a RemoteResource or a LocalResource * This class is used from methods that can have both a RemoteResource or a LocalResource
@ -10,7 +10,7 @@ import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCA
*/ */
public class AmbiguousResource extends RemoteResource { public class AmbiguousResource extends RemoteResource {
public AmbiguousResource(MyFile file, ServiceEngine engine) { public AmbiguousResource(RequestObject file, ServiceEngine engine) {
super(file, engine); super(file, engine);
} }

View File

@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.impl;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCAL_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCAL_RESOURCE;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE;
@ -17,7 +17,7 @@ import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMO
public class LocalResource extends Resource{ public class LocalResource extends Resource{
public LocalResource(MyFile file, ServiceEngine engine) { public LocalResource(RequestObject file, ServiceEngine engine) {
super(file, engine); super(file, engine);
} }
@ -46,7 +46,7 @@ public class LocalResource extends Resource{
if(getMyFile() != null){ if(getMyFile() != null){
getMyFile().setInputStream(is); getMyFile().setInputStream(is);
}else{ }else{
setMyFile(new MyFile(engine.getGcubeMemoryType())); setMyFile(new RequestObject(engine.getGcubeMemoryType()));
getMyFile().setInputStream(is); getMyFile().setInputStream(is);
} }
getMyFile().setLocalResource(LOCAL_RESOURCE.INPUT_STREAM); getMyFile().setLocalResource(LOCAL_RESOURCE.INPUT_STREAM);
@ -62,7 +62,7 @@ public class LocalResource extends Resource{
if(getMyFile() != null){ if(getMyFile() != null){
getMyFile().setOutputStream(os); getMyFile().setOutputStream(os);
}else{ }else{
setMyFile(new MyFile(engine.getGcubeMemoryType())); setMyFile(new RequestObject(engine.getGcubeMemoryType()));
getMyFile().setOutputStream(os); getMyFile().setOutputStream(os);
} }
getMyFile().setLocalResource(LOCAL_RESOURCE.OUTPUT_STREAM); getMyFile().setLocalResource(LOCAL_RESOURCE.OUTPUT_STREAM);

View File

@ -4,7 +4,7 @@ import java.net.UnknownHostException;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryEntity; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryEntity;
@ -29,7 +29,7 @@ public class RemoteResource extends Resource{
public RemoteResource(MyFile file, ServiceEngine engine) { public RemoteResource(RequestObject file, ServiceEngine engine) {
super(file, engine); super(file, engine);
logger.info("file gCube parameter costructor: "+file.getGcubeAccessType()+" "+file.getGcubeScope()); logger.info("file gCube parameter costructor: "+file.getGcubeAccessType()+" "+file.getGcubeScope());
} }
@ -112,7 +112,7 @@ public class RemoteResource extends Resource{
if(engine.getCurrentOperation().equalsIgnoreCase("showdir")){ if(engine.getCurrentOperation().equalsIgnoreCase("showdir")){
dir = new BucketCoding().bucketDirCoding(dir, engine.getContext()); dir = new BucketCoding().bucketDirCoding(dir, engine.getContext());
TransportManagerFactory tmf= new TransportManagerFactory(engine.primaryBackend, engine.getBackendUser(), engine.getBackendPassword()); TransportManagerFactory tmf= new TransportManagerFactory(engine.primaryBackend, engine.getBackendUser(), engine.getBackendPassword());
TransportManager tm=tmf.getTransport(engine.getBackendType(), engine.getGcubeMemoryType(), engine.getDbNames(), engine.getWriteConcern(), engine.getReadConcern()); TransportManager tm=tmf.getTransport(engine.getBackendType(), engine.getGcubeMemoryType(), engine.getDbNames(), engine.getWriteConcern(), engine.getReadConcern(), engine.getToken(), engine.getRegion());
Map<String, StorageObject> mapDirs=null; Map<String, StorageObject> mapDirs=null;
try { try {
mapDirs = tm.getValues(getMyFile(), dir, DirectoryEntity.class); mapDirs = tm.getValues(getMyFile(), dir, DirectoryEntity.class);
@ -133,7 +133,7 @@ public class RemoteResource extends Resource{
dirBuc.removeDirBucket(getMyFile(), dir, engine.getContext(), engine.getBackendType(), engine.getDbNames()); dirBuc.removeDirBucket(getMyFile(), dir, engine.getContext(), engine.getBackendType(), engine.getDbNames());
else{ else{
TransportManagerFactory tmf=new TransportManagerFactory(engine.primaryBackend, engine.getBackendUser(), engine.getBackendPassword()); TransportManagerFactory tmf=new TransportManagerFactory(engine.primaryBackend, engine.getBackendUser(), engine.getBackendPassword());
TransportManager tm=tmf.getTransport(Costants.CLIENT_TYPE, engine.getGcubeMemoryType(), engine.getDbNames(), engine.getWriteConcern(), engine.getReadConcern()); TransportManager tm=tmf.getTransport(Costants.CLIENT_TYPE, engine.getGcubeMemoryType(), engine.getDbNames(), engine.getWriteConcern(), engine.getReadConcern(), engine.getToken(), engine.getRegion());
dir=new BucketCoding().bucketFileCoding(dir, engine.getContext()); dir=new BucketCoding().bucketFileCoding(dir, engine.getContext());
try { try {
tm.removeDir(dir, getMyFile()); tm.removeDir(dir, getMyFile());

View File

@ -3,7 +3,7 @@
*/ */
package org.gcube.contentmanagement.blobstorage.service.impl; package org.gcube.contentmanagement.blobstorage.service.impl;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE;
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
@ -17,7 +17,7 @@ public class RemoteResourceBoolean extends Resource{
* @param file * @param file
* @param engine * @param engine
*/ */
public RemoteResourceBoolean(MyFile file, ServiceEngine engine) { public RemoteResourceBoolean(RequestObject file, ServiceEngine engine) {
super(file, engine); super(file, engine);
logger.info("file gCube parameter costructor: "+file.getGcubeAccessType()+" "+file.getGcubeScope()); logger.info("file gCube parameter costructor: "+file.getGcubeAccessType()+" "+file.getGcubeScope());
} }

View File

@ -1,6 +1,6 @@
package org.gcube.contentmanagement.blobstorage.service.impl; package org.gcube.contentmanagement.blobstorage.service.impl;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE;
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
@ -12,7 +12,7 @@ import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendEx
public class RemoteResourceComplexInfo extends Resource{ public class RemoteResourceComplexInfo extends Resource{
public RemoteResourceComplexInfo(MyFile file, ServiceEngine engine) { public RemoteResourceComplexInfo(RequestObject file, ServiceEngine engine) {
super(file, engine); super(file, engine);
} }
@ -23,7 +23,7 @@ public class RemoteResourceComplexInfo extends Resource{
* @throws RemoteBackendException if there are runtime exception from the remote backend * @throws RemoteBackendException if there are runtime exception from the remote backend
*/ */
public MyFile RFile(String path) throws RemoteBackendException{ public RequestObject RFile(String path) throws RemoteBackendException{
setMyFile(setGenericProperties(engine.getContext(), engine.owner, path, "remote")); setMyFile(setGenericProperties(engine.getContext(), engine.owner, path, "remote"));
getMyFile().setRemotePath(path); getMyFile().setRemotePath(path);
getMyFile().setRemoteResource(REMOTE_RESOURCE.PATH); getMyFile().setRemoteResource(REMOTE_RESOURCE.PATH);

View File

@ -1,7 +1,7 @@
package org.gcube.contentmanagement.blobstorage.service.impl; package org.gcube.contentmanagement.blobstorage.service.impl;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE;
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
@ -12,7 +12,7 @@ import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendEx
*/ */
public class RemoteResourceDestination extends Resource{ public class RemoteResourceDestination extends Resource{
public RemoteResourceDestination(MyFile file, ServiceEngine engine) { public RemoteResourceDestination(RequestObject file, ServiceEngine engine) {
super(file, engine); super(file, engine);
} }

View File

@ -1,6 +1,6 @@
package org.gcube.contentmanagement.blobstorage.service.impl; package org.gcube.contentmanagement.blobstorage.service.impl;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE;
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
@ -18,7 +18,7 @@ public class RemoteResourceFolderInfo extends Resource {
private String gcubeAccessType; private String gcubeAccessType;
private String gcubeMemoryType; private String gcubeMemoryType;
public RemoteResourceFolderInfo(MyFile file, ServiceEngine engine) { public RemoteResourceFolderInfo(RequestObject file, ServiceEngine engine) {
super(file, engine); super(file, engine);
} }

View File

@ -1,6 +1,6 @@
package org.gcube.contentmanagement.blobstorage.service.impl; package org.gcube.contentmanagement.blobstorage.service.impl;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE;
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
@ -14,7 +14,7 @@ import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendEx
public class RemoteResourceInfo extends Resource{ public class RemoteResourceInfo extends Resource{
public RemoteResourceInfo(MyFile file, ServiceEngine engine) { public RemoteResourceInfo(RequestObject file, ServiceEngine engine) {
super(file, engine); super(file, engine);
} }

View File

@ -1,7 +1,7 @@
package org.gcube.contentmanagement.blobstorage.service.impl; package org.gcube.contentmanagement.blobstorage.service.impl;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCAL_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCAL_RESOURCE;
/** /**
@ -11,7 +11,7 @@ import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCA
*/ */
public class RemoteResourceSource extends Resource { public class RemoteResourceSource extends Resource {
public RemoteResourceSource(MyFile file, ServiceEngine engine) { public RemoteResourceSource(RequestObject file, ServiceEngine engine) {
super(file, engine); super(file, engine);
} }

View File

@ -1,7 +1,7 @@
package org.gcube.contentmanagement.blobstorage.service.impl; package org.gcube.contentmanagement.blobstorage.service.impl;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
import org.gcube.contentmanagement.blobstorage.transport.backend.util.Costants; import org.gcube.contentmanagement.blobstorage.transport.backend.util.Costants;
@ -19,11 +19,11 @@ public class Resource {
final Logger logger = LoggerFactory.getLogger(ServiceEngine.class); final Logger logger = LoggerFactory.getLogger(ServiceEngine.class);
protected static final String BACKEND_STRING_SEPARATOR="%"; protected static final String BACKEND_STRING_SEPARATOR="%";
protected MyFile file; protected RequestObject file;
protected ServiceEngine engine; protected ServiceEngine engine;
public Resource(MyFile file, ServiceEngine engine){ public Resource(RequestObject file, ServiceEngine engine){
setMyFile(file); setMyFile(file);
setEngine(engine); setEngine(engine);
} }
@ -36,11 +36,11 @@ public class Resource {
this.engine = engine; this.engine = engine;
} }
protected MyFile getMyFile(){ protected RequestObject getMyFile(){
return file; return file;
} }
protected void setMyFile(MyFile f){ protected void setMyFile(RequestObject f){
if (f!=null) if (f!=null)
file=f; file=f;
else else
@ -56,11 +56,11 @@ public class Resource {
* @param type remote or local * @param type remote or local
* @return the current resource * @return the current resource
*/ */
protected MyFile setGenericProperties(String context, String owner, String path, String type) { protected RequestObject setGenericProperties(String context, String owner, String path, String type) {
if((path != null) && (path.length()>0)){ if((path != null) && (path.length()>0)){
if(ObjectId.isValid(path)){ if(ObjectId.isValid(path)){
if(file==null) if(file==null)
file= new MyFile(path, engine.getGcubeMemoryType()); file= new RequestObject(path, engine.getGcubeMemoryType());
String id = file.getId(); String id = file.getId();
if((id != null) && (!id.isEmpty())) if((id != null) && (!id.isEmpty()))
file.setId2(path); file.setId2(path);
@ -75,7 +75,7 @@ public class Resource {
logger.debug("path(String) - name: " + name); logger.debug("path(String) - name: " + name);
} }
if(file == null){ if(file == null){
file= new MyFile(name, engine.getGcubeMemoryType()); file= new RequestObject(name, engine.getGcubeMemoryType());
}else{ }else{
file.setName(name); file.setName(name);
} }
@ -107,7 +107,7 @@ public class Resource {
return file; return file;
} }
protected Object getRemoteObject(MyFile file, String[] backend, String[] vltBackend)throws RemoteBackendException { protected Object getRemoteObject(RequestObject file, String[] backend, String[] vltBackend)throws RemoteBackendException {
Object obj=null; Object obj=null;
try{ try{
obj=retrieveRemoteObject(file, backend); obj=retrieveRemoteObject(file, backend);
@ -122,7 +122,7 @@ public class Resource {
return obj; return obj;
} }
protected Object retrieveRemoteObject(MyFile file, String[] backend) throws RemoteBackendException { protected Object retrieveRemoteObject(RequestObject file, String[] backend) throws RemoteBackendException {
Object obj=null; Object obj=null;
if(((file.getInputStream() != null) || (file.getOutputStream()!=null)) || ((file.getLocalPath() != null) || (file.getRemotePath() != null))) if(((file.getInputStream() != null) || (file.getOutputStream()!=null)) || ((file.getLocalPath() != null) || (file.getRemotePath() != null)))
obj=engine.service.startOperation(file,file.getRemotePath(), file.getOwner(), backend, Costants.DEFAULT_CHUNK_OPTION, file.getRootPath(), file.isReplace()); obj=engine.service.startOperation(file,file.getRemotePath(), file.getOwner(), backend, Costants.DEFAULT_CHUNK_OPTION, file.getRootPath(), file.isReplace());

View File

@ -4,11 +4,12 @@ import java.io.UnsupportedEncodingException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.Set; import java.util.Set;
import org.gcube.contentmanagement.blobstorage.resource.AccessType; import org.gcube.contentmanagement.blobstorage.resource.AccessType;
import org.gcube.contentmanagement.blobstorage.resource.MemoryType; import org.gcube.contentmanagement.blobstorage.resource.MemoryType;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE;
import org.gcube.contentmanagement.blobstorage.resource.StorageObject; import org.gcube.contentmanagement.blobstorage.resource.StorageObject;
@ -44,7 +45,7 @@ public class ServiceEngine implements IClient {
public String[] primaryBackend; public String[] primaryBackend;
public String[] volatileBackend; public String[] volatileBackend;
protected OperationManager service; protected OperationManager service;
protected MyFile file; protected RequestObject file;
protected String bucket; protected String bucket;
protected String bucketID; protected String bucketID;
protected String author; protected String author;
@ -71,13 +72,19 @@ public class ServiceEngine implements IClient {
private String user; private String user;
//backend server password //backend server password
private String password; private String password;
// if the backend is mongodb, this field is used for crypt/decrypt. If the backend is S3, this field is a token.
private String passPhrase; private String passPhrase;
private String resolverHost; private String resolverHost;
private String[] dbNames; private String[] dbNames;
// private static final String DEFAULT_RESOLVER_HOST= "data.d4science.org"; // private static final String DEFAULT_RESOLVER_HOST= "data.d4science.org";
private String write; private String write;
private String read; private String read;
private String token;
private String region;
public ServiceEngine(String[] server){ public ServiceEngine(String[] server){
this.primaryBackend=server; this.primaryBackend=server;
} }
@ -142,24 +149,24 @@ public class ServiceEngine implements IClient {
} }
public String getPublicArea() { private String getPublicArea() {
return publicArea; return publicArea;
} }
public void setPublicArea(String publicArea) { private void setPublicArea(String publicArea) {
logger.trace("public area is "+publicArea); logger.trace("public area is "+publicArea);
this.publicArea = publicArea; this.publicArea = publicArea;
} }
public String getHomeArea() { private String getHomeArea() {
return homeArea; return homeArea;
} }
public void setHomeArea(String rootPath) { private void setHomeArea(String rootPath) {
this.homeArea = rootPath; this.homeArea = rootPath;
} }
public String getEnvironment() { private String getEnvironment() {
return environment; return environment;
} }
@ -167,7 +174,7 @@ public class ServiceEngine implements IClient {
* set the remote root path * set the remote root path
* @param environment * @param environment
*/ */
public void setEnvironment(String environment) { private void setEnvironment(String environment) {
// delete initial / from variable environment // delete initial / from variable environment
String newEnv=environment; String newEnv=environment;
int ind=newEnv.indexOf('/'); int ind=newEnv.indexOf('/');
@ -179,11 +186,11 @@ public class ServiceEngine implements IClient {
this.environment = newEnv; this.environment = newEnv;
} }
public String getBucketID() { private String getBucketID() {
return bucketID; return bucketID;
} }
public void setBucketID(String bucketID) { private void setBucketID(String bucketID) {
this.bucketID=bucketID; this.bucketID=bucketID;
} }
@ -210,7 +217,7 @@ public class ServiceEngine implements IClient {
logger.debug("get() - start"); logger.debug("get() - start");
} }
setCurrentOperation("download"); setCurrentOperation("download");
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
file=setOperationInfo(file, OPERATION.DOWNLOAD); file=setOperationInfo(file, OPERATION.DOWNLOAD);
return new LocalResource(file, this); return new LocalResource(file, this);
} }
@ -235,7 +242,7 @@ public class ServiceEngine implements IClient {
logger.debug("get() - start"); logger.debug("get() - start");
} }
setCurrentOperation("getSize"); setCurrentOperation("getSize");
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
file=setOperationInfo(file, OPERATION.GET_SIZE); file=setOperationInfo(file, OPERATION.GET_SIZE);
return new RemoteResourceInfo(file, this); return new RemoteResourceInfo(file, this);
} }
@ -248,7 +255,7 @@ public class ServiceEngine implements IClient {
logger.debug("get() - start"); logger.debug("get() - start");
} }
setCurrentOperation("getMetaFile"); setCurrentOperation("getMetaFile");
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
file=setOperationInfo(file, OPERATION.GET_META_FILE); file=setOperationInfo(file, OPERATION.GET_META_FILE);
return new RemoteResourceComplexInfo(file, this); return new RemoteResourceComplexInfo(file, this);
} }
@ -259,7 +266,7 @@ public class ServiceEngine implements IClient {
logger.debug("get() - start"); logger.debug("get() - start");
} }
setCurrentOperation("getTotalUserVolume"); setCurrentOperation("getTotalUserVolume");
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
file=setOperationInfo(file, OPERATION.GET_TOTAL_USER_VOLUME); file=setOperationInfo(file, OPERATION.GET_TOTAL_USER_VOLUME);
file = new Resource(file, this).setGenericProperties(getContext(), owner, null, "remote"); file = new Resource(file, this).setGenericProperties(getContext(), owner, null, "remote");
file.setRemotePath("/"); file.setRemotePath("/");
@ -291,7 +298,7 @@ public class ServiceEngine implements IClient {
logger.debug("get() - start"); logger.debug("get() - start");
} }
setCurrentOperation("getTotalUserItems"); setCurrentOperation("getTotalUserItems");
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
file=setOperationInfo(file, OPERATION.GET_USER_TOTAL_ITEMS); file=setOperationInfo(file, OPERATION.GET_USER_TOTAL_ITEMS);
file = new Resource(file, this).setGenericProperties(getContext(), owner, "", "remote"); file = new Resource(file, this).setGenericProperties(getContext(), owner, "", "remote");
file.setRemotePath("/"); file.setRemotePath("/");
@ -323,7 +330,7 @@ public class ServiceEngine implements IClient {
logger.debug("get() - start"); logger.debug("get() - start");
} }
setCurrentOperation("getFolderSize"); setCurrentOperation("getFolderSize");
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
file=setOperationInfo(file, OPERATION.GET_FOLDER_TOTAL_VOLUME); file=setOperationInfo(file, OPERATION.GET_FOLDER_TOTAL_VOLUME);
return new RemoteResourceFolderInfo(file, this); return new RemoteResourceFolderInfo(file, this);
} }
@ -334,7 +341,7 @@ public class ServiceEngine implements IClient {
logger.debug("get() - start"); logger.debug("get() - start");
} }
setCurrentOperation("getFolderCount"); setCurrentOperation("getFolderCount");
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
file=setOperationInfo(file, OPERATION.GET_FOLDER_TOTAL_ITEMS); file=setOperationInfo(file, OPERATION.GET_FOLDER_TOTAL_ITEMS);
return new RemoteResourceFolderInfo(file, this); return new RemoteResourceFolderInfo(file, this);
} }
@ -345,7 +352,7 @@ public class ServiceEngine implements IClient {
logger.debug("get() - start"); logger.debug("get() - start");
} }
setCurrentOperation("getFolderLastUpdate"); setCurrentOperation("getFolderLastUpdate");
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
file=setOperationInfo(file, OPERATION.GET_FOLDER_LAST_UPDATE); file=setOperationInfo(file, OPERATION.GET_FOLDER_LAST_UPDATE);
return new RemoteResourceFolderInfo(file, this); return new RemoteResourceFolderInfo(file, this);
} }
@ -365,7 +372,7 @@ public class ServiceEngine implements IClient {
} }
setCurrentOperation("upload"); setCurrentOperation("upload");
setReplaceOption(replace); setReplaceOption(replace);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken());
file=setOperationInfo(file, OPERATION.UPLOAD); file=setOperationInfo(file, OPERATION.UPLOAD);
file.setReplaceOption(replace); file.setReplaceOption(replace);
return new LocalResource(file, this); return new LocalResource(file, this);
@ -387,7 +394,7 @@ public class ServiceEngine implements IClient {
} }
setCurrentOperation("upload"); setCurrentOperation("upload");
setReplaceOption(replace); setReplaceOption(replace);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken());
file=setOperationInfo(file, OPERATION.UPLOAD); file=setOperationInfo(file, OPERATION.UPLOAD);
file=setMimeType(file, mimeType); file=setMimeType(file, mimeType);
file.setReplaceOption(replace); file.setReplaceOption(replace);
@ -407,7 +414,7 @@ public class ServiceEngine implements IClient {
@Override @Override
public RemoteResource remove(String backendType){ public RemoteResource remove(String backendType){
backendType=setBackendType(backendType); backendType=setBackendType(backendType);
file=new MyFile(getGcubeMemoryType()); file=new RequestObject(getGcubeMemoryType());
file.setGcubeAccessType(this.getGcubeAccessType()); file.setGcubeAccessType(this.getGcubeAccessType());
file.setGcubeScope(this.getGcubeScope()); file.setGcubeScope(this.getGcubeScope());
file.setOwnerGcube(this.getOwnerGcube()); file.setOwnerGcube(this.getOwnerGcube());
@ -416,16 +423,16 @@ public class ServiceEngine implements IClient {
// remove object operation // remove object operation
setCurrentOperation("remove"); setCurrentOperation("remove");
file=setOperationInfo(file, OPERATION.REMOVE); file=setOperationInfo(file, OPERATION.REMOVE);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
return new RemoteResource(file, this); return new RemoteResource(file, this);
} }
public MyFile getMyFile() { public RequestObject getMyFile() {
return file; return file;
} }
public void setMyFile(MyFile myFile) { public void setMyFile(RequestObject myFile) {
this.file = myFile; this.file = myFile;
} }
@ -452,7 +459,7 @@ public class ServiceEngine implements IClient {
@Override @Override
public RemoteResource showDir(String backendType){ public RemoteResource showDir(String backendType){
backendType=setBackendType(backendType); backendType=setBackendType(backendType);
file=new MyFile(this.getGcubeMemoryType()); file=new RequestObject(this.getGcubeMemoryType());
file.setGcubeAccessType(this.getGcubeAccessType()); file.setGcubeAccessType(this.getGcubeAccessType());
file.setGcubeScope(this.getGcubeScope()); file.setGcubeScope(this.getGcubeScope());
file.setOwnerGcube(this.getOwnerGcube()); file.setOwnerGcube(this.getOwnerGcube());
@ -490,7 +497,7 @@ public class ServiceEngine implements IClient {
@Override @Override
public RemoteResource removeDir(String backendType){ public RemoteResource removeDir(String backendType){
backendType=setBackendType(backendType); backendType=setBackendType(backendType);
file=new MyFile(this.getGcubeMemoryType()); file=new RequestObject(this.getGcubeMemoryType());
file.setGcubeAccessType(this.getGcubeAccessType()); file.setGcubeAccessType(this.getGcubeAccessType());
file.setGcubeScope(this.getGcubeScope()); file.setGcubeScope(this.getGcubeScope());
file.setOwnerGcube(this.getOwnerGcube()); file.setOwnerGcube(this.getOwnerGcube());
@ -522,7 +529,7 @@ public class ServiceEngine implements IClient {
@Override @Override
public RemoteResource getUrl(String backendType, boolean forceCreation){ public RemoteResource getUrl(String backendType, boolean forceCreation){
backendType=setBackendType(backendType); backendType=setBackendType(backendType);
file=new MyFile(this.getGcubeMemoryType()); file=new RequestObject(this.getGcubeMemoryType());
file.setGcubeAccessType(this.getGcubeAccessType()); file.setGcubeAccessType(this.getGcubeAccessType());
file.setGcubeScope(this.getGcubeScope()); file.setGcubeScope(this.getGcubeScope());
file.setOwnerGcube(this.getOwnerGcube()); file.setOwnerGcube(this.getOwnerGcube());
@ -533,7 +540,7 @@ public class ServiceEngine implements IClient {
file.setPassPhrase(passPhrase); file.setPassPhrase(passPhrase);
setCurrentOperation("getUrl"); setCurrentOperation("getUrl");
file=setOperationInfo(file, OPERATION.GET_URL); file=setOperationInfo(file, OPERATION.GET_URL);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
RemoteResource resource=new RemoteResource(file, this); RemoteResource resource=new RemoteResource(file, this);
return resource; return resource;
} }
@ -557,7 +564,7 @@ public class ServiceEngine implements IClient {
@Override @Override
public RemoteResource getHttpUrl(String backendType, boolean forceCreation){ public RemoteResource getHttpUrl(String backendType, boolean forceCreation){
backendType=setBackendType(backendType); backendType=setBackendType(backendType);
file=new MyFile(this.getGcubeMemoryType()); file=new RequestObject(this.getGcubeMemoryType());
file.setGcubeAccessType(this.getGcubeAccessType()); file.setGcubeAccessType(this.getGcubeAccessType());
file.setGcubeScope(this.getGcubeScope()); file.setGcubeScope(this.getGcubeScope());
file.setOwnerGcube(this.getOwnerGcube()); file.setOwnerGcube(this.getOwnerGcube());
@ -568,7 +575,7 @@ public class ServiceEngine implements IClient {
file.setPassPhrase(passPhrase); file.setPassPhrase(passPhrase);
setCurrentOperation("getHttpUrl"); setCurrentOperation("getHttpUrl");
file=setOperationInfo(file, OPERATION.GET_HTTP_URL); file=setOperationInfo(file, OPERATION.GET_HTTP_URL);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
RemoteResource resource=new RemoteResource(file, this); RemoteResource resource=new RemoteResource(file, this);
return resource; return resource;
} }
@ -594,7 +601,7 @@ public class ServiceEngine implements IClient {
@Override @Override
public RemoteResource getHttpsUrl(String backendType, boolean forceCreation){ public RemoteResource getHttpsUrl(String backendType, boolean forceCreation){
backendType=setBackendType(backendType); backendType=setBackendType(backendType);
file=new MyFile(this.getGcubeMemoryType()); file=new RequestObject(this.getGcubeMemoryType());
file.setGcubeAccessType(this.getGcubeAccessType()); file.setGcubeAccessType(this.getGcubeAccessType());
file.setGcubeScope(this.getGcubeScope()); file.setGcubeScope(this.getGcubeScope());
file.setOwnerGcube(this.getOwnerGcube()); file.setOwnerGcube(this.getOwnerGcube());
@ -605,7 +612,7 @@ public class ServiceEngine implements IClient {
file.setPassPhrase(passPhrase); file.setPassPhrase(passPhrase);
setCurrentOperation("getHttpsUrl"); setCurrentOperation("getHttpsUrl");
file=setOperationInfo(file, OPERATION.GET_HTTPS_URL); file=setOperationInfo(file, OPERATION.GET_HTTPS_URL);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
RemoteResource resource=new RemoteResource(file, this); RemoteResource resource=new RemoteResource(file, this);
return resource; return resource;
} }
@ -667,9 +674,9 @@ public class ServiceEngine implements IClient {
public AmbiguousResource lock(String backendType) { public AmbiguousResource lock(String backendType) {
backendType=setBackendType(backendType); backendType=setBackendType(backendType);
file = new MyFile(true); file = new RequestObject(true);
setCurrentOperation("lock"); setCurrentOperation("lock");
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
file=setOperationInfo(file, OPERATION.LOCK); file=setOperationInfo(file, OPERATION.LOCK);
return new AmbiguousResource(file, this); return new AmbiguousResource(file, this);
} }
@ -683,12 +690,12 @@ public class ServiceEngine implements IClient {
@Override @Override
public AmbiguousResource unlock(String key, String backendType) { public AmbiguousResource unlock(String key, String backendType) {
backendType=setBackendType(backendType); backendType=setBackendType(backendType);
file=new MyFile(this.getGcubeMemoryType()); file=new RequestObject(this.getGcubeMemoryType());
file.setLockedKey(key); file.setLockedKey(key);
// put(true); // put(true);
setCurrentOperation("unlock"); setCurrentOperation("unlock");
file=setOperationInfo(file, OPERATION.UNLOCK); file=setOperationInfo(file, OPERATION.UNLOCK);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
return new AmbiguousResource(file, this); return new AmbiguousResource(file, this);
} }
@ -701,11 +708,11 @@ public class ServiceEngine implements IClient {
@Override @Override
public RemoteResourceInfo getTTL(String backendType) { public RemoteResourceInfo getTTL(String backendType) {
backendType=setBackendType(backendType); backendType=setBackendType(backendType);
file=new MyFile(this.getGcubeMemoryType()); file=new RequestObject(this.getGcubeMemoryType());
// put(true); // put(true);
setCurrentOperation("getTTL"); setCurrentOperation("getTTL");
file=setOperationInfo(file, OPERATION.GET_TTL); file=setOperationInfo(file, OPERATION.GET_TTL);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
return new RemoteResourceInfo(file, this); return new RemoteResourceInfo(file, this);
} }
@ -719,11 +726,11 @@ public class ServiceEngine implements IClient {
@Override @Override
public RemoteResource getMetaInfo(String field, String backendType) { public RemoteResource getMetaInfo(String field, String backendType) {
backendType=setBackendType(backendType); backendType=setBackendType(backendType);
file=new MyFile(this.getGcubeMemoryType()); file=new RequestObject(this.getGcubeMemoryType());
file.setGenericPropertyField(field); file.setGenericPropertyField(field);
setCurrentOperation("getMetaInfo"); setCurrentOperation("getMetaInfo");
file=setOperationInfo(file, OPERATION.GET_META_INFO); file=setOperationInfo(file, OPERATION.GET_META_INFO);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
return new RemoteResource(file, this); return new RemoteResource(file, this);
} }
@ -735,12 +742,12 @@ public class ServiceEngine implements IClient {
@Override @Override
public RemoteResource setMetaInfo(String field, String value, String backendType) { public RemoteResource setMetaInfo(String field, String value, String backendType) {
backendType=setBackendType(backendType); backendType=setBackendType(backendType);
file=new MyFile(this.getGcubeMemoryType()); file=new RequestObject(this.getGcubeMemoryType());
file.setGenericPropertyField(field); file.setGenericPropertyField(field);
file.setGenericPropertyValue(value); file.setGenericPropertyValue(value);
setCurrentOperation("setMetaInfo"); setCurrentOperation("setMetaInfo");
file=setOperationInfo(file, OPERATION.SET_META_INFO); file=setOperationInfo(file, OPERATION.SET_META_INFO);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
return new RemoteResource(file, this); return new RemoteResource(file, this);
} }
@ -752,12 +759,12 @@ public class ServiceEngine implements IClient {
@Override @Override
public RemoteResourceInfo renewTTL(String key, String backendType) { public RemoteResourceInfo renewTTL(String key, String backendType) {
backendType=setBackendType(backendType); backendType=setBackendType(backendType);
file=new MyFile(this.getGcubeMemoryType()); file=new RequestObject(this.getGcubeMemoryType());
file.setLockedKey(key); file.setLockedKey(key);
// put(true); // put(true);
setCurrentOperation("renewTTL"); setCurrentOperation("renewTTL");
file=setOperationInfo(file, OPERATION.RENEW_TTL); file=setOperationInfo(file, OPERATION.RENEW_TTL);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
return new RemoteResourceInfo(file, this); return new RemoteResourceInfo(file, this);
} }
@ -774,7 +781,7 @@ public class ServiceEngine implements IClient {
file=null; file=null;
setCurrentOperation("link"); setCurrentOperation("link");
file=setOperationInfo(file, OPERATION.LINK); file=setOperationInfo(file, OPERATION.LINK);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken());
return new RemoteResourceSource(file, this); return new RemoteResourceSource(file, this);
} }
@ -803,7 +810,7 @@ public class ServiceEngine implements IClient {
setCurrentOperation("copy"); setCurrentOperation("copy");
file=setOperationInfo(file, OPERATION.COPY); file=setOperationInfo(file, OPERATION.COPY);
file.setReplaceOption(replaceOption); file.setReplaceOption(replaceOption);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken());
return new RemoteResourceSource(file, this); return new RemoteResourceSource(file, this);
} }
@ -820,7 +827,7 @@ public class ServiceEngine implements IClient {
file=null; file=null;
setCurrentOperation("duplicate"); setCurrentOperation("duplicate");
file=setOperationInfo(file, OPERATION.DUPLICATE); file=setOperationInfo(file, OPERATION.DUPLICATE);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken());
return new RemoteResource(file, this); return new RemoteResource(file, this);
} }
@ -846,7 +853,7 @@ public class ServiceEngine implements IClient {
setCurrentOperation("softcopy"); setCurrentOperation("softcopy");
file=setOperationInfo(file, OPERATION.SOFT_COPY); file=setOperationInfo(file, OPERATION.SOFT_COPY);
file.setReplaceOption(replaceOption); file.setReplaceOption(replaceOption);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken());
return new RemoteResourceSource(file, this); return new RemoteResourceSource(file, this);
} }
@ -865,7 +872,7 @@ public class ServiceEngine implements IClient {
file=null; file=null;
setCurrentOperation("move"); setCurrentOperation("move");
file=setOperationInfo(file, OPERATION.MOVE); file=setOperationInfo(file, OPERATION.MOVE);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken());
return new RemoteResourceSource(file, this); return new RemoteResourceSource(file, this);
} }
@ -882,7 +889,7 @@ public class ServiceEngine implements IClient {
file=null; file=null;
setCurrentOperation("copy_dir"); setCurrentOperation("copy_dir");
file=setOperationInfo(file, OPERATION.COPY_DIR); file=setOperationInfo(file, OPERATION.COPY_DIR);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken());
return new RemoteResourceSource(file, this); return new RemoteResourceSource(file, this);
} }
@ -899,7 +906,7 @@ public class ServiceEngine implements IClient {
file=null; file=null;
setCurrentOperation("move_dir"); setCurrentOperation("move_dir");
file=setOperationInfo(file, OPERATION.MOVE_DIR); file=setOperationInfo(file, OPERATION.MOVE_DIR);
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), getMyFile(), backendType, getDbNames(), getToken());
return new RemoteResourceSource(file, this); return new RemoteResourceSource(file, this);
} }
@ -994,20 +1001,24 @@ public class ServiceEngine implements IClient {
// this.gcubeMemoryType = gcubeMemoryType; // this.gcubeMemoryType = gcubeMemoryType;
} }
private MyFile setOperationInfo(MyFile file, OPERATION op) { private RequestObject setOperationInfo(RequestObject file, OPERATION op) {
if(file==null) if(file==null)
file=new MyFile(this.getGcubeMemoryType()); file=new RequestObject(this.getGcubeMemoryType());
file.setOperation(op); file.setOperation(op);
if(getWriteConcern() != null) if(getWriteConcern() != null)
file.setWriteConcern(getWriteConcern()); file.setWriteConcern(getWriteConcern());
if(getReadConcern() != null) if(getReadConcern() != null)
file.setReadPreference(getReadConcern()); file.setReadPreference(getReadConcern());
if(!Objects.isNull(getToken()))
file.setToken(getToken());
if(!Objects.isNull(getRegion()))
file.setRegion(getRegion());
return file; return file;
} }
private MyFile setMimeType(MyFile file, String mime) { private RequestObject setMimeType(RequestObject file, String mime) {
if(file==null) if(file==null)
file=new MyFile(this.getGcubeMemoryType()); file=new RequestObject(this.getGcubeMemoryType());
file.setMimeType(mime); file.setMimeType(mime);
return file; return file;
} }
@ -1063,30 +1074,35 @@ public class ServiceEngine implements IClient {
public String getId(String id){ public String getId(String id){
if(ObjectId.isValid(id)) if (getBackendType().equals("MongoDB")){
return id; if(ObjectId.isValid(id))
try { return id;
if(Base64.isBase64(id)){ try {
byte[] valueDecoded= Base64.decodeBase64(id); if(Base64.isBase64(id)){
String encryptedID = new String(valueDecoded); byte[] valueDecoded= Base64.decodeBase64(id);
return new Encrypter("DES", getPassPhrase()).decrypt(encryptedID); String encryptedID = new String(valueDecoded);
}else{ return new Encrypter("DES", getPassPhrase()).decrypt(encryptedID);
return new Encrypter("DES", getPassPhrase()).decrypt(id); }else{
return new Encrypter("DES", getPassPhrase()).decrypt(id);
}
} catch (EncryptionException e) {
e.printStackTrace();
} }
} catch (EncryptionException e) { }else {
e.printStackTrace(); throw new RemoteBackendException("THe backend is not mongodb, the id cannot be decrypted because it should be not crypted");
} }
return null; return null;
} }
public RemoteResource getRemotePath(){ public RemoteResource getRemotePath(){
backendType=setBackendType(backendType); backendType=setBackendType(backendType);
file=new MyFile(this.getGcubeMemoryType()); file=new RequestObject(this.getGcubeMemoryType());
// put(true); // put(true);
setCurrentOperation("getRemotePath"); setCurrentOperation("getRemotePath");
file=setOperationInfo(file, OPERATION.GET_REMOTE_PATH); file=setOperationInfo(file, OPERATION.GET_REMOTE_PATH);
file.setRootPath(this.getPublicArea()); file.setRootPath(this.getPublicArea());
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
return new RemoteResource(file, this); return new RemoteResource(file, this);
} }
@ -1134,7 +1150,7 @@ public class ServiceEngine implements IClient {
} }
protected String[] getDbNames(){ public String[] getDbNames(){
return this.dbNames; return this.dbNames;
} }
@ -1157,9 +1173,24 @@ public class ServiceEngine implements IClient {
logger.debug("get() - start"); logger.debug("get() - start");
} }
setCurrentOperation("exist"); setCurrentOperation("exist");
this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames()); this.service=new OperationManager(primaryBackend, user, password, getCurrentOperation(), file, backendType, getDbNames(), getToken());
file=setOperationInfo(file, OPERATION.EXIST); file=setOperationInfo(file, OPERATION.EXIST);
return new RemoteResourceBoolean(file, this); return new RemoteResourceBoolean(file, this);
} }
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public String getRegion() {
return region;
}
public void setRegion(String region) {
this.region = region;
}
} }

View File

@ -1,6 +1,6 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
import org.gcube.contentmanagement.blobstorage.transport.backend.operation.UploadOperator; import org.gcube.contentmanagement.blobstorage.transport.backend.operation.UploadOperator;
@ -28,7 +28,7 @@ public class ChunkConsumer implements Runnable {
boolean isChunk=false; boolean isChunk=false;
String[] dbNames; String[] dbNames;
public static ThreadLocal<TransportManager> client=new ThreadLocal<TransportManager>(); public static ThreadLocal<TransportManager> client=new ThreadLocal<TransportManager>();
public static ThreadLocal<MyFile> resource=new ThreadLocal<MyFile>(); public static ThreadLocal<RequestObject> resource=new ThreadLocal<RequestObject>();
private boolean replaceOpt; private boolean replaceOpt;
Thread producer; Thread producer;
@ -36,7 +36,7 @@ public class ChunkConsumer implements Runnable {
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("run() - start"); logger.debug("run() - start");
} }
MyFile request = null; RequestObject request = null;
synchronized (ChunkConsumer.class) { synchronized (ChunkConsumer.class) {
request=monitor.getRequest(); request=monitor.getRequest();
resource.set(request); resource.set(request);
@ -48,7 +48,7 @@ public class ChunkConsumer implements Runnable {
} }
} }
private void connection(MyFile richiesta) { private void connection(RequestObject richiesta) {
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("connection(MyFile) - start"); logger.debug("connection(MyFile) - start");
} }
@ -107,7 +107,7 @@ public class ChunkConsumer implements Runnable {
return server; return server;
} }
private void putInTerrastore(MyFile myFile) { private void putInTerrastore(RequestObject myFile) {
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("putInTerrastore(MyFile) - start"); logger.debug("putInTerrastore(MyFile) - start");
} }
@ -117,7 +117,7 @@ public class ChunkConsumer implements Runnable {
synchronized(ChunkConsumer.class){ synchronized(ChunkConsumer.class){
String [] randomServer=randomizeServer(server); String [] randomServer=randomizeServer(server);
TransportManagerFactory tmf=new TransportManagerFactory(randomServer, null, null); TransportManagerFactory tmf=new TransportManagerFactory(randomServer, null, null);
client.set(tmf.getTransport(Costants.CLIENT_TYPE, null, null, myFile.getWriteConcern(), myFile.getReadPreference())); client.set(tmf.getTransport(Costants.CLIENT_TYPE, null, null, myFile.getWriteConcern(), myFile.getReadPreference(), myFile.getToken(), myFile.getRegion()));
} }
if(logger.isDebugEnabled()){ if(logger.isDebugEnabled()){
logger.debug("waiting time for upload: " logger.debug("waiting time for upload: "

View File

@ -9,7 +9,7 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.transport.backend.util.Costants; import org.gcube.contentmanagement.blobstorage.transport.backend.util.Costants;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -22,7 +22,7 @@ import org.slf4j.LoggerFactory;
*/ */
public class ChunkProducer implements Runnable{ public class ChunkProducer implements Runnable{
MyFile resource; RequestObject resource;
long dimensionChunk; long dimensionChunk;
int totChunks; int totChunks;
int nThreads; int nThreads;
@ -31,7 +31,7 @@ public class ChunkProducer implements Runnable{
String bucketName; String bucketName;
final Logger logger=LoggerFactory.getLogger(ChunkProducer.class); final Logger logger=LoggerFactory.getLogger(ChunkProducer.class);
public ChunkProducer(Monitor monitor, MyFile resource, long dimensionChunk, int totChunks, public ChunkProducer(Monitor monitor, RequestObject resource, long dimensionChunk, int totChunks,
int nThreads, String bucket, ChunkConsumer consumer ) throws FileNotFoundException{ int nThreads, String bucket, ChunkConsumer consumer ) throws FileNotFoundException{
this.resource=resource; this.resource=resource;
this.dimensionChunk=dimensionChunk; this.dimensionChunk=dimensionChunk;
@ -77,7 +77,7 @@ public class ChunkProducer implements Runnable{
//---- creo i task e li invio al thread-pool ---- //---- creo i task e li invio al thread-pool ----
String key= getBucketName()+i; String key= getBucketName()+i;
resource.setKey(key); resource.setKey(key);
MyFile copy=resource.copyProperties(); RequestObject copy=resource.copyProperties();
copy.setContent(chunk); copy.setContent(chunk);
if(logger.isDebugEnabled()){ if(logger.isDebugEnabled()){
logger.debug("request in queue: "+key); logger.debug("request in queue: "+key);

View File

@ -1,6 +1,6 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
@ -19,7 +19,7 @@ public class Close extends Operation{
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -34,14 +34,14 @@ public class Close extends Operation{
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
return null; return null;
} }
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
return null; return null;
} }

View File

@ -1,7 +1,7 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -19,12 +19,12 @@ public abstract class Copy extends Operation{
final Logger logger=LoggerFactory.getLogger(Copy.class); final Logger logger=LoggerFactory.getLogger(Copy.class);
protected String sourcePath; protected String sourcePath;
protected String destinationPath; protected String destinationPath;
protected MyFile resource; protected RequestObject resource;
public Copy(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { public Copy(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) {
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
this.sourcePath=file.getLocalPath(); this.sourcePath=file.getLocalPath();
this.destinationPath=remotePath; this.destinationPath=remotePath;
@ -37,7 +37,7 @@ public abstract class Copy extends Operation{
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -55,7 +55,7 @@ public abstract class Copy extends Operation{
@Override @Override
public String initOperation(MyFile resource, String remotePath, public String initOperation(RequestObject resource, String remotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
// For terrastore, the name of bucket is formed: path_____fileName_____author // For terrastore, the name of bucket is formed: path_____fileName_____author
this.sourcePath=resource.getLocalPath(); this.sourcePath=resource.getLocalPath();
@ -70,12 +70,12 @@ public abstract class Copy extends Operation{
// public abstract String execute(MongoIO mongoPrimaryInstance) throws UnknownHostException; // public abstract String execute(MongoIO mongoPrimaryInstance) throws UnknownHostException;
public abstract String execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException; public abstract String execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException;
public MyFile getResource() { public RequestObject getResource() {
return resource; return resource;
} }
public void setResource(MyFile resource) { public void setResource(RequestObject resource) {
this.resource = resource; this.resource = resource;
} }

View File

@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.util.List; import java.util.List;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -23,13 +23,13 @@ public abstract class CopyDir extends Operation{
final Logger logger=LoggerFactory.getLogger(Download.class); final Logger logger=LoggerFactory.getLogger(Download.class);
private String sourcePath; private String sourcePath;
private String destinationPath; private String destinationPath;
private MyFile resource; private RequestObject resource;
public CopyDir(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { public CopyDir(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) {
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
this.sourcePath=file.getLocalPath(); this.sourcePath=file.getLocalPath();
this.destinationPath=remotePath; this.destinationPath=remotePath;
@ -40,7 +40,7 @@ public abstract class CopyDir extends Operation{
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
TransportManager tm = getTransport(myFile); TransportManager tm = getTransport(myFile);
List<String> ids=null; List<String> ids=null;
try { try {
@ -58,7 +58,7 @@ public abstract class CopyDir extends Operation{
@Override @Override
public String initOperation(MyFile resource, String remotePath, public String initOperation(RequestObject resource, String remotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
// DirectoryBucket dirBuc=new DirectoryBucket(server, user, password, remotePath, author); // DirectoryBucket dirBuc=new DirectoryBucket(server, user, password, remotePath, author);
// For terrastore, the name of bucket is formed: path_____fileName_____author // For terrastore, the name of bucket is formed: path_____fileName_____author
@ -71,7 +71,7 @@ public abstract class CopyDir extends Operation{
return bucket=destinationPath; return bucket=destinationPath;
} }
public abstract List<String> execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException; public abstract List<String> execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException;
public String getSourcePath() { public String getSourcePath() {
return sourcePath; return sourcePath;
@ -89,11 +89,11 @@ public abstract class CopyDir extends Operation{
this.destinationPath = destinationPath; this.destinationPath = destinationPath;
} }
public MyFile getResource() { public RequestObject getResource() {
return resource; return resource;
} }
public void setResource(MyFile resource) { public void setResource(RequestObject resource) {
this.resource = resource; this.resource = resource;
} }

View File

@ -1,7 +1,7 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -27,13 +27,13 @@ public abstract class Download extends Operation{
protected String localPath; protected String localPath;
protected String remotePath; protected String remotePath;
protected OutputStream os; protected OutputStream os;
protected MyFile resource; protected RequestObject resource;
public Download(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { public Download(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) {
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
this.localPath=file.getLocalPath(); this.localPath=file.getLocalPath();
this.remotePath=remotePath; this.remotePath=remotePath;
@ -41,7 +41,7 @@ public abstract class Download extends Operation{
return getRemoteIdentifier(remotePath, rootArea); return getRemoteIdentifier(remotePath, rootArea);
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
String id=null; String id=null;
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug(" DOWNLOAD " + myFile.getRemotePath() logger.debug(" DOWNLOAD " + myFile.getRemotePath()
@ -64,7 +64,7 @@ public abstract class Download extends Operation{
@Override @Override
public String initOperation(MyFile resource, String remotePath, public String initOperation(RequestObject resource, String remotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
// DirectoryBucket dirBuc=new DirectoryBucket(server, getUser(), getPassword(), remotePath, author); // DirectoryBucket dirBuc=new DirectoryBucket(server, getUser(), getPassword(), remotePath, author);
// For terrastore, the name of bucket is formed: path_____fileName_____author // For terrastore, the name of bucket is formed: path_____fileName_____author
@ -77,11 +77,11 @@ public abstract class Download extends Operation{
public abstract ObjectId execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance) throws IOException; public abstract ObjectId execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance) throws IOException;
public MyFile getResource() { public RequestObject getResource() {
return resource; return resource;
} }
public void setResource(MyFile resource) { public void setResource(RequestObject resource) {
this.resource = resource; this.resource = resource;
} }

View File

@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation;
import java.io.OutputStream; import java.io.OutputStream;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
@ -30,7 +30,7 @@ public class DownloadAndLock extends Operation {
} }
@Override @Override
public String doIt(MyFile myFile) throws RemoteBackendException { public String doIt(RequestObject myFile) throws RemoteBackendException {
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug(" DOWNLOAD " + myFile.getRemotePath() logger.debug(" DOWNLOAD " + myFile.getRemotePath()
+ " in bucket: " + getBucket()); + " in bucket: " + getBucket());
@ -50,7 +50,7 @@ public class DownloadAndLock extends Operation {
} }
@Override @Override
public String initOperation(MyFile file, String RemotePath, public String initOperation(RequestObject file, String RemotePath,
String author, String[] server, String rootArea, String author, String[] server, String rootArea,
boolean replaceOption) { boolean replaceOption) {
this.localPath=file.getLocalPath(); this.localPath=file.getLocalPath();
@ -59,7 +59,7 @@ public class DownloadAndLock extends Operation {
} }
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;

View File

@ -4,7 +4,7 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -24,13 +24,13 @@ public abstract class DuplicateFile extends Operation {
*/ */
final Logger logger=LoggerFactory.getLogger(DuplicateFile.class); final Logger logger=LoggerFactory.getLogger(DuplicateFile.class);
protected String sourcePath; protected String sourcePath;
protected MyFile resource; protected RequestObject resource;
public DuplicateFile(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { public DuplicateFile(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) {
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -48,7 +48,7 @@ public abstract class DuplicateFile extends Operation {
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) {
if(remotePath != null){ if(remotePath != null){
boolean isId=ObjectId.isValid(remotePath); boolean isId=ObjectId.isValid(remotePath);
setResource(file); setResource(file);
@ -67,7 +67,7 @@ public abstract class DuplicateFile extends Operation {
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation");
} }
@ -82,11 +82,11 @@ public abstract class DuplicateFile extends Operation {
this.sourcePath = sourcePath; this.sourcePath = sourcePath;
} }
public MyFile getResource() { public RequestObject getResource() {
return resource; return resource;
} }
public void setResource(MyFile resource) { public void setResource(RequestObject resource) {
this.resource = resource; this.resource = resource;
} }

View File

@ -3,7 +3,7 @@
*/ */
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
@ -30,7 +30,7 @@ public class Exist extends Operation{
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -47,7 +47,7 @@ public class Exist extends Operation{
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
// String[] dirs= remotePath.split(file_separator); // String[] dirs= remotePath.split(file_separator);
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
@ -64,7 +64,7 @@ public class Exist extends Operation{
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
throw new IllegalArgumentException("Input/Output stream is not compatible with Exist operation"); throw new IllegalArgumentException("Input/Output stream is not compatible with Exist operation");
} }

View File

@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation;
//import org.apache.log4j.Logger; //import org.apache.log4j.Logger;
//import org.gcube.common.core.utils.logging.GCUBELog; //import org.gcube.common.core.utils.logging.GCUBELog;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.io.IOException; import java.io.IOException;
@ -36,7 +36,7 @@ public class FileWriter extends Thread{
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("run() - start"); logger.debug("run() - start");
} }
MyFile request = monitor.getRequest(); RequestObject request = monitor.getRequest();
synchronized (FileWriter.class) { synchronized (FileWriter.class) {
if(logger.isDebugEnabled()){ if(logger.isDebugEnabled()){
logger.debug("recover request: "+request.getKey()+" length: "+request.getContent().length); logger.debug("recover request: "+request.getKey()+" length: "+request.getContent().length);

View File

@ -1,6 +1,6 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket;
import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine; import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine;
@ -22,7 +22,7 @@ public class GetFolderCount extends Operation {
super(server, user, pwd, bucket, monitor, isChunk, backendType,dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType,dbs);
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -39,7 +39,7 @@ public class GetFolderCount extends Operation {
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
logger.debug("remotePath: "+remotePath); logger.debug("remotePath: "+remotePath);
@ -57,7 +57,7 @@ public class GetFolderCount extends Operation {
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation");
} }

View File

@ -1,6 +1,6 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket;
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
@ -19,12 +19,12 @@ public class GetFolderLastUpdate extends Operation {
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
return null; return null;
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
// String[] dirs= remotePath.split(file_separator); // String[] dirs= remotePath.split(file_separator);
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
@ -43,7 +43,7 @@ public class GetFolderLastUpdate extends Operation {
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation");
} }

View File

@ -1,6 +1,6 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
@ -21,7 +21,7 @@ public class GetFolderSize extends Operation {
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -38,7 +38,7 @@ public class GetFolderSize extends Operation {
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
// String[] dirs= remotePath.split(file_separator); // String[] dirs= remotePath.split(file_separator);
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
@ -58,7 +58,7 @@ public class GetFolderSize extends Operation {
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation");
} }

View File

@ -4,7 +4,7 @@ import java.io.IOException;
import java.net.URL; import java.net.URL;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
import org.gcube.contentmanagement.blobstorage.resource.MemoryType; import org.gcube.contentmanagement.blobstorage.resource.MemoryType;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter.EncryptionException; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter.EncryptionException;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
@ -27,13 +27,13 @@ public class GetHttpUrl extends Operation {
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, String author, public String initOperation(RequestObject file, String remotePath, String author,
String[] server, String rootArea, boolean replaceOption) { String[] server, String rootArea, boolean replaceOption) {
return getRemoteIdentifier(remotePath, rootArea); return getRemoteIdentifier(remotePath, rootArea);
} }
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
@ -41,7 +41,7 @@ public class GetHttpUrl extends Operation {
@Override @Override
public Object doIt(MyFile myFile) throws RemoteBackendException { public Object doIt(RequestObject myFile) throws RemoteBackendException {
String resolverHost=myFile.getResolverHOst(); String resolverHost=myFile.getResolverHOst();
String urlBase="smp://"+resolverHost+Costants.URL_SEPARATOR; String urlBase="smp://"+resolverHost+Costants.URL_SEPARATOR;
String urlParam=""; String urlParam="";
@ -76,7 +76,7 @@ public class GetHttpUrl extends Operation {
String id=null; String id=null;
if(tm ==null){ if(tm ==null){
TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
tm=tmf.getTransport(backendType, memoryType, dbNames, writeConcern, readPreference); tm=tmf.getTransport(backendType, memoryType, dbNames, writeConcern, readPreference, null, null);
} }
try { try {
id = tm.getId(bucket, forceCreation); id = tm.getId(bucket, forceCreation);

View File

@ -5,7 +5,7 @@ import java.net.URL;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
import org.gcube.contentmanagement.blobstorage.resource.MemoryType; import org.gcube.contentmanagement.blobstorage.resource.MemoryType;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter.EncryptionException; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter.EncryptionException;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
@ -29,13 +29,13 @@ public class GetHttpsUrl extends Operation {
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, String author, public String initOperation(RequestObject file, String remotePath, String author,
String[] server, String rootArea, boolean replaceOption) { String[] server, String rootArea, boolean replaceOption) {
return getRemoteIdentifier(remotePath, rootArea); return getRemoteIdentifier(remotePath, rootArea);
} }
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
@ -43,7 +43,7 @@ public class GetHttpsUrl extends Operation {
@Override @Override
public Object doIt(MyFile myFile) throws RemoteBackendException { public Object doIt(RequestObject myFile) throws RemoteBackendException {
String resolverHost=myFile.getResolverHOst(); String resolverHost=myFile.getResolverHOst();
String urlBase="smp://"+resolverHost+Costants.URL_SEPARATOR; String urlBase="smp://"+resolverHost+Costants.URL_SEPARATOR;
String urlParam=""; String urlParam="";
@ -77,7 +77,7 @@ public class GetHttpsUrl extends Operation {
String id=null; String id=null;
if(tm ==null){ if(tm ==null){
TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
tm=tmf.getTransport(backendType, memoryType, dbNames, writeConcern, readPreference); tm=tmf.getTransport(backendType, memoryType, dbNames, writeConcern, readPreference, null, null);
} }
try { try {
id = tm.getId(bucket, forceCreation); id = tm.getId(bucket, forceCreation);

View File

@ -1,7 +1,7 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -30,7 +30,7 @@ public class GetMetaFile extends Operation{
* size. * size.
* *
*/ */
public MyFile doIt(MyFile myFile) throws RemoteBackendException{ public RequestObject doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -61,7 +61,7 @@ public class GetMetaFile extends Operation{
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
// String[] dirs= remotePath.split(file_separator); // String[] dirs= remotePath.split(file_separator);
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
@ -78,7 +78,7 @@ public class GetMetaFile extends Operation{
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation");
} }

View File

@ -1,7 +1,7 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -20,7 +20,7 @@ public class GetMetaInfo extends Operation {
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -38,7 +38,7 @@ public class GetMetaInfo extends Operation {
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
// String[] dirs= remotePath.split(file_separator); // String[] dirs= remotePath.split(file_separator);
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
@ -55,7 +55,7 @@ public class GetMetaInfo extends Operation {
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
throw new IllegalArgumentException("method not compatible with getMetaInfo operation"); throw new IllegalArgumentException("method not compatible with getMetaInfo operation");
} }

View File

@ -1,7 +1,7 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
@ -20,7 +20,7 @@ public class GetRemotePath extends Operation{
super(server, user, pwd, bucket, monitor, isChunk, backendType,dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType,dbs);
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -45,7 +45,7 @@ public class GetRemotePath extends Operation{
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
rootPath=file.getRootPath(); rootPath=file.getRootPath();
logger.trace("rootArea is "+file.getRootPath()+ " absoluteremotepath is "+file.getAbsoluteRemotePath()); logger.trace("rootArea is "+file.getRootPath()+ " absoluteremotepath is "+file.getAbsoluteRemotePath());
@ -61,7 +61,7 @@ public class GetRemotePath extends Operation{
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation");
} }

View File

@ -1,7 +1,7 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -27,7 +27,7 @@ public class GetSize extends Operation{
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -44,7 +44,7 @@ public class GetSize extends Operation{
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
logger.debug("remotePath: "+remotePath); logger.debug("remotePath: "+remotePath);
@ -60,7 +60,7 @@ public class GetSize extends Operation{
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation");
} }

View File

@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation;
import java.io.OutputStream; import java.io.OutputStream;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
@ -27,7 +27,7 @@ public class GetTTL extends Operation {
} }
@Override @Override
public String doIt(MyFile myFile) throws RemoteBackendException { public String doIt(RequestObject myFile) throws RemoteBackendException {
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug(" DOWNLOAD " + myFile.getRemotePath() logger.debug(" DOWNLOAD " + myFile.getRemotePath()
+ " in bucket: " + bucket); + " in bucket: " + bucket);
@ -48,7 +48,7 @@ public class GetTTL extends Operation {
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, String author, String[] server, String rootArea,
boolean replaceOption) { boolean replaceOption) {
this.localPath=file.getLocalPath(); this.localPath=file.getLocalPath();
@ -60,7 +60,7 @@ public class GetTTL extends Operation {
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;

View File

@ -1,7 +1,7 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.gcube.contentmanagement.blobstorage.resource.MemoryType; import org.gcube.contentmanagement.blobstorage.resource.MemoryType;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter.EncryptionException; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.Encrypter.EncryptionException;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
@ -21,13 +21,13 @@ public class GetUrl extends Operation{
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, String author, public String initOperation(RequestObject file, String remotePath, String author,
String[] server, String rootArea, boolean replaceOption) { String[] server, String rootArea, boolean replaceOption) {
return getRemoteIdentifier(remotePath, rootArea); return getRemoteIdentifier(remotePath, rootArea);
} }
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
@ -35,7 +35,7 @@ public class GetUrl extends Operation{
@Override @Override
public Object doIt(MyFile myFile) throws RemoteBackendException { public Object doIt(RequestObject myFile) throws RemoteBackendException {
String resolverHost=myFile.getResolverHOst(); String resolverHost=myFile.getResolverHOst();
String urlBase="smp://"+resolverHost+Costants.URL_SEPARATOR; String urlBase="smp://"+resolverHost+Costants.URL_SEPARATOR;
String urlParam=""; String urlParam="";
@ -60,7 +60,7 @@ public class GetUrl extends Operation{
String id=null; String id=null;
if(tm ==null){ if(tm ==null){
TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
tm=tmf.getTransport(backendType, memoryType, dbNames, writeConcern, readPreference); tm=tmf.getTransport(backendType, memoryType, dbNames, writeConcern, readPreference, null, null);
} }
try { try {
id = tm.getId(bucket, forceCreation); id = tm.getId(bucket, forceCreation);

View File

@ -1,6 +1,6 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
@ -19,7 +19,7 @@ public class GetUserTotalItems extends Operation {
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -38,7 +38,7 @@ public class GetUserTotalItems extends Operation {
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
setOwner(author); setOwner(author);
if((remotePath != null) && (remotePath.length() > 0)){ if((remotePath != null) && (remotePath.length() > 0)){
@ -64,7 +64,7 @@ public class GetUserTotalItems extends Operation {
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation");
} }

View File

@ -1,6 +1,6 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
@ -19,7 +19,7 @@ public class GetUserTotalVolume extends Operation {
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -38,7 +38,7 @@ public class GetUserTotalVolume extends Operation {
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
setOwner(author); setOwner(author);
if(remotePath!= null && remotePath.length()>0){ if(remotePath!= null && remotePath.length()>0){
@ -63,7 +63,7 @@ public class GetUserTotalVolume extends Operation {
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation");
} }

View File

@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -20,12 +20,12 @@ public abstract class Link extends Operation{
final Logger logger=LoggerFactory.getLogger(Download.class); final Logger logger=LoggerFactory.getLogger(Download.class);
private String sourcePath; private String sourcePath;
private String destinationPath; private String destinationPath;
private MyFile resource; private RequestObject resource;
public Link(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { public Link(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) {
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
this.sourcePath=file.getLocalPath(); this.sourcePath=file.getLocalPath();
this.destinationPath=remotePath; this.destinationPath=remotePath;
@ -36,7 +36,7 @@ public abstract class Link extends Operation{
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -53,7 +53,7 @@ public abstract class Link extends Operation{
@Override @Override
public String initOperation(MyFile resource, String remotePath, public String initOperation(RequestObject resource, String remotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
// For terrastore, the name of bucket is formed: path_____fileName_____author // For terrastore, the name of bucket is formed: path_____fileName_____author
// String bucketName=new BucketCoding().bucketFileCoding(remotePath, rootArea); // String bucketName=new BucketCoding().bucketFileCoding(remotePath, rootArea);
@ -65,7 +65,7 @@ public abstract class Link extends Operation{
return bucket=destinationPath; return bucket=destinationPath;
} }
public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException; public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException;
public String getSourcePath() { public String getSourcePath() {
return sourcePath; return sourcePath;
@ -83,11 +83,11 @@ public abstract class Link extends Operation{
this.destinationPath = destinationPath; this.destinationPath = destinationPath;
} }
public MyFile getResource() { public RequestObject getResource() {
return resource; return resource;
} }
public void setResource(MyFile resource) { public void setResource(RequestObject resource) {
this.resource = resource; this.resource = resource;
} }

View File

@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation;
import java.io.OutputStream; import java.io.OutputStream;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -24,7 +24,7 @@ public abstract class Lock extends Operation {
protected String localPath; protected String localPath;
protected String remotePath; protected String remotePath;
protected OutputStream os; protected OutputStream os;
protected MyFile resource; protected RequestObject resource;
protected Download download; protected Download download;
public Lock(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { public Lock(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) {
@ -33,7 +33,7 @@ public abstract class Lock extends Operation {
} }
@Override @Override
public String doIt(MyFile myFile) throws RemoteBackendException { public String doIt(RequestObject myFile) throws RemoteBackendException {
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug(" DOWNLOAD " + myFile.getRemotePath() logger.debug(" DOWNLOAD " + myFile.getRemotePath()
+ " in bucket: " + getBucket()); + " in bucket: " + getBucket());
@ -54,7 +54,7 @@ public abstract class Lock extends Operation {
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, String author, String[] server, String rootArea,
boolean replaceOption) { boolean replaceOption) {
String bucketName=null; String bucketName=null;
@ -73,13 +73,13 @@ public abstract class Lock extends Operation {
} }
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
} }
public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String serverLocation) throws Exception; public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String serverLocation) throws Exception;
public String getLocalPath() { public String getLocalPath() {
return localPath; return localPath;
@ -105,11 +105,11 @@ public abstract class Lock extends Operation {
this.os = os; this.os = os;
} }
public MyFile getResource() { public RequestObject getResource() {
return resource; return resource;
} }
public void setResource(MyFile resource) { public void setResource(RequestObject resource) {
this.resource = resource; this.resource = resource;
} }

View File

@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation;
//import org.apache.log4j.Logger; //import org.apache.log4j.Logger;
//import org.gcube.common.core.utils.logging.GCUBELog; //import org.gcube.common.core.utils.logging.GCUBELog;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.transport.backend.util.Costants; import org.gcube.contentmanagement.blobstorage.transport.backend.util.Costants;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -22,9 +22,9 @@ public class Monitor {
// private static final GCUBELog logger = new GCUBELog(Monitor.class); // private static final GCUBELog logger = new GCUBELog(Monitor.class);
final Logger logger=LoggerFactory.getLogger(Monitor.class); final Logger logger=LoggerFactory.getLogger(Monitor.class);
// request queue // request queue
private Vector<MyFile> requestQueue = new Vector<MyFile>(); private Vector<RequestObject> requestQueue = new Vector<RequestObject>();
// fetch the first request in the queue // fetch the first request in the queue
public synchronized MyFile getRequest(){ public synchronized RequestObject getRequest(){
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("getRequest() - start"); logger.debug("getRequest() - start");
} }
@ -36,7 +36,7 @@ public class Monitor {
logger.error("getRequest()", e); logger.error("getRequest()", e);
} }
} }
MyFile myFile=requestQueue.remove(0); RequestObject myFile=requestQueue.remove(0);
notifyAll(); notifyAll();
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("getRequest() - end"); logger.debug("getRequest() - end");
@ -44,7 +44,7 @@ public class Monitor {
return myFile; return myFile;
} }
public synchronized MyFile getRequest(ChunkProducer producer){ public synchronized RequestObject getRequest(ChunkProducer producer){
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("getRequest(ChunkProducer) - start"); logger.debug("getRequest(ChunkProducer) - start");
} }
@ -56,7 +56,7 @@ public class Monitor {
logger.error("getRequest(ChunkProducer)", e); logger.error("getRequest(ChunkProducer)", e);
} }
} }
MyFile myFile=requestQueue.remove(0); RequestObject myFile=requestQueue.remove(0);
notifyAll(); notifyAll();
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("getRequest(ChunkProducer) - end"); logger.debug("getRequest(ChunkProducer) - end");
@ -65,7 +65,7 @@ public class Monitor {
} }
// Accoda una nuova richiesta // Accoda una nuova richiesta
public synchronized void putRequest(MyFile richiesta){ public synchronized void putRequest(RequestObject richiesta){
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("putRequest(MyFile) - start"); logger.debug("putRequest(MyFile) - start");
logger.debug("request in queue, queue size: "+requestQueue.size()); logger.debug("request in queue, queue size: "+requestQueue.size());

View File

@ -4,7 +4,7 @@ import java.io.OutputStream;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import org.gcube.contentmanagement.blobstorage.resource.MemoryType; import org.gcube.contentmanagement.blobstorage.resource.MemoryType;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.DirectoryBucket;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
@ -23,12 +23,12 @@ public abstract class Move extends Operation{
final Logger logger=LoggerFactory.getLogger(Download.class); final Logger logger=LoggerFactory.getLogger(Download.class);
protected String sourcePath; protected String sourcePath;
protected String destinationPath; protected String destinationPath;
protected MyFile resource; protected RequestObject resource;
public Move(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { public Move(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) {
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
this.sourcePath=file.getLocalPath(); this.sourcePath=file.getLocalPath();
this.destinationPath=remotePath; this.destinationPath=remotePath;
@ -39,7 +39,7 @@ public abstract class Move extends Operation{
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -57,7 +57,7 @@ public abstract class Move extends Operation{
@Override @Override
public String initOperation(MyFile resource, String remotePath, public String initOperation(RequestObject resource, String remotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
this.sourcePath=resource.getLocalPath(); this.sourcePath=resource.getLocalPath();
this.destinationPath=resource.getRemotePath(); this.destinationPath=resource.getRemotePath();
@ -67,7 +67,7 @@ public abstract class Move extends Operation{
return bucket=destinationPath; return bucket=destinationPath;
} }
public abstract String execute(MongoIOManager mongoPrimaryInstance, MemoryType memoryType, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException; public abstract String execute(MongoIOManager mongoPrimaryInstance, MemoryType memoryType, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException;
public String getSourcePath() { public String getSourcePath() {
return sourcePath; return sourcePath;
@ -85,11 +85,11 @@ public abstract class Move extends Operation{
this.destinationPath = destinationPath; this.destinationPath = destinationPath;
} }
public MyFile getResource() { public RequestObject getResource() {
return resource; return resource;
} }
public void setResource(MyFile resource) { public void setResource(RequestObject resource) {
this.resource = resource; this.resource = resource;
} }

View File

@ -4,7 +4,7 @@ import java.net.UnknownHostException;
import java.util.List; import java.util.List;
import org.gcube.contentmanagement.blobstorage.resource.MemoryType; import org.gcube.contentmanagement.blobstorage.resource.MemoryType;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -21,13 +21,13 @@ public abstract class MoveDir extends Operation{
final Logger logger=LoggerFactory.getLogger(Download.class); final Logger logger=LoggerFactory.getLogger(Download.class);
private String sourcePath; private String sourcePath;
private String destinationPath; private String destinationPath;
private MyFile resource; private RequestObject resource;
// private OutputStream os; // private OutputStream os;
public MoveDir(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { public MoveDir(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) {
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
this.sourcePath=file.getLocalPath(); this.sourcePath=file.getLocalPath();
this.destinationPath=remotePath; this.destinationPath=remotePath;
@ -38,7 +38,7 @@ public abstract class MoveDir extends Operation{
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -55,7 +55,7 @@ public abstract class MoveDir extends Operation{
@Override @Override
public String initOperation(MyFile resource, String remotePath, public String initOperation(RequestObject resource, String remotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
this.sourcePath=resource.getLocalPath(); this.sourcePath=resource.getLocalPath();
this.destinationPath=resource.getRemotePath(); this.destinationPath=resource.getRemotePath();
@ -65,7 +65,7 @@ public abstract class MoveDir extends Operation{
return bucket=destinationPath; return bucket=destinationPath;
} }
public abstract List<String> execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, String destinationPath, MemoryType memoryType) throws UnknownHostException; public abstract List<String> execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath, String destinationPath, MemoryType memoryType) throws UnknownHostException;
public String getSourcePath() { public String getSourcePath() {
return sourcePath; return sourcePath;
@ -83,11 +83,11 @@ public abstract class MoveDir extends Operation{
this.destinationPath = destinationPath; this.destinationPath = destinationPath;
} }
public MyFile getResource() { public RequestObject getResource() {
return resource; return resource;
} }
public void setResource(MyFile resource) { public void setResource(RequestObject resource) {
this.resource = resource; this.resource = resource;
} }

View File

@ -1,7 +1,7 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine; import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
@ -99,7 +99,7 @@ public abstract class Operation {
* @return a String that identifies a file * @return a String that identifies a file
* @throws Exception * @throws Exception
*/ */
public String put(Upload upload, MyFile resource, boolean isChunk, boolean isBase64, boolean replaceOption, boolean isLock) throws Exception{ public String put(Upload upload, RequestObject resource, boolean isChunk, boolean isBase64, boolean replaceOption, boolean isLock) throws Exception{
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("put(MyFile, boolean, boolean) - start"); logger.debug("put(MyFile, boolean, boolean) - start");
} }
@ -175,7 +175,7 @@ public abstract class Operation {
* @throws IOException * @throws IOException
* @throws InterruptedException * @throws InterruptedException
*/ */
public String get(Download download, MyFile myFile, boolean isLock) throws IOException, InterruptedException, Exception { public String get(Download download, RequestObject myFile, boolean isLock) throws IOException, InterruptedException, Exception {
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("get(String) - start"); logger.debug("get(String) - start");
} }
@ -190,7 +190,7 @@ public abstract class Operation {
startPThreadChunk(download, myFile, tm, path); startPThreadChunk(download, myFile, tm, path);
}else{ }else{
unlocKey=tm.downloadManager(download, myFile, bucket, MyFile.class); unlocKey=tm.downloadManager(download, myFile, bucket, RequestObject.class);
} }
if((path!=null) && (new File(path).length()>0)){ if((path!=null) && (new File(path).length()>0)){
@ -210,12 +210,12 @@ public abstract class Operation {
* @throws InterruptedException * @throws InterruptedException
* @throws IOException * @throws IOException
*/ */
protected void startPThreadChunk(Download download,MyFile myFile, TransportManager tm, protected void startPThreadChunk(Download download,RequestObject myFile, TransportManager tm,
String path) throws FileNotFoundException, InterruptedException, String path) throws FileNotFoundException, InterruptedException,
IOException { IOException {
ExecutorService executor = Executors.newFixedThreadPool (2); ExecutorService executor = Executors.newFixedThreadPool (2);
int j=0; int j=0;
MyFile value=null; RequestObject value=null;
if(logger.isInfoEnabled()) if(logger.isInfoEnabled())
logger.info("localPath: "+path+" bucket: "+bucket); logger.info("localPath: "+path+" bucket: "+bucket);
@ -229,7 +229,7 @@ public abstract class Operation {
logger.debug("get(String) -"); logger.debug("get(String) -");
} }
try{ try{
value=(MyFile) tm.get(download); value=(RequestObject) tm.get(download);
}catch(Exception e){ }catch(Exception e){
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("get(String) - \n Trovate " + (j) + " key"); logger.debug("get(String) - \n Trovate " + (j) + " key");
@ -283,7 +283,7 @@ public abstract class Operation {
* @return a generic object that contains operation results * @return a generic object that contains operation results
* @throws IllegalAccessException * @throws IllegalAccessException
*/ */
public abstract Object doIt(MyFile myFile) throws RemoteBackendException; public abstract Object doIt(RequestObject myFile) throws RemoteBackendException;
/** /**
* init a operation * init a operation
@ -295,7 +295,7 @@ public abstract class Operation {
* @param replaceOption if true the file will be replaced * @param replaceOption if true the file will be replaced
* @return a string that identifies the operation * @return a string that identifies the operation
*/ */
public abstract String initOperation(MyFile file, String remoteIdentifier, String author, String[] server, String rootArea, boolean replaceOption); public abstract String initOperation(RequestObject file, String remoteIdentifier, String author, String[] server, String rootArea, boolean replaceOption);
/** /**
@ -307,7 +307,7 @@ public abstract class Operation {
* @param rootArea remote root path * @param rootArea remote root path
* @return a string that identifies the operation * @return a string that identifies the operation
*/ */
public abstract String initOperation(MyFile resource, String remoteIdentifier, String author, String[] server, String rootArea); public abstract String initOperation(RequestObject resource, String remoteIdentifier, String author, String[] server, String rootArea);
public String getOwner() { public String getOwner() {
return owner; return owner;
@ -381,10 +381,10 @@ public abstract class Operation {
this.user = user; this.user = user;
} }
protected TransportManager getTransport(MyFile myFile) { protected TransportManager getTransport(RequestObject myFile) {
if(Objects.isNull(transport)) { if(Objects.isNull(transport)) {
TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
transport=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); transport=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference(), myFile.getToken(), myFile.getRegion());
} }
return transport; return transport;
} }

View File

@ -25,7 +25,9 @@ public class OperationFactory {
Monitor monitor; Monitor monitor;
boolean isChunk; boolean isChunk;
private String backendType; private String backendType;
private String token;
public OperationFactory(String server[], String user, String pwd, String bucket, Monitor monitor2, boolean isChunk, String backendType, String[] dbs){ public OperationFactory(String server[], String user, String pwd, String bucket, Monitor monitor2, boolean isChunk, String backendType, String[] dbs){
this.server=server; this.server=server;
this.user=user; this.user=user;
@ -111,4 +113,12 @@ public class OperationFactory {
return op; return op;
} }
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
} }

View File

@ -1,6 +1,6 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException; import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -21,7 +21,7 @@ public class OperationManager {
private String[] server; private String[] server;
// private int dimension; // private int dimension;
private String operation; private String operation;
private MyFile resource; private RequestObject resource;
private boolean isChunk; private boolean isChunk;
private String bucketName; private String bucketName;
private String fileDest; private String fileDest;
@ -32,7 +32,8 @@ public class OperationManager {
private String[] dbNames; private String[] dbNames;
public OperationManager(String[] server, String user, String password, String operation, MyFile myFile, String backendType, String[] dbs){
public OperationManager(String[] server, String user, String password, String operation, RequestObject myFile, String backendType, String[] dbs, String token){
this.setServer(server); this.setServer(server);
this.setUser(user); this.setUser(user);
this.setPassword(password); this.setPassword(password);
@ -41,9 +42,10 @@ public class OperationManager {
this.setTypeOperation(operation); this.setTypeOperation(operation);
this.setDbNames(dbs); this.setDbNames(dbs);
this.backendType=backendType; this.backendType=backendType;
} }
public Object startOperation(MyFile file, String remotePath, String author, String[] server, boolean chunkOpt, String rootArea, boolean replaceOption) throws RemoteBackendException{ public Object startOperation(RequestObject file, String remotePath, String author, String[] server, boolean chunkOpt, String rootArea, boolean replaceOption) throws RemoteBackendException{
// setUser(author); // setUser(author);
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("connection(boolean) - start"); logger.debug("connection(boolean) - start");
@ -120,11 +122,11 @@ public class OperationManager {
this.operation = operation; this.operation = operation;
} }
public MyFile getResource() { public RequestObject getResource() {
return resource; return resource;
} }
public void setResource(MyFile resource) { public void setResource(RequestObject resource) {
this.resource = resource; this.resource = resource;
} }
@ -144,5 +146,6 @@ public class OperationManager {
this.dbNames = dbNames; this.dbNames = dbNames;
} }
} }

View File

@ -1,6 +1,6 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -24,7 +24,7 @@ public class Remove extends Operation{
super(server,user,pwd, bucket, monitor, isChunk, backendType, dbs); super(server,user,pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -36,7 +36,7 @@ public class Remove extends Operation{
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
String[] dirs= remotePath.split(Costants.FILE_SEPARATOR); String[] dirs= remotePath.split(Costants.FILE_SEPARATOR);
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
@ -64,7 +64,7 @@ public class Remove extends Operation{
* @param bucketName indicates the remote directory to remove * @param bucketName indicates the remote directory to remove
* @throws RemoteBackendException * @throws RemoteBackendException
*/ */
public void removeBucket(TransportManager tm, String bucketName, MyFile resource) throws RemoteBackendException { public void removeBucket(TransportManager tm, String bucketName, RequestObject resource) throws RemoteBackendException {
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
logger.debug("removing file bucket: "+bucketName); logger.debug("removing file bucket: "+bucketName);
try { try {
@ -77,7 +77,7 @@ public class Remove extends Operation{
} }
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
throw new IllegalArgumentException("Input/Output stream is not compatible with remove operation"); throw new IllegalArgumentException("Input/Output stream is not compatible with remove operation");
} }

View File

@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation;
import java.io.OutputStream; import java.io.OutputStream;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -29,7 +29,7 @@ public class RenewTTL extends Operation {
} }
@Override @Override
public String doIt(MyFile myFile) throws RemoteBackendException { public String doIt(RequestObject myFile) throws RemoteBackendException {
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -45,7 +45,7 @@ public class RenewTTL extends Operation {
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, String author, String[] server, String rootArea,
boolean replaceOption) { boolean replaceOption) {
this.localPath=file.getLocalPath(); this.localPath=file.getLocalPath();
@ -56,7 +56,7 @@ public class RenewTTL extends Operation {
} }
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;

View File

@ -1,7 +1,7 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -20,7 +20,7 @@ public class SetMetaInfo extends Operation {
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -37,7 +37,7 @@ public class SetMetaInfo extends Operation {
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, boolean replaceOption) { String author, String[] server, String rootArea, boolean replaceOption) {
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
logger.debug("remotePath: "+remotePath); logger.debug("remotePath: "+remotePath);
@ -53,7 +53,7 @@ public class SetMetaInfo extends Operation {
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation"); throw new IllegalArgumentException("Input/Output stream is not compatible with getSize operation");
} }

View File

@ -6,7 +6,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -27,14 +27,14 @@ public abstract class SoftCopy extends Operation {
final Logger logger=LoggerFactory.getLogger(SoftCopy.class); final Logger logger=LoggerFactory.getLogger(SoftCopy.class);
private String sourcePath; private String sourcePath;
private String destinationPath; private String destinationPath;
private MyFile resource; private RequestObject resource;
public SoftCopy(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { public SoftCopy(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) {
super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs); super(server, user, pwd, bucket, monitor, isChunk, backendType, dbs);
} }
public String initOperation(MyFile file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) {
// if(remotePath != null){ // if(remotePath != null){
// boolean isId=ObjectId.isValid(remotePath); // boolean isId=ObjectId.isValid(remotePath);
// setResource(file); // setResource(file);
@ -59,7 +59,7 @@ public abstract class SoftCopy extends Operation {
} }
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
// TransportManagerFactory tmf= new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf= new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
@ -76,7 +76,7 @@ public abstract class SoftCopy extends Operation {
@Override @Override
public String initOperation(MyFile resource, String remotePath, String author, String[] server, String rootArea) { public String initOperation(RequestObject resource, String remotePath, String author, String[] server, String rootArea) {
// For terrastore, the name of bucket is formed: path_____fileName_____author // For terrastore, the name of bucket is formed: path_____fileName_____author
this.sourcePath=resource.getLocalPath(); this.sourcePath=resource.getLocalPath();
this.destinationPath=resource.getRemotePath(); this.destinationPath=resource.getRemotePath();
@ -100,7 +100,7 @@ public abstract class SoftCopy extends Operation {
// }return bucket=null;//else throw new RemoteBackendException("argument cannot be null"); // }return bucket=null;//else throw new RemoteBackendException("argument cannot be null");
} }
public abstract String execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException; public abstract String execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException;
public String getSourcePath() { public String getSourcePath() {
return sourcePath; return sourcePath;
@ -118,11 +118,11 @@ public abstract class SoftCopy extends Operation {
this.destinationPath = destinationPath; this.destinationPath = destinationPath;
} }
public MyFile getResource() { public RequestObject getResource() {
return resource; return resource;
} }
public void setResource(MyFile resource) { public void setResource(RequestObject resource) {
this.resource = resource; this.resource = resource;
} }

View File

@ -2,7 +2,7 @@ package org.gcube.contentmanagement.blobstorage.service.operation;
import java.io.OutputStream; import java.io.OutputStream;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -23,7 +23,7 @@ public abstract class Unlock extends Operation {
protected String localPath; protected String localPath;
protected String remotePath; protected String remotePath;
protected OutputStream os; protected OutputStream os;
protected MyFile resource; protected RequestObject resource;
protected Upload upload; protected Upload upload;
public Unlock(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) { public Unlock(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String backendType, String[] dbs) {
@ -32,7 +32,7 @@ public abstract class Unlock extends Operation {
} }
@Override @Override
public String doIt(MyFile myFile) throws RemoteBackendException { public String doIt(RequestObject myFile) throws RemoteBackendException {
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug(" UPLOAD " + myFile.getLocalPath() logger.debug(" UPLOAD " + myFile.getLocalPath()
+ " author: " + myFile.getOwner()); + " author: " + myFile.getOwner());
@ -54,7 +54,7 @@ public abstract class Unlock extends Operation {
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, String author, String[] server, String rootArea,
boolean replaceOption) { boolean replaceOption) {
String bucketName=null; String bucketName=null;
@ -71,13 +71,13 @@ public abstract class Unlock extends Operation {
} }
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;
} }
public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String bucket, String key4unlock) throws Exception; public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String bucket, String key4unlock) throws Exception;
public String getLocalPath() { public String getLocalPath() {
return localPath; return localPath;
@ -103,11 +103,11 @@ public abstract class Unlock extends Operation {
this.os = os; this.os = os;
} }
public MyFile getResource() { public RequestObject getResource() {
return resource; return resource;
} }
public void setResource(MyFile resource) { public void setResource(RequestObject resource) {
this.resource = resource; this.resource = resource;
} }

View File

@ -4,7 +4,7 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -32,7 +32,7 @@ public abstract class Upload extends Operation {
protected String localPath; protected String localPath;
protected String remotePath; protected String remotePath;
protected OutputStream os; protected OutputStream os;
protected MyFile resource; protected RequestObject resource;
public Upload(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String bck, String[] dbs) { public Upload(String[] server, String user, String pwd, String bucket, Monitor monitor, boolean isChunk, String bck, String[] dbs) {
super(server, user, pwd, bucket, monitor, isChunk, bck, dbs); super(server, user, pwd, bucket, monitor, isChunk, bck, dbs);
@ -40,7 +40,7 @@ public abstract class Upload extends Operation {
public String doIt(MyFile myFile) throws RemoteBackendException{ public String doIt(RequestObject myFile) throws RemoteBackendException{
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug(" UPLOAD " + myFile.getLocalPath() logger.debug(" UPLOAD " + myFile.getLocalPath()
+ " author: " + myFile.getOwner()); + " author: " + myFile.getOwner());
@ -51,6 +51,7 @@ public abstract class Upload extends Operation {
} catch (Throwable e) { } catch (Throwable e) {
// TransportManagerFactory tmf=new TransportManagerFactory(server, user, password); // TransportManagerFactory tmf=new TransportManagerFactory(server, user, password);
// TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); // TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference());
e.printStackTrace();
TransportManager tm=getTransport(myFile); TransportManager tm=getTransport(myFile);
tm.close(); tm.close();
logger.error("Problem in upload from: "+myFile.getLocalPath()+": "+e.getMessage()); logger.error("Problem in upload from: "+myFile.getLocalPath()+": "+e.getMessage());
@ -63,7 +64,7 @@ public abstract class Upload extends Operation {
@Override @Override
public String initOperation(MyFile file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) { public String initOperation(RequestObject file, String remotePath, String author, String[] server, String rootArea, boolean replaceOption) {
// set replace option // set replace option
this.replaceOption=replaceOption; this.replaceOption=replaceOption;
setResource(file); setResource(file);
@ -80,7 +81,7 @@ public abstract class Upload extends Operation {
@Override @Override
public String initOperation(MyFile resource, String remotePath, public String initOperation(RequestObject resource, String remotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
// the name of bucket is formed: path_____fileName_____author // the name of bucket is formed: path_____fileName_____author
String bucketName=new BucketCoding().bucketFileCoding(remotePath, rootArea); String bucketName=new BucketCoding().bucketFileCoding(remotePath, rootArea);
@ -90,7 +91,7 @@ public abstract class Upload extends Operation {
} }
public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String bucket, boolean replace) throws IOException; public abstract String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String bucket, boolean replace) throws IOException;
public InputStream getIs() { public InputStream getIs() {
return is; return is;
@ -152,13 +153,13 @@ public abstract class Upload extends Operation {
public MyFile getResource() { public RequestObject getResource() {
return resource; return resource;
} }
public void setResource(MyFile resource) { public void setResource(RequestObject resource) {
this.resource = resource; this.resource = resource;
} }

View File

@ -1,6 +1,6 @@
package org.gcube.contentmanagement.blobstorage.service.operation; package org.gcube.contentmanagement.blobstorage.service.operation;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding; import org.gcube.contentmanagement.blobstorage.service.directoryOperation.BucketCoding;
import org.gcube.contentmanagement.blobstorage.transport.TransportManager; import org.gcube.contentmanagement.blobstorage.transport.TransportManager;
import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory; import org.gcube.contentmanagement.blobstorage.transport.TransportManagerFactory;
@ -21,7 +21,7 @@ public class UploadAndUnlock extends Operation {
} }
@Override @Override
public String doIt(MyFile myFile) throws RemoteBackendException { public String doIt(RequestObject myFile) throws RemoteBackendException {
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug(" UPLOAD " + myFile.getLocalPath() logger.debug(" UPLOAD " + myFile.getLocalPath()
+ " author: " + myFile.getOwner()); + " author: " + myFile.getOwner());
@ -33,7 +33,7 @@ public class UploadAndUnlock extends Operation {
objectId=put(upload, myFile, isChunk(), false, false, true); objectId=put(upload, myFile, isChunk(), false, false, true);
} catch (Exception e) { } catch (Exception e) {
TransportManagerFactory tmf=new TransportManagerFactory(server, user, password); TransportManagerFactory tmf=new TransportManagerFactory(server, user, password);
TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference()); TransportManager tm=tmf.getTransport(backendType, myFile.getGcubeMemoryType(), dbNames, myFile.getWriteConcern(), myFile.getReadPreference(), myFile.getToken(), myFile.getRegion());
tm.close(); tm.close();
throw new RemoteBackendException(" Error in uploadAndUnlock operation ", e.getCause()); } throw new RemoteBackendException(" Error in uploadAndUnlock operation ", e.getCause()); }
return objectId; return objectId;
@ -41,7 +41,7 @@ public class UploadAndUnlock extends Operation {
} }
@Override @Override
public String initOperation(MyFile file, String remotePath, public String initOperation(RequestObject file, String remotePath,
String author, String[] server, String rootArea, String author, String[] server, String rootArea,
boolean replaceOption) { boolean replaceOption) {
// set replace option // set replace option
@ -53,7 +53,7 @@ public class UploadAndUnlock extends Operation {
} }
@Override @Override
public String initOperation(MyFile resource, String RemotePath, public String initOperation(RequestObject resource, String RemotePath,
String author, String[] server, String rootArea) { String author, String[] server, String rootArea) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
return null; return null;

View File

@ -7,7 +7,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import org.gcube.contentmanagement.blobstorage.resource.MemoryType; import org.gcube.contentmanagement.blobstorage.resource.MemoryType;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.StorageObject; import org.gcube.contentmanagement.blobstorage.resource.StorageObject;
import org.gcube.contentmanagement.blobstorage.service.operation.*; import org.gcube.contentmanagement.blobstorage.service.operation.*;
import org.gcube.contentmanagement.blobstorage.transport.backend.operation.LockOperator; import org.gcube.contentmanagement.blobstorage.transport.backend.operation.LockOperator;
@ -36,8 +36,9 @@ public abstract class TransportManager {
* @param server array that contains ip of backend server * @param server array that contains ip of backend server
* @param pass * @param pass
* @param user * @param user
* @param token api token if is required by backend
*/ */
public abstract void initBackend(String[] server, String user, String pass, MemoryType memoryType, String[] dbNames, String writeConcern, String readConcern); public abstract void initBackend(String[] server, String user, String pass, MemoryType memoryType, String[] dbNames, String writeConcern, String readConcern, String token, String region);
/** /**
@ -48,7 +49,7 @@ public abstract class TransportManager {
* @return the key of remote resource * @return the key of remote resource
* @throws IOException if there are IO problems * @throws IOException if there are IO problems
*/ */
public String downloadManager(Download download, MyFile myFile, String key, Class <? extends Object> type) throws Exception{ public String downloadManager(Download download, RequestObject myFile, String key, Class <? extends Object> type) throws Exception{
String key4lock=null; String key4lock=null;
if(myFile.isLock()){ if(myFile.isLock()){
download.setResource(myFile); download.setResource(myFile);
@ -75,7 +76,7 @@ public abstract class TransportManager {
*/ */
public String uploadManager(Upload upload, Object resource, String bucket, String key, boolean replace) throws Exception{ public String uploadManager(Upload upload, Object resource, String bucket, String key, boolean replace) throws Exception{
String id=null; String id=null;
MyFile file=(MyFile)resource; RequestObject file=(RequestObject)resource;
if((file.getLockedKey()!=null) && (!file.getLockedKey().isEmpty())){ if((file.getLockedKey()!=null) && (!file.getLockedKey().isEmpty())){
Unlock unlock= new UnlockOperator(upload.getServer(), upload.getUser(), upload.getPassword(), upload.getBucket(), upload.getMonitor(), upload.isChunk(), upload.getBackendType(), upload.getDbNames()); Unlock unlock= new UnlockOperator(upload.getServer(), upload.getUser(), upload.getPassword(), upload.getBucket(), upload.getMonitor(), upload.isChunk(), upload.getBackendType(), upload.getDbNames());
unlock.setResource(file); unlock.setResource(file);
@ -132,14 +133,14 @@ public abstract class TransportManager {
* @return map that contains the object in the direcotry * @return map that contains the object in the direcotry
* @throws UnknownHostException * @throws UnknownHostException
*/ */
public abstract Map<String, StorageObject> getValues(MyFile resource, String bucket, Class< ? extends Object> type); public abstract Map<String, StorageObject> getValues(RequestObject resource, String bucket, Class< ? extends Object> type);
/** /**
* delete a remote file * delete a remote file
* @param bucket identifies the remote file * @param bucket identifies the remote file
* @throws UnknownHostException * @throws UnknownHostException
*/ */
public abstract void removeRemoteFile(String bucket, MyFile resource) throws UnknownHostException; public abstract void removeRemoteFile(String bucket, RequestObject resource) throws UnknownHostException;
/** /**
* delete a remote directory * delete a remote directory
@ -149,7 +150,7 @@ public abstract class TransportManager {
* @throws UnknownHostException * @throws UnknownHostException
* *
*/ */
public abstract void removeDir(String remoteDir, MyFile myFile) throws UnknownHostException; public abstract void removeDir(String remoteDir, RequestObject myFile) throws UnknownHostException;
/** /**
@ -159,7 +160,7 @@ public abstract class TransportManager {
* @return the size of the remote file * @return the size of the remote file
* @throws UnknownHostException * @throws UnknownHostException
*/ */
public abstract long getSize(String bucket, MyFile myFile); public abstract long getSize(String bucket, RequestObject myFile);
/** /**
* lock a remote file * lock a remote file
@ -209,7 +210,7 @@ public abstract class TransportManager {
* @throws UnknownHostException * @throws UnknownHostException
* @throws IllegalAccessException * @throws IllegalAccessException
*/ */
public abstract long renewTTL(MyFile resource) throws UnknownHostException, IllegalAccessException; public abstract long renewTTL(RequestObject resource) throws UnknownHostException, IllegalAccessException;
/** /**

View File

@ -38,16 +38,16 @@ public class TransportManagerFactory {
this.password=password; this.password=password;
} }
public TransportManager getTransport(String backendType, MemoryType memoryType, String[] dbNames, String writeConcern, String readConcern){ public TransportManager getTransport(String backendType, MemoryType memoryType, String[] dbNames, String writeConcern, String readConcern, String token, String region){
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("getOperation(String) - start"); logger.debug("getOperation(String) - start");
} }
if(Objects.isNull(transport)) if(Objects.isNull(transport))
return load(backendType, memoryType, dbNames, writeConcern, readConcern); return load(backendType, memoryType, dbNames, writeConcern, readConcern, token, region);
return transport; return transport;
} }
private TransportManager load(String backendType, MemoryType memoryType, String[] dbNames, String writeConcern, String readConcern){ private TransportManager load(String backendType, MemoryType memoryType, String[] dbNames, String writeConcern, String readConcern, String token, String region){
ServiceLoader<TransportManager> loader = ServiceLoader.load(TransportManager.class); ServiceLoader<TransportManager> loader = ServiceLoader.load(TransportManager.class);
Iterator<TransportManager> iterator = loader.iterator(); Iterator<TransportManager> iterator = loader.iterator();
List<TransportManager> impls = new ArrayList<TransportManager>(); List<TransportManager> impls = new ArrayList<TransportManager>();
@ -59,11 +59,11 @@ public class TransportManagerFactory {
// System.out.println("size: "+implementationCounted); // System.out.println("size: "+implementationCounted);
if((implementationCounted==0) || backendType.equals(Costants.DEFAULT_TRANSPORT_MANAGER)){ if((implementationCounted==0) || backendType.equals(Costants.DEFAULT_TRANSPORT_MANAGER)){
logger.info(" 0 implementation found. Load default implementation of TransportManager"); logger.info(" 0 implementation found. Load default implementation of TransportManager");
return new MongoOperationManager(server, user, password, memoryType, dbNames, writeConcern, readConcern); return new MongoOperationManager(server, user, password, memoryType, dbNames, writeConcern, readConcern, null, null);
}else if((implementationCounted==1) && Objects.isNull(backendType)){ }else if((implementationCounted==1) && Objects.isNull(backendType)){
TransportManager tm = impls.get(0); TransportManager tm = impls.get(0);
logger.info("1 implementation of TransportManager found. Load it. "+tm.getName()); logger.info("1 implementation of TransportManager found. Load it. "+tm.getName());
tm.initBackend(server, user, password, memoryType, dbNames, writeConcern, readConcern); tm.initBackend(server, user, password, memoryType, dbNames, writeConcern, readConcern, token, region);
return tm; return tm;
}else{ }else{
logger.info("found "+implementationCounted+" implementations of TransportManager"); logger.info("found "+implementationCounted+" implementations of TransportManager");
@ -71,7 +71,7 @@ public class TransportManagerFactory {
for(TransportManager tm : impls){ for(TransportManager tm : impls){
if(tm.getName().equalsIgnoreCase(backendType)){ if(tm.getName().equalsIgnoreCase(backendType)){
logger.info("Found implementation "+backendType); logger.info("Found implementation "+backendType);
tm.initBackend(server, user, password, memoryType, dbNames, writeConcern, readConcern); tm.initBackend(server, user, password, memoryType, dbNames, writeConcern, readConcern, token, region);
return tm; return tm;
} }
} }

View File

@ -12,7 +12,7 @@ import java.util.List;
import java.util.Set; import java.util.Set;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MemoryType; import org.gcube.contentmanagement.blobstorage.resource.MemoryType;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE;
@ -125,7 +125,7 @@ public class MongoIOManager {
return db; return db;
} }
//PATCHED METHODS //PATCHED METHODS
protected ObjectId getRemoteObject(GridFS gfs, MyFile resource, GridFSDBFile f) throws IOException, IllegalAccessError { protected ObjectId getRemoteObject(GridFS gfs, RequestObject resource, GridFSDBFile f) throws IOException, IllegalAccessError {
ObjectId id; ObjectId id;
id=(ObjectId)f.getId(); id=(ObjectId)f.getId();
String lock=(String)f.get("lock"); String lock=(String)f.get("lock");
@ -141,7 +141,7 @@ public class MongoIOManager {
return id; return id;
} }
public ObjectId getRemoteObject(MyFile resource, GridFSDBFile f) throws IOException, IllegalAccessError { public ObjectId getRemoteObject(RequestObject resource, GridFSDBFile f) throws IOException, IllegalAccessError {
ObjectId id; ObjectId id;
id=(ObjectId)f.getId(); id=(ObjectId)f.getId();
String lock=(String)f.get("lock"); String lock=(String)f.get("lock");
@ -187,7 +187,7 @@ public class MongoIOManager {
* @param isLock indicates if the file must be locked * @param isLock indicates if the file must be locked
* @throws IOException * @throws IOException
*/ */
private void download(GridFS gfs, MyFile resource, GridFSDBFile f, boolean isLock) throws IOException { private void download(GridFS gfs, RequestObject resource, GridFSDBFile f, boolean isLock) throws IOException {
OperationDefinition op=resource.getOperationDefinition(); OperationDefinition op=resource.getOperationDefinition();
logger.info("MongoClient download method: "+op.toString()); logger.info("MongoClient download method: "+op.toString());
// if contains the field link it means that is a link hence I follow ne or more links // if contains the field link it means that is a link hence I follow ne or more links
@ -218,7 +218,7 @@ public class MongoIOManager {
* @param isLock indicates if the file must be locked * @param isLock indicates if the file must be locked
* @throws IOException * @throws IOException
*/ */
private void download( MyFile resource, GridFSDBFile f, boolean isLock) throws IOException { private void download( RequestObject resource, GridFSDBFile f, boolean isLock) throws IOException {
OperationDefinition op=resource.getOperationDefinition(); OperationDefinition op=resource.getOperationDefinition();
logger.info("MongoClient download method: "+op.toString()); logger.info("MongoClient download method: "+op.toString());
// if contains the field link it means that is a link hence I follow ne or more links // if contains the field link it means that is a link hence I follow ne or more links
@ -242,7 +242,7 @@ public class MongoIOManager {
} }
} }
public void updateCommonFields(DBObject f, MyFile resource, OPERATION op) { public void updateCommonFields(DBObject f, RequestObject resource, OPERATION op) {
f.put("lastAccess", DateUtils.now("dd MM yyyy 'at' hh:mm:ss z")); f.put("lastAccess", DateUtils.now("dd MM yyyy 'at' hh:mm:ss z"));
String owner=resource.getOwner(); String owner=resource.getOwner();
f.put("lastUser", owner); f.put("lastUser", owner);
@ -289,7 +289,7 @@ public class MongoIOManager {
close(); close();
throw new IllegalAccessError("The file is locked"); throw new IllegalAccessError("The file is locked");
}else{ }else{
oldId=checkAndRemove(fold, (MyFile)resource); oldId=checkAndRemove(fold, (RequestObject)resource);
} }
} }
// }else if(oldir == null){ // }else if(oldir == null){
@ -301,7 +301,7 @@ public class MongoIOManager {
} }
public ObjectId checkAndRemove(GridFSDBFile f, MyFile resource){ public ObjectId checkAndRemove(GridFSDBFile f, RequestObject resource){
String idToRemove=f.getId().toString(); String idToRemove=f.getId().toString();
logger.info("check and remove object with id "+idToRemove+" and path: "+f.get("filename")); logger.info("check and remove object with id "+idToRemove+" and path: "+f.get("filename"));
ObjectId idFile=null; ObjectId idFile=null;
@ -408,12 +408,12 @@ public class MongoIOManager {
//maybe this close is not needed //maybe this close is not needed
// clean(); // clean();
try{ try{
if(((MyFile)resource).getInputStream()!= null){ if(((RequestObject)resource).getInputStream()!= null){
//upload with client inputStream //upload with client inputStream
f2 = writeByInputStream(resource, bucket, name, dir,idFile); f2 = writeByInputStream(resource, bucket, name, dir,idFile);
f2.save(); f2.save();
}else if(((((MyFile)resource).getType() != null) && (((MyFile)resource).getType().equals("output")))){ }else if(((((RequestObject)resource).getType() != null) && (((RequestObject)resource).getType().equals("output")))){
// upload with outputstream // upload with outputstream
f2 = writeByOutputStream(resource, bucket, name, dir, idFile); f2 = writeByOutputStream(resource, bucket, name, dir, idFile);
}else{ }else{
@ -429,7 +429,7 @@ public class MongoIOManager {
logger.debug("ObjectId: "+id); logger.debug("ObjectId: "+id);
// if it is an outputstream don't close // if it is an outputstream don't close
if(!((((MyFile)resource).getType() != null) && (((MyFile)resource).getType().equals("output")))){ if(!((((RequestObject)resource).getType() != null) && (((RequestObject)resource).getType().equals("output")))){
close(); close();
} }
}catch(IOException e1){ }catch(IOException e1){
@ -454,9 +454,9 @@ public class MongoIOManager {
throws IOException { throws IOException {
GridFSInputFile f2; GridFSInputFile f2;
if(!(memoryType== MemoryType.VOLATILE)) if(!(memoryType== MemoryType.VOLATILE))
f2 = createGFSFileObject(new File(((MyFile)resource).getLocalPath()), ((MyFile)resource).getWriteConcern(), ((MyFile)resource).getReadPreference()); f2 = createGFSFileObject(new File(((RequestObject)resource).getLocalPath()), ((RequestObject)resource).getWriteConcern(), ((RequestObject)resource).getReadPreference());
else else
f2 = createGFSFileObject(new File(((MyFile)resource).getLocalPath())); f2 = createGFSFileObject(new File(((RequestObject)resource).getLocalPath()));
fillInputFile(resource, bucket, name, dir, f2, idFile); fillInputFile(resource, bucket, name, dir, f2, idFile);
saveGFSFileObject(f2); saveGFSFileObject(f2);
return f2; return f2;
@ -466,11 +466,11 @@ public class MongoIOManager {
String bucket, String name, String dir, ObjectId idFile) throws IOException { String bucket, String name, String dir, ObjectId idFile) throws IOException {
GridFSInputFile f2; GridFSInputFile f2;
if(!(memoryType== MemoryType.VOLATILE)) if(!(memoryType== MemoryType.VOLATILE))
f2 = createGFSFileObject(((MyFile)resource).getName(), ((MyFile)resource).getWriteConcern(), ((MyFile)resource).getReadPreference()); f2 = createGFSFileObject(((RequestObject)resource).getName(), ((RequestObject)resource).getWriteConcern(), ((RequestObject)resource).getReadPreference());
else else
f2 = createGFSFileObject(((MyFile)resource).getName()); f2 = createGFSFileObject(((RequestObject)resource).getName());
fillInputFile(resource, bucket, name, dir, f2, idFile); fillInputFile(resource, bucket, name, dir, f2, idFile);
((MyFile)resource).setOutputStream(new MongoOutputStream(mongo, f2.getOutputStream())); ((RequestObject)resource).setOutputStream(new MongoOutputStream(mongo, f2.getOutputStream()));
return f2; return f2;
} }
@ -479,13 +479,13 @@ public class MongoIOManager {
throws IOException { throws IOException {
GridFSInputFile f2; GridFSInputFile f2;
if(!(memoryType== MemoryType.VOLATILE)) if(!(memoryType== MemoryType.VOLATILE))
f2 = createGFSFileObject(((MyFile)resource).getInputStream(), ((MyFile)resource).getWriteConcern(),((MyFile)resource).getReadPreference()); f2 = createGFSFileObject(((RequestObject)resource).getInputStream(), ((RequestObject)resource).getWriteConcern(),((RequestObject)resource).getReadPreference());
else else
f2 = createGFSFileObject(((MyFile)resource).getInputStream()); f2 = createGFSFileObject(((RequestObject)resource).getInputStream());
fillInputFile(resource, bucket, name, dir, f2, idFile); fillInputFile(resource, bucket, name, dir, f2, idFile);
saveGFSFileObject(f2); saveGFSFileObject(f2);
((MyFile)resource).getInputStream().close(); ((RequestObject)resource).getInputStream().close();
((MyFile)resource).setInputStream(null); ((RequestObject)resource).setInputStream(null);
return f2; return f2;
} }
@ -503,14 +503,14 @@ public class MongoIOManager {
f2.put("name", name); f2.put("name", name);
if(dir!=null) if(dir!=null)
f2.put("dir", dir); f2.put("dir", dir);
if(((MyFile)resource).getOwner() !=null) if(((RequestObject)resource).getOwner() !=null)
f2.put("owner", ((MyFile)resource).getOwner()); f2.put("owner", ((RequestObject)resource).getOwner());
String mime= ((MyFile)resource).getMimeType(); String mime= ((RequestObject)resource).getMimeType();
if( mime !=null){ if( mime !=null){
f2.put("mimetype", mime); f2.put("mimetype", mime);
} }
f2.put("creationTime", DateUtils.now("dd MM yyyy 'at' hh:mm:ss z")); f2.put("creationTime", DateUtils.now("dd MM yyyy 'at' hh:mm:ss z"));
updateCommonFields(f2, (MyFile)resource, null); updateCommonFields(f2, (RequestObject)resource, null);
} }
@ -521,7 +521,7 @@ public class MongoIOManager {
* @param query * @param query
* @throws UnknownHostException * @throws UnknownHostException
*/ */
protected void removeObject(GridFS gfs, BasicDBObject query, MyFile resource){ protected void removeObject(GridFS gfs, BasicDBObject query, RequestObject resource){
List<GridFSDBFile> list = gfs.find(query); List<GridFSDBFile> list = gfs.find(query);
for(Iterator<GridFSDBFile> it=list.iterator(); it.hasNext();){ for(Iterator<GridFSDBFile> it=list.iterator(); it.hasNext();){
GridFSDBFile f=(GridFSDBFile)it.next(); GridFSDBFile f=(GridFSDBFile)it.next();
@ -535,19 +535,19 @@ public class MongoIOManager {
} }
public void setGenericProperties(MyFile resource, String destination, public void setGenericProperties(RequestObject resource, String destination,
String dir, GridFSInputFile destinationFile, String name) { String dir, GridFSInputFile destinationFile, String name) {
updateCommonFields(destinationFile, resource, null); updateCommonFields(destinationFile, resource, null);
destinationFile.put("filename", destination); destinationFile.put("filename", destination);
destinationFile.put("type", "file"); destinationFile.put("type", "file");
destinationFile.put("name", name); destinationFile.put("name", name);
destinationFile.put("dir", dir); destinationFile.put("dir", dir);
destinationFile.put("owner", ((MyFile)resource).getOwner()); destinationFile.put("owner", ((RequestObject)resource).getOwner());
destinationFile.put("mimetype", ((MyFile)resource).getMimeType()); destinationFile.put("mimetype", ((RequestObject)resource).getMimeType());
destinationFile.put("creationTime", DateUtils.now("dd MM yyyy 'at' hh:mm:ss z")); destinationFile.put("creationTime", DateUtils.now("dd MM yyyy 'at' hh:mm:ss z"));
} }
public BasicDBObject setGenericMoveProperties(MyFile resource, String filename, String dir, public BasicDBObject setGenericMoveProperties(RequestObject resource, String filename, String dir,
String name, BasicDBObject f) { String name, BasicDBObject f) {
f.append("filename", filename).append("type", "file").append("name", name).append("dir", dir); f.append("filename", filename).append("type", "file").append("name", name).append("dir", dir);
return f; return f;
@ -832,7 +832,7 @@ public class MongoIOManager {
* @param isLock * @param isLock
* @return * @return
*/ */
protected String readByInputStream(MyFile resource, GridFSDBFile f, boolean isLock, int count) { protected String readByInputStream(RequestObject resource, GridFSDBFile f, boolean isLock, int count) {
String key=null; String key=null;
resource.setInputStream(new MongoInputStream(mongo, f.getInputStream())); resource.setInputStream(new MongoInputStream(mongo, f.getInputStream()));
return key; return key;
@ -845,7 +845,7 @@ public class MongoIOManager {
* @return * @return
* @throws IOException * @throws IOException
*/ */
protected String readByOutputStream(MyFile resource, GridFSDBFile f, boolean isLock, int count) protected String readByOutputStream(RequestObject resource, GridFSDBFile f, boolean isLock, int count)
throws IOException { throws IOException {
String key=null; String key=null;
f.writeTo(resource.getOutputStream()); f.writeTo(resource.getOutputStream());
@ -863,7 +863,7 @@ public class MongoIOManager {
* @return * @return
* @throws IOException * @throws IOException
*/ */
protected String readByPath(MyFile resource, GridFSDBFile f, boolean isLock, int count) protected String readByPath(RequestObject resource, GridFSDBFile f, boolean isLock, int count)
throws IOException { throws IOException {
String key=null; String key=null;
try{ try{

View File

@ -1,4 +1,4 @@
package org.gcube.contentmanagement.blobstorage.transport.backend; package org.gcube.contentmanagement.blobstorage.transport.backend;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
@ -13,7 +13,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import org.gcube.contentmanagement.blobstorage.resource.MemoryType; import org.gcube.contentmanagement.blobstorage.resource.MemoryType;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition;
import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine; import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine;
import org.gcube.contentmanagement.blobstorage.service.operation.*; import org.gcube.contentmanagement.blobstorage.service.operation.*;
@ -48,13 +48,13 @@ public class MongoOperationManager extends TransportManager{
protected static String[] dbNames; protected static String[] dbNames;
public MongoOperationManager(String[] server, String user, String password, MemoryType memoryType, String[] dbNames,String writeConcern, String readConcern){ public MongoOperationManager(String[] server, String user, String password, MemoryType memoryType, String[] dbNames,String writeConcern, String readConcern, String token, String region){
initBackend(server,user,password, memoryType,dbNames, writeConcern, readConcern); initBackend(server,user,password, memoryType,dbNames, writeConcern, readConcern, token, region);
} }
@Override @Override
public void initBackend(String[] server, String user, String pass, MemoryType memoryType , String[] dbNames, String writeConcern, String readConcern) { public void initBackend(String[] server, String user, String pass, MemoryType memoryType , String[] dbNames, String writeConcern, String readConcern, String token, String region) {
try { try {
this.memoryType=memoryType; this.memoryType=memoryType;
MongoOperationManager.dbNames=dbNames; MongoOperationManager.dbNames=dbNames;
@ -141,7 +141,7 @@ public class MongoOperationManager extends TransportManager{
} }
@Override @Override
public Map<String, StorageObject> getValues(MyFile resource, String bucket, Class<? extends Object> type){ public Map<String, StorageObject> getValues(RequestObject resource, String bucket, Class<? extends Object> type){
Map<String, StorageObject> map=null; Map<String, StorageObject> map=null;
try{ try{
OperationDefinition op=resource.getOperationDefinition(); OperationDefinition op=resource.getOperationDefinition();
@ -214,7 +214,7 @@ public class MongoOperationManager extends TransportManager{
@Override @Override
public void removeRemoteFile(String bucket, MyFile resource) throws UnknownHostException{ public void removeRemoteFile(String bucket, RequestObject resource) throws UnknownHostException{
logger.info("Check file: "+bucket+ " for removing operation"); logger.info("Check file: "+bucket+ " for removing operation");
GridFSDBFile f=mongoPrimaryInstance.retrieveRemoteDescriptor(bucket, null, true); GridFSDBFile f=mongoPrimaryInstance.retrieveRemoteDescriptor(bucket, null, true);
if(f!=null){ if(f!=null){
@ -237,7 +237,7 @@ public class MongoOperationManager extends TransportManager{
@Override @Override
public void removeDir(String remoteDir, MyFile resource){ public void removeDir(String remoteDir, RequestObject resource){
ArrayList<String> dirs=new ArrayList<String>(); ArrayList<String> dirs=new ArrayList<String>();
dirs.add(remoteDir); dirs.add(remoteDir);
// patch for incompatibility v 1-2 // patch for incompatibility v 1-2
@ -290,7 +290,7 @@ public class MongoOperationManager extends TransportManager{
} }
@Override @Override
public long getSize(String remotePath, MyFile file){ public long getSize(String remotePath, RequestObject file){
long length=-1; long length=-1;
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
logger.debug("MongoDB - get Size for pathServer: "+remotePath); logger.debug("MongoDB - get Size for pathServer: "+remotePath);
@ -336,9 +336,9 @@ public class MongoOperationManager extends TransportManager{
} }
@Override @Override
public long renewTTL(MyFile resource) throws UnknownHostException, IllegalAccessException{ public long renewTTL(RequestObject resource) throws UnknownHostException, IllegalAccessException{
long ttl=-1; long ttl=-1;
MyFile file=(MyFile)resource; RequestObject file=(RequestObject)resource;
REMOTE_RESOURCE remoteResourceIdentifier=file.getOperation().getRemoteResource(); REMOTE_RESOURCE remoteResourceIdentifier=file.getOperation().getRemoteResource();
String key=file.getLockedKey(); String key=file.getLockedKey();
String remotePath=file.getRemotePath(); String remotePath=file.getRemotePath();

View File

@ -8,7 +8,7 @@ import java.net.UnknownHostException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION;
import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine; import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine;
import org.gcube.contentmanagement.blobstorage.service.operation.CopyDir; import org.gcube.contentmanagement.blobstorage.service.operation.CopyDir;
@ -52,7 +52,7 @@ public class CopyDirOperator extends CopyDir {
* @see org.gcube.contentmanagement.blobstorage.service.operation.CopyDir#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.resource.MyFile, java.lang.String, java.lang.String) * @see org.gcube.contentmanagement.blobstorage.service.operation.CopyDir#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.resource.MyFile, java.lang.String, java.lang.String)
*/ */
@Override @Override
public List<String> execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, String destinationPath) public List<String> execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath, String destinationPath)
throws UnknownHostException { throws UnknownHostException {
String source=sourcePath; String source=sourcePath;
source = appendFileSeparator(source); source = appendFileSeparator(source);

View File

@ -7,7 +7,7 @@ import java.io.InputStream;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE;
import org.gcube.contentmanagement.blobstorage.service.operation.Copy; import org.gcube.contentmanagement.blobstorage.service.operation.Copy;
@ -47,13 +47,13 @@ public class CopyOperator extends Copy {
*/ */
@Override @Override
// public String execute(MongoIO mongoPrimaryInstance) throws UnknownHostException { // public String execute(MongoIO mongoPrimaryInstance) throws UnknownHostException {
public String execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException { public String execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException {
String source=sourcePath; String source=sourcePath;
String destination=destinationPath; String destination=destinationPath;
String dir=((MyFile)resource).getRemoteDir(); String dir=((RequestObject)resource).getRemoteDir();
String originalDir=((MyFile)resource).getLocalDir(); String originalDir=((RequestObject)resource).getLocalDir();
logger.debug("from directory: "+originalDir+ "to directory: "+dir); logger.debug("from directory: "+originalDir+ "to directory: "+dir);
String name=((MyFile)resource).getName(); String name=((RequestObject)resource).getName();
REMOTE_RESOURCE remoteResourceIdentifier=resource.getOperation().getRemoteResource(); REMOTE_RESOURCE remoteResourceIdentifier=resource.getOperation().getRemoteResource();
ObjectId destinationId=null; ObjectId destinationId=null;
logger.debug("copy operation on Mongo backend, parameters: source path: "+source+" destination path: "+destination); logger.debug("copy operation on Mongo backend, parameters: source path: "+source+" destination path: "+destination);
@ -96,11 +96,11 @@ public class CopyOperator extends Copy {
public String safePut(MongoIOManager mongoPrimaryInstance, Object resource, String bucket, String key, boolean replace) throws UnknownHostException{ public String safePut(MongoIOManager mongoPrimaryInstance, Object resource, String bucket, String key, boolean replace) throws UnknownHostException{
OperationDefinition op=((MyFile)resource).getOperationDefinition(); OperationDefinition op=((RequestObject)resource).getOperationDefinition();
REMOTE_RESOURCE remoteResourceIdentifier=((MyFile)resource).getOperation().getRemoteResource(); REMOTE_RESOURCE remoteResourceIdentifier=((RequestObject)resource).getOperation().getRemoteResource();
logger.info("MongoClient put method: "+op.toString()); logger.info("MongoClient put method: "+op.toString());
String dir=((MyFile)resource).getRemoteDir(); String dir=((RequestObject)resource).getRemoteDir();
String name=((MyFile)resource).getName(); String name=((RequestObject)resource).getName();
ObjectId id=null; ObjectId id=null;
ObjectId oldId=null; ObjectId oldId=null;
// id of the remote file if present // id of the remote file if present

View File

@ -5,7 +5,7 @@ package org.gcube.contentmanagement.blobstorage.transport.backend.operation;
import java.io.IOException; import java.io.IOException;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE;
import org.gcube.contentmanagement.blobstorage.service.operation.DuplicateFile; import org.gcube.contentmanagement.blobstorage.service.operation.DuplicateFile;
import org.gcube.contentmanagement.blobstorage.service.operation.Monitor; import org.gcube.contentmanagement.blobstorage.service.operation.Monitor;
@ -46,8 +46,8 @@ public class DuplicateOperator extends DuplicateFile {
*/ */
@Override @Override
public String execute(MongoIOManager mongoPrimaryInstance){ public String execute(MongoIOManager mongoPrimaryInstance){
String destination=((MyFile)getResource()).getRemotePath()+Costants.DUPLICATE_SUFFIX; String destination=((RequestObject)getResource()).getRemotePath()+Costants.DUPLICATE_SUFFIX;
String dir=((MyFile)getResource()).getRemoteDir(); String dir=((RequestObject)getResource()).getRemoteDir();
// String name=((MyFile)getResource()).getName(); // String name=((MyFile)getResource()).getName();
if((getBucket() != null) && (!getBucket().isEmpty())){ if((getBucket() != null) && (!getBucket().isEmpty())){
REMOTE_RESOURCE remoteResourceIdentifier=resource.getOperation().getRemoteResource(); REMOTE_RESOURCE remoteResourceIdentifier=resource.getOperation().getRemoteResource();

View File

@ -7,7 +7,7 @@ import java.net.UnknownHostException;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MemoryType; import org.gcube.contentmanagement.blobstorage.resource.MemoryType;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE;
import org.gcube.contentmanagement.blobstorage.service.operation.Link; import org.gcube.contentmanagement.blobstorage.service.operation.Link;
@ -49,7 +49,7 @@ public class LinkOperator extends Link {
* @see org.gcube.contentmanagement.blobstorage.service.operation.Link#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.resource.MyFile, java.lang.String) * @see org.gcube.contentmanagement.blobstorage.service.operation.Link#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.resource.MyFile, java.lang.String)
*/ */
@Override @Override
public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException { public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException {
boolean replace=true; boolean replace=true;
String source=sourcePath; String source=sourcePath;
String destination=destinationPath; String destination=destinationPath;
@ -82,7 +82,7 @@ public class LinkOperator extends Link {
String oldir=(String)fold.get("dir"); String oldir=(String)fold.get("dir");
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
logger.debug("old dir found "+oldir); logger.debug("old dir found "+oldir);
if((oldir.equalsIgnoreCase(((MyFile)resource).getRemoteDir()))){ if((oldir.equalsIgnoreCase(((RequestObject)resource).getRemoteDir()))){
ObjectId oldId=(ObjectId) fold.getId(); ObjectId oldId=(ObjectId) fold.getId();
if(!replace){ if(!replace){
return oldId.toString(); return oldId.toString();

View File

@ -4,7 +4,7 @@
package org.gcube.contentmanagement.blobstorage.transport.backend.operation; package org.gcube.contentmanagement.blobstorage.transport.backend.operation;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE;
@ -46,7 +46,7 @@ public class LockOperator extends Lock {
* @see org.gcube.contentmanagement.blobstorage.service.operation.Lock#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO) * @see org.gcube.contentmanagement.blobstorage.service.operation.Lock#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO)
*/ */
@Override @Override
public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String serverLocation) throws Exception { public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String serverLocation) throws Exception {
OperationDefinition op=resource.getOperationDefinition(); OperationDefinition op=resource.getOperationDefinition();
REMOTE_RESOURCE remoteResourceIdentifier=resource.getOperation().getRemoteResource(); REMOTE_RESOURCE remoteResourceIdentifier=resource.getOperation().getRemoteResource();
// if((resource.getLocalPath()!= null) && (!resource.getLocalPath().isEmpty())){ // if((resource.getLocalPath()!= null) && (!resource.getLocalPath().isEmpty())){

View File

@ -9,7 +9,7 @@ import java.util.List;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MemoryType; import org.gcube.contentmanagement.blobstorage.resource.MemoryType;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION;
import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine; import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine;
import org.gcube.contentmanagement.blobstorage.service.operation.Monitor; import org.gcube.contentmanagement.blobstorage.service.operation.Monitor;
@ -53,7 +53,7 @@ public class MoveDirOperator extends MoveDir {
* @see org.gcube.contentmanagement.blobstorage.service.operation.MoveDir#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.resource.MyFile, java.lang.String, java.lang.String) * @see org.gcube.contentmanagement.blobstorage.service.operation.MoveDir#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.resource.MyFile, java.lang.String, java.lang.String)
*/ */
@Override @Override
public List<String> execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, public List<String> execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath,
String destinationPath, MemoryType memoryType) throws UnknownHostException { String destinationPath, MemoryType memoryType) throws UnknownHostException {
String source=sourcePath; String source=sourcePath;
source = appendFileSeparator(source); source = appendFileSeparator(source);

View File

@ -7,7 +7,7 @@ import java.net.InetAddress;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import org.gcube.contentmanagement.blobstorage.resource.MemoryType; import org.gcube.contentmanagement.blobstorage.resource.MemoryType;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION;
import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine; import org.gcube.contentmanagement.blobstorage.service.impl.ServiceEngine;
import org.gcube.contentmanagement.blobstorage.service.operation.Monitor; import org.gcube.contentmanagement.blobstorage.service.operation.Monitor;
@ -54,12 +54,12 @@ public class MoveOperator extends Move {
*/ */
@Override @Override
// public String execute(MongoIO mongoPrimaryInstance, MemoryType memoryType) throws UnknownHostException { // public String execute(MongoIO mongoPrimaryInstance, MemoryType memoryType) throws UnknownHostException {
public String execute(MongoIOManager mongoPrimaryInstance, MemoryType memoryType, MyFile resource, String sourcePath, String destinationPath) throws UnknownHostException { public String execute(MongoIOManager mongoPrimaryInstance, MemoryType memoryType, RequestObject resource, String sourcePath, String destinationPath) throws UnknownHostException {
String source=sourcePath; String source=sourcePath;
String destination=destinationPath; String destination=destinationPath;
resource.setLocalPath(sourcePath); resource.setLocalPath(sourcePath);
String dir=((MyFile)resource).getRemoteDir(); String dir=((RequestObject)resource).getRemoteDir();
String name=((MyFile)resource).getName(); String name=((RequestObject)resource).getName();
String destinationId=null; String destinationId=null;
String sourceId=null; String sourceId=null;
logger.info("move operation on Mongo backend, parameters: source path: "+source+" destination path: "+destination); logger.info("move operation on Mongo backend, parameters: source path: "+source+" destination path: "+destination);
@ -112,7 +112,7 @@ public class MoveOperator extends Move {
// update fields // update fields
mongoPrimaryInstance.buildDirTree(mongoPrimaryInstance.getMetaDataCollection(mongoPrimaryInstance.getConnectionDB( MongoOperationManager.getPrimaryCollectionName(), true)), dir); mongoPrimaryInstance.buildDirTree(mongoPrimaryInstance.getMetaDataCollection(mongoPrimaryInstance.getConnectionDB( MongoOperationManager.getPrimaryCollectionName(), true)), dir);
sourcePathMetaCollection= new BasicDBObject(); sourcePathMetaCollection= new BasicDBObject();
sourcePathMetaCollection.put("$set", new BasicDBObject().append("dir", dir).append("filename", destinationPath).append("name", name).append("owner", ((MyFile)resource).getOwner())); sourcePathMetaCollection.put("$set", new BasicDBObject().append("dir", dir).append("filename", destinationPath).append("name", name).append("owner", ((RequestObject)resource).getOwner()));
logger.info("new object merged "); logger.info("new object merged ");
mongoPrimaryInstance.printObject(sourcePathMetaCollection); mongoPrimaryInstance.printObject(sourcePathMetaCollection);
//applies the update //applies the update
@ -175,7 +175,7 @@ public class MoveOperator extends Move {
} }
private BasicDBObject setCommonFields(BasicDBObject f, MyFile resource, OPERATION op) { private BasicDBObject setCommonFields(BasicDBObject f, RequestObject resource, OPERATION op) {
String owner=resource.getOwner(); String owner=resource.getOwner();
if(op == null){ if(op == null){
op=resource.getOperationDefinition().getOperation(); op=resource.getOperationDefinition().getOperation();

View File

@ -8,7 +8,7 @@ import java.net.UnknownHostException;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MemoryType; import org.gcube.contentmanagement.blobstorage.resource.MemoryType;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCAL_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.LOCAL_RESOURCE;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE;
@ -37,7 +37,7 @@ public class SoftCopyOperator extends SoftCopy {
Logger logger=LoggerFactory.getLogger(SoftCopyOperator.class); Logger logger=LoggerFactory.getLogger(SoftCopyOperator.class);
private MemoryType memoryType; private MemoryType memoryType;
private MongoIOManager mongoPrimaryInstance; private MongoIOManager mongoPrimaryInstance;
private MyFile resource; private RequestObject resource;
/** /**
* @param server * @param server
* @param user * @param user
@ -55,7 +55,7 @@ public class SoftCopyOperator extends SoftCopy {
} }
@Override @Override
public String execute(MongoIOManager mongoPrimaryInstance, MyFile resource, String sourcePath, String destinationPath) public String execute(MongoIOManager mongoPrimaryInstance, RequestObject resource, String sourcePath, String destinationPath)
throws UnknownHostException { throws UnknownHostException {
REMOTE_RESOURCE remoteResourceIdentifier=resource.getOperation().getRemoteResource(); REMOTE_RESOURCE remoteResourceIdentifier=resource.getOperation().getRemoteResource();
LOCAL_RESOURCE localResourceIdentifier=resource.getOperation().getLocalResource(); LOCAL_RESOURCE localResourceIdentifier=resource.getOperation().getLocalResource();
@ -70,9 +70,9 @@ public class SoftCopyOperator extends SoftCopy {
else else
destination=destinationPath; destination=destinationPath;
if(resource!=null){ if(resource!=null){
String dir=((MyFile)resource).getRemoteDir(); String dir=((RequestObject)resource).getRemoteDir();
String name=((MyFile)resource).getName(); String name=((RequestObject)resource).getName();
setMemoryType(((MyFile)resource).getGcubeMemoryType()); setMemoryType(((RequestObject)resource).getGcubeMemoryType());
} }
setMongoPrimaryInstance(mongoPrimaryInstance); setMongoPrimaryInstance(mongoPrimaryInstance);
ObjectId mapId=null; ObjectId mapId=null;
@ -153,7 +153,7 @@ public class SoftCopyOperator extends SoftCopy {
return destObject.getId().toString(); return destObject.getId().toString();
} }
private String fillGenericDestinationFields(MyFile resource, ObjectId souceId) { private String fillGenericDestinationFields(RequestObject resource, ObjectId souceId) {
String destination; String destination;
destination=resource.getRootPath()+souceId; destination=resource.getRootPath()+souceId;
resource.setName(souceId.toString()); resource.setName(souceId.toString());
@ -173,17 +173,17 @@ public class SoftCopyOperator extends SoftCopy {
*/ */
private ObjectId createNewDuplicatesMap(DBCollection metaCollectionInstance, Object resource, GridFSDBFile sourceObject, String bucket, ObjectId sourceId) throws UnknownHostException { private ObjectId createNewDuplicatesMap(DBCollection metaCollectionInstance, Object resource, GridFSDBFile sourceObject, String bucket, ObjectId sourceId) throws UnknownHostException {
ObjectId id = null; ObjectId id = null;
String dir= ((MyFile)resource).getRemoteDir(); String dir= ((RequestObject)resource).getRemoteDir();
// create new dir (is it really needed in case of map object?) // create new dir (is it really needed in case of map object?)
if((dir !=null && !dir.isEmpty()) && (bucket !=null && !bucket.isEmpty())){ if((dir !=null && !dir.isEmpty()) && (bucket !=null && !bucket.isEmpty())){
getMongoPrimaryInstance().buildDirTree(getMongoPrimaryInstance().getMetaDataCollection(null), dir); getMongoPrimaryInstance().buildDirTree(getMongoPrimaryInstance().getMetaDataCollection(null), dir);
} }
// create new map object // create new map object
id= createNewObjectMap(metaCollectionInstance, (MyFile)resource, sourceObject, sourceId); id= createNewObjectMap(metaCollectionInstance, (RequestObject)resource, sourceObject, sourceId);
return id; return id;
} }
private ObjectId createNewObjectMap(DBCollection metaCollectionInstance, MyFile resource, GridFSDBFile source, ObjectId sourceId) throws UnknownHostException { private ObjectId createNewObjectMap(DBCollection metaCollectionInstance, RequestObject resource, GridFSDBFile source, ObjectId sourceId) throws UnknownHostException {
String md5=source.getMD5(); String md5=source.getMD5();
// set type of object // set type of object
DBObject document=new BasicDBObject("type", "map"); DBObject document=new BasicDBObject("type", "map");
@ -198,7 +198,7 @@ public class SoftCopyOperator extends SoftCopy {
return id; return id;
} }
private DBObject createNewLinkObject(MyFile resource, GridFSDBFile sourceObject, String destination, DBCollection metaCollectionInstance, String md5, ObjectId mapId, ObjectId newId){ private DBObject createNewLinkObject(RequestObject resource, GridFSDBFile sourceObject, String destination, DBCollection metaCollectionInstance, String md5, ObjectId mapId, ObjectId newId){
DBObject document=new BasicDBObject("type", "file"); DBObject document=new BasicDBObject("type", "file");
document.put("filename", destination); document.put("filename", destination);
document.put("name", resource.getName()); document.put("name", resource.getName());
@ -218,8 +218,8 @@ public class SoftCopyOperator extends SoftCopy {
return fillCommonfields(document, resource, sourceObject, metaCollectionInstance, md5); return fillCommonfields(document, resource, sourceObject, metaCollectionInstance, md5);
} }
private DBObject fillCommonfields(DBObject document, MyFile resource, GridFSDBFile sourceObject, DBCollection metaCollectionInstance, String md5) { private DBObject fillCommonfields(DBObject document, RequestObject resource, GridFSDBFile sourceObject, DBCollection metaCollectionInstance, String md5) {
document.put("mimetype", ((MyFile)resource).getMimeType()); document.put("mimetype", ((RequestObject)resource).getMimeType());
document.put("creationTime", DateUtils.now("dd MM yyyy 'at' hh:mm:ss z")); document.put("creationTime", DateUtils.now("dd MM yyyy 'at' hh:mm:ss z"));
document.put("md5", md5); document.put("md5", md5);
document.put("length", sourceObject.getLength()); document.put("length", sourceObject.getLength());
@ -305,11 +305,11 @@ public class SoftCopyOperator extends SoftCopy {
this.mongoPrimaryInstance = mongoPrimaryInstance; this.mongoPrimaryInstance = mongoPrimaryInstance;
} }
public MyFile getResource() { public RequestObject getResource() {
return resource; return resource;
} }
public void setResource(MyFile resource) { public void setResource(RequestObject resource) {
this.resource = resource; this.resource = resource;
} }

View File

@ -5,7 +5,7 @@ package org.gcube.contentmanagement.blobstorage.transport.backend.operation;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.OPERATION;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE;
@ -46,7 +46,7 @@ public class UnlockOperator extends Unlock {
* @see org.gcube.contentmanagement.blobstorage.service.operation.Unlock#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO) * @see org.gcube.contentmanagement.blobstorage.service.operation.Unlock#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO)
*/ */
@Override @Override
public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String bucket, String key4unlock) throws Exception { public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String bucket, String key4unlock) throws Exception {
String id=null; String id=null;
OperationDefinition op=resource.getOperationDefinition(); OperationDefinition op=resource.getOperationDefinition();
REMOTE_RESOURCE remoteResourceIdentifier=resource.getOperation().getRemoteResource(); REMOTE_RESOURCE remoteResourceIdentifier=resource.getOperation().getRemoteResource();
@ -59,8 +59,8 @@ public class UnlockOperator extends Unlock {
// mongoPrimaryInstance.close(); // mongoPrimaryInstance.close();
// resource.setOperation(op); // resource.setOperation(op);
// } // }
String dir=((MyFile)resource).getRemoteDir(); String dir=((RequestObject)resource).getRemoteDir();
String name=((MyFile)resource).getName(); String name=((RequestObject)resource).getName();
String path=getBucket(); String path=getBucket();
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
logger.debug("DIR: "+dir+" name: "+name+" fullPath "+path+" bucket: "+bucket); logger.debug("DIR: "+dir+" name: "+name+" fullPath "+path+" bucket: "+bucket);
@ -69,7 +69,7 @@ public class UnlockOperator extends Unlock {
String oldir=(String)f.get("dir"); String oldir=(String)f.get("dir");
if(logger.isDebugEnabled()) if(logger.isDebugEnabled())
logger.debug("old dir found "+oldir); logger.debug("old dir found "+oldir);
if((oldir.equalsIgnoreCase(((MyFile)resource).getRemoteDir())) || ((MyFile)resource).getRemoteDir()==null){ if((oldir.equalsIgnoreCase(((RequestObject)resource).getRemoteDir())) || ((RequestObject)resource).getRemoteDir()==null){
String lock=(String)f.get("lock"); String lock=(String)f.get("lock");
//check if the od file is locked //check if the od file is locked
if((lock !=null) && (!lock.isEmpty())){ if((lock !=null) && (!lock.isEmpty())){
@ -77,14 +77,14 @@ public class UnlockOperator extends Unlock {
if(lck.equalsIgnoreCase(key4unlock)){ if(lck.equalsIgnoreCase(key4unlock)){
f.put("lock", null); f.put("lock", null);
f.put("timestamp", null); f.put("timestamp", null);
mongoPrimaryInstance.updateCommonFields((GridFSFile)f, (MyFile)resource, OPERATION.UNLOCK); mongoPrimaryInstance.updateCommonFields((GridFSFile)f, (RequestObject)resource, OPERATION.UNLOCK);
f.save(); f.save();
}else{ }else{
mongoPrimaryInstance.close(); mongoPrimaryInstance.close();
throw new IllegalAccessError("bad key for unlock"); throw new IllegalAccessError("bad key for unlock");
} }
}else{ }else{
mongoPrimaryInstance.updateCommonFields((GridFSFile)f, (MyFile)resource, OPERATION.UNLOCK); mongoPrimaryInstance.updateCommonFields((GridFSFile)f, (RequestObject)resource, OPERATION.UNLOCK);
f.save(); f.save();
} }
}else{ }else{

View File

@ -5,7 +5,7 @@ package org.gcube.contentmanagement.blobstorage.transport.backend.operation;
import java.io.IOException; import java.io.IOException;
import org.bson.types.ObjectId; import org.bson.types.ObjectId;
import org.gcube.contentmanagement.blobstorage.resource.MyFile; import org.gcube.contentmanagement.blobstorage.resource.RequestObject;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition;
import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE; import org.gcube.contentmanagement.blobstorage.resource.OperationDefinition.REMOTE_RESOURCE;
import org.gcube.contentmanagement.blobstorage.service.operation.Monitor; import org.gcube.contentmanagement.blobstorage.service.operation.Monitor;
@ -44,12 +44,12 @@ public class UploadOperator extends Upload {
* @see org.gcube.contentmanagement.blobstorage.service.operation.Upload#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO) * @see org.gcube.contentmanagement.blobstorage.service.operation.Upload#execute(org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO, org.gcube.contentmanagement.blobstorage.transport.backend.MongoIO)
*/ */
@Override @Override
public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, MyFile resource, String bucket, boolean replace) throws IOException { public String execute(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance, RequestObject resource, String bucket, boolean replace) throws IOException {
OperationDefinition op=((MyFile)resource).getOperationDefinition(); OperationDefinition op=((RequestObject)resource).getOperationDefinition();
REMOTE_RESOURCE remoteResourceIdentifier=((MyFile)resource).getOperation().getRemoteResource(); REMOTE_RESOURCE remoteResourceIdentifier=((RequestObject)resource).getOperation().getRemoteResource();
logger.info("MongoClient put method: "+op.toString()); logger.info("MongoClient put method: "+op.toString());
String dir=((MyFile)resource).getRemoteDir(); String dir=((RequestObject)resource).getRemoteDir();
String name=((MyFile)resource).getName(); String name=((RequestObject)resource).getName();
Object id=null; Object id=null;
ObjectId oldId=null; ObjectId oldId=null;
// id of the remote file if present // id of the remote file if present
@ -79,11 +79,11 @@ public class UploadOperator extends Upload {
} }
public String executeSafeMode(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance) throws IOException { public String executeSafeMode(MongoIOManager mongoPrimaryInstance, MongoIOManager mongoSecondaryInstance) throws IOException {
OperationDefinition op=((MyFile)resource).getOperationDefinition(); OperationDefinition op=((RequestObject)resource).getOperationDefinition();
REMOTE_RESOURCE remoteResourceIdentifier=((MyFile)resource).getOperation().getRemoteResource(); REMOTE_RESOURCE remoteResourceIdentifier=((RequestObject)resource).getOperation().getRemoteResource();
logger.info("MongoClient put method: "+op.toString()); logger.info("MongoClient put method: "+op.toString());
String dir=((MyFile)resource).getRemoteDir(); String dir=((RequestObject)resource).getRemoteDir();
String name=((MyFile)resource).getName(); String name=((RequestObject)resource).getName();
ObjectId id=null; ObjectId id=null;
ObjectId oldId=null; ObjectId oldId=null;
// id of the remote file if present // id of the remote file if present