diff --git a/src/main/java/org/gcube/common/storagehub/client/dsl/FolderContainer.java b/src/main/java/org/gcube/common/storagehub/client/dsl/FolderContainer.java index 97ef4d5..826ed94 100644 --- a/src/main/java/org/gcube/common/storagehub/client/dsl/FolderContainer.java +++ b/src/main/java/org/gcube/common/storagehub/client/dsl/FolderContainer.java @@ -177,6 +177,18 @@ public class FolderContainer extends ItemContainer{ return new ListResolver((onlyType, includeHidden, excludes) -> itemclient.findChildrenByNamePattern(itemId, namePattern , excludes), itemclient); } + /** + * + * returns the items that matches the name pattern searching recursively on all subfolders + * + * @return {@ListResolver} + * @throws {@InvalidItemException} + * @throws {@UserNotAuthorizedException} if user is not authorized to read this folder + */ + public ListResolver search(String nameTomatch) throws StorageHubException { + return new ListResolver((onlyType, includeHidden, excludes) -> itemclient.search(itemId, onlyType, includeHidden, nameTomatch, excludes), itemclient); + } + /** * * shares this Folder with a list of users setting the same {@AccessType} for everyone in the list. diff --git a/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultItemManager.java b/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultItemManager.java index f7bd712..e859602 100644 --- a/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultItemManager.java +++ b/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultItemManager.java @@ -64,7 +64,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } Response resp = response.getSource(); @@ -110,7 +110,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } ItemList items = response.getSource().readEntity(ItemList.class); @@ -127,7 +127,7 @@ public class DefaultItemManager implements ItemManagerClient { throw new RuntimeException(e1); } } - + @Override public List getChildren(String id, int start, int limit, boolean showHidden, Class onlyOfType, String... excludeNodes) throws StorageHubException{ @@ -156,7 +156,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } ItemList items = response.getSource().readEntity(ItemList.class); @@ -197,6 +197,46 @@ public class DefaultItemManager implements ItemManagerClient { return getChildren(id, null, showHidden, excludeNodes); } + public List search(String id, Class onlyOfType, boolean showHidden, String nameToMatch, String ... excludeNodes) throws StorageHubException{ + Call call = new Call() { + @Override + public ItemList call(GXWebTargetAdapterRequest manager) throws StorageHubException, Exception { + Objects.requireNonNull(id, "id cannot be null"); + GXWebTargetAdapterRequest myManager = manager.path(id).path("search"); + Map params = new HashMap<>(); + if (excludeNodes !=null && excludeNodes.length>0) + params.put("exclude",excludeNodes); + + if (onlyOfType!=null) + params.put("onlyType", new Object[] {resolveNodeType(onlyOfType)}); + params.put("showHidden", new Object[] {showHidden}); + params.put("name", new Object[] {nameToMatch}); + + GXInboundResponse response = myManager.queryParams(params).get(); + + if (response.isErrorResponse()) { + if (response.hasException()) + throw response.getException(); + else + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); + } + + ItemList items = response.getSource().readEntity(ItemList.class); + + return items; + } + }; + try { + ItemList result = delegate.make(call); + return result.getItemlist(); + }catch(StorageHubException e) { + throw e; + }catch(Exception e1) { + throw new RuntimeException(e1); + } + } + + @Override @Deprecated public Integer childrenCount(String id , Class onlyOfType) throws StorageHubException{ @@ -222,7 +262,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(Integer.class); @@ -274,7 +314,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } Response resp = response.getSource(); @@ -308,7 +348,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } Response resp = response.getSource(); @@ -341,7 +381,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } VersionList versions = response.getSource().readEntity(VersionList.class); @@ -377,7 +417,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError("error response from the service with code: "+response.getHTTPCode()); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } ItemWrapper item = response.getSource().readEntity(ItemWrapper.class); @@ -409,7 +449,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } ItemWrapper item = response.getSource().readEntity(ItemWrapper.class); @@ -442,7 +482,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } URL item = response.getSource().readEntity(URL.class); @@ -477,7 +517,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } URL item = response.getSource().readEntity(URL.class); @@ -516,7 +556,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } ItemList items = response.getSource().readEntity(ItemList.class); @@ -563,7 +603,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) { throw response.getException(); }else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); @@ -600,7 +640,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); @@ -660,7 +700,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); @@ -701,7 +741,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); @@ -736,7 +776,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); @@ -774,7 +814,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); @@ -809,7 +849,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); @@ -848,7 +888,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError("error response returned from server "+response.getHTTPCode()); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } @@ -883,7 +923,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(ItemList.class); @@ -913,7 +953,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(ACLList.class); @@ -946,7 +986,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } @@ -987,7 +1027,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); @@ -1024,7 +1064,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); @@ -1064,7 +1104,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); @@ -1102,7 +1142,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); @@ -1140,7 +1180,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); @@ -1176,7 +1216,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); @@ -1211,7 +1251,7 @@ public class DefaultItemManager implements ItemManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); diff --git a/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultWorkspaceManager.java b/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultWorkspaceManager.java index 4698814..ee97e5a 100644 --- a/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultWorkspaceManager.java +++ b/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultWorkspaceManager.java @@ -49,7 +49,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(ItemWrapper.class); @@ -104,7 +104,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(ItemList.class); @@ -138,7 +138,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } @@ -171,7 +171,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(ItemWrapper.class); @@ -198,7 +198,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } @@ -231,7 +231,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(ItemWrapper.class); @@ -258,7 +258,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return null; @@ -284,7 +284,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); @@ -336,7 +336,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(ItemList.class); @@ -363,7 +363,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); @@ -390,7 +390,7 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient { if (response.hasException()) throw response.getException(); else - throw new BackendGenericError(); + throw new BackendGenericError("HTTP error code is "+response.getHTTPCode()); } return response.getSource().readEntity(String.class); diff --git a/src/main/java/org/gcube/common/storagehub/client/proxies/ItemManagerClient.java b/src/main/java/org/gcube/common/storagehub/client/proxies/ItemManagerClient.java index a27dcda..ee3a16d 100644 --- a/src/main/java/org/gcube/common/storagehub/client/proxies/ItemManagerClient.java +++ b/src/main/java/org/gcube/common/storagehub/client/proxies/ItemManagerClient.java @@ -28,6 +28,8 @@ public interface ItemManagerClient { List getAnchestors(String id, String ... excludeNodes) throws StorageHubException; + List search(String id, Class onlyOfType, boolean includeHidden, String nameToMatch, String ... excludeNodes) throws StorageHubException; + Integer childrenCount(String id,boolean includeHidden) throws StorageHubException ; Integer childrenCount(String id, boolean includeHidden, Class onlyOfType) throws StorageHubException; diff --git a/src/test/java/org/gcube/data/access/fs/Items.java b/src/test/java/org/gcube/data/access/fs/Items.java index 3cc3214..f0a2b82 100644 --- a/src/test/java/org/gcube/data/access/fs/Items.java +++ b/src/test/java/org/gcube/data/access/fs/Items.java @@ -7,7 +7,6 @@ import java.io.FileOutputStream; import java.io.InputStream; import java.nio.file.Files; import java.util.Arrays; -import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map.Entry; @@ -19,7 +18,6 @@ import org.gcube.common.storagehub.client.dsl.FileContainer; import org.gcube.common.storagehub.client.dsl.FolderContainer; import org.gcube.common.storagehub.client.dsl.ItemContainer; import org.gcube.common.storagehub.client.dsl.StorageHubClient; -import org.gcube.common.storagehub.client.dsl.VREFolderManager; import org.gcube.common.storagehub.model.Metadata; import org.gcube.common.storagehub.model.acls.AccessType; import org.gcube.common.storagehub.model.exceptions.StorageHubException; @@ -27,102 +25,36 @@ import org.gcube.common.storagehub.model.items.Item; import org.junit.BeforeClass; import org.junit.Test; -import ch.qos.logback.classic.pattern.Util; - public class Items { @BeforeClass public static void setUp(){ + SecurityTokenProvider.instance.set("b7c80297-e4ed-42ab-ab42-fdc0b8b0eabf-98187548"); + ScopeProvider.instance.set("/gcube"); } - - @Test - public void allRound() throws StorageHubException { - StorageHubClient shc = new StorageHubClient(); - VREFolderManager vreFolderMaanger = shc.getVreFolderManager(org.gcube.common.storagehub.client.dsl.Util.getVREGroupFromContext("/gcube/devsec/devVreLucio")); - vreFolderMaanger.createVRE(AccessType.READ_ONLY, "lucio.lelii"); - /*vreFolderMaanger.addUser("lucio.lelii"); - vreFolderMaanger.addUser("massimiliano.assante"); - vreFolderMaanger.setAdmin("massimiliano.assante");*/ - vreFolderMaanger.removeVRE(); - - - } @Test - public void creteAndREmoveUser() throws StorageHubException { + public void search() throws Exception{ StorageHubClient shc = new StorageHubClient(); - shc.getVreFolderManager("gcube-devsec-devVRE").addUser("gCat"); - - - } - - @Test - public void removeUserFromVRE() throws StorageHubException { - StorageHubClient shc = new StorageHubClient(); - shc.getVreFolderManager().removeUser("andrea.rossi"); - } - - @Test - public void addUserFromVRE() throws StorageHubException { - StorageHubClient shc = new StorageHubClient(); - shc.getVreFolderManager().addUser("andrea.rossi"); - } - - - @Test - public void getAdminsFromVRE() throws StorageHubException { - StorageHubClient shc = new StorageHubClient(); - for (String user: shc.getVreFolderManager().getAdmins()) { - System.out.println(user); - } - } - @Test - public void removeAdminsFromVRE() throws StorageHubException { - StorageHubClient shc = new StorageHubClient(); - shc.getVreFolderManager().removeAdmin("vfloros"); - - - } - - @Test - public void addAdminToVRE() throws StorageHubException { - StorageHubClient shc = new StorageHubClient(); - shc.getVreFolderManager().setAdmin("vfloros"); - } - - @Test - public void emptyStatisticaManagerTrash() { - StorageHubClient shc = new StorageHubClient(); - System.out.println(shc.openTrash().get().getId()); + List s = shc.getWSRoot().search("pippo").getItems(); + s.forEach(i -> System.out.println(i.getPath()+" "+i.getName())); } @Test public void forceDelete() throws Exception{ StorageHubClient shc = new StorageHubClient(); - /* - shc.getWSRoot().newFolder("lucioFolderTestMeta","desclucio" ); - HashMap prop = new HashMap<>(); - prop.put("folderProp", "test2"); - prop.put("folderProp2", "test2"); - */ - FolderContainer fc = shc.open("bfb0548b-92d0-47d4-a973-1253dc4694d1").asFolder(); - - List> children = fc.list().withMetadata().getContainers(); - - for (ItemContainer cont : children) { - Metadata m = cont.get().getMetadata(); - - for (Object v : m.getMap().values()) - System.out.println(v.toString()); - } + long count = shc.getTotalItemCount(); + long volume = shc.getTotalVolume(); + + System.out.println("items are "+count+" volume "+volume); }