test removed

This commit is contained in:
lucio 2024-10-29 11:55:06 +01:00
parent 244a13845b
commit 57cf44ade2
5 changed files with 0 additions and 557 deletions

View File

@ -350,11 +350,6 @@
<artifactId>minio</artifactId> <artifactId>minio</artifactId>
<version>8.3.3</version> <version>8.3.3</version>
</dependency> --> </dependency> -->
<dependency>
<groupId>org.gcube.common</groupId>
<artifactId>storagehub-client-library</artifactId>
<scope>test</scope>
</dependency>
<dependency> <dependency>
<groupId>org.testcontainers</groupId> <groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId> <artifactId>testcontainers</artifactId>

View File

@ -1,52 +0,0 @@
package org.gcube.data.access.fs.container;
import java.io.File;
import java.net.URI;
import java.net.URL;
import org.gcube.common.security.providers.SecretManagerProvider;
import org.gcube.common.security.secrets.AccessTokenSecret;
import org.gcube.common.security.secrets.UmaTokenSecret;
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.DockerComposeContainer;
import org.testcontainers.containers.output.Slf4jLogConsumer;
import org.testcontainers.containers.wait.strategy.Wait;
public class CreateUsers {
private static StorageHubClient client;
private static Logger log = LoggerFactory.getLogger(CreateUsers.class);
public static DockerComposeContainer environment =
new DockerComposeContainer(new File("src/test/resources/compose-test.yml"))
.withExposedService("postgres", 5432)
.withExposedService("storagehub", 8081).withLogConsumer("storagehub", new Slf4jLogConsumer(log)).waitingFor("storagehub_1",Wait.forHttp("/"));
public static URI storagehubUri;
public static void before() throws Exception{
String address = environment.getServiceHost("storagehub_1", 8080);
int port = environment.getServicePort("storagehub_1", 8080);
storagehubUri = new URL(String.format("http://%s:%d/storagehub", address,port)).toURI();
client = new StorageHubClient(storagehubUri);
}
public void setTokenAndScope() {
UmaTokenSecret secret = new UmaTokenSecret("eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJSSklZNEpoNF9qdDdvNmREY0NlUDFfS1l0akcxVExXVW9oMkQ2Tzk1bFNBIn0.eyJleHAiOjE2NDQyNDM4ODUsImlhdCI6MTY0NDI0MzU4NSwiYXV0aF90aW1lIjoxNjQ0MjQzNTg1LCJqdGkiOiI1NWQ4ZDc5OS1kNTIzLTQ0YmEtYTRkMC1iZjIyYzVlMTg4NzQiLCJpc3MiOiJodHRwczovL2FjY291bnRzLmRldi5kNHNjaWVuY2Uub3JnL2F1dGgvcmVhbG1zL2Q0c2NpZW5jZSIsImF1ZCI6IiUyRmdjdWJlIiwic3ViIjoiNGMxMWRlODQtZGRjOS00ZGQxLWI5N2EtZWE4MmQyZDEzOGE2IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoibmV4dC5kNHNjaWVuY2Uub3JnIiwic2Vzc2lvbl9zdGF0ZSI6ImZkZTA3MGE2LTVkOTUtNDc3Ni1hMTFiLTBhZTI1MzQ5NGQyMyIsImFjciI6IjEiLCJhbGxvd2VkLW9yaWdpbnMiOlsiLyoiXSwicmVzb3VyY2VfYWNjZXNzIjp7IiUyRmdjdWJlIjp7InJvbGVzIjpbIkluZnJhc3RydWN0dXJlLU1hbmFnZXIiLCJNZW1iZXIiXX19LCJhdXRob3JpemF0aW9uIjp7InBlcm1pc3Npb25zIjpbeyJyc2lkIjoiMTU5ZDcyMDQtNjlmYS00ZmY0LTlhOTQtMzVlMWUyMzA5MDQyIiwicnNuYW1lIjoiRGVmYXVsdCBSZXNvdXJjZSJ9XX0sInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiTHVjaW8gTGVsaWkiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJsdWNpby5sZWxpaSIsImdpdmVuX25hbWUiOiJMdWNpbyIsImZhbWlseV9uYW1lIjoiTGVsaWkiLCJlbWFpbCI6Imx1Y2lvLmxlbGlpQGlzdGkuY25yLml0In0.SGuGXnY63WJ45tdypywaopO--FCxY6ZWAX74MGVw_zdNMMQI5zgtGfhZQewFWQ6HhVINDStXqvdSDluhF9JwFXCUGvxB2BipfKQYsAQnm3I4K3kgMl26kuQIL5Im-apw2XWvImTgLshX1AzpyqzFR1Jpf_p65GCMpcHLEwo_nTGLkrZNtfRdtqakZ8S8lowGaV2J2mNf4AHhtARSLJF3GqwynF5pPUXR2iOMUrjw_FLnIuPMfAjk_jHMeYKIxXNBLsoEpELju3pr2gEkv1ZRH9bZkyg7_3hW4mGzxq_Ea9w1FBVJOlkp6vypuISLNyJZcVOnBa4Dg1KRxxlp3aZ6vA");
SecretManagerProvider.set(secret);
}
@Test
public void createUser() throws Exception{
client.createUserAccount("lucio.lelii");
client.getWSRoot();
}
}

View File

@ -1,365 +0,0 @@
package org.gcube.data.access.fs.external;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import org.gcube.common.security.providers.SecretManagerProvider;
import org.gcube.common.security.secrets.CredentialSecret;
import org.gcube.common.storagehub.client.dsl.FolderContainer;
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
import org.gcube.common.storagehub.model.acls.AccessType;
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
import org.gcube.common.storagehub.model.items.SharedFolder;
import org.gcube.common.storagehub.model.types.SHUBUser;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CreateUsers {
private static StorageHubClient client;
private static Logger log = LoggerFactory.getLogger(CreateUsers.class);
private String user1 = "pippo.test";
private String user2 = "lucio.lelii";
private String vreWA = "vre-write-all";
private String vreRO = "vre-read-only";
private String vreWO = "vre-write-owner";
private static final int TEST_USERS_NUMBER = 5000;
@BeforeClass
public static void before() throws Exception {
String address = "localhost";
int port = 8081;
URI storagehubUri = new URL(String.format("http://%s:%d/storagehub", address, port)).toURI();
client = new StorageHubClient(storagehubUri);
}
@Before
public void setSecret() {
CredentialSecret secret = new CredentialSecret("sg4-test-client", "a156a7db-3b32-4cd5-b27b-2488e0e01698",
"/gcube");
SecretManagerProvider.set(secret);
}
@Test
public void initialiseEnvironment() throws Exception {
this.createUser(user1);
this.createAllVREsAndAddUser1AsAdmin();
client.impersonate(user1);
this.createUser(user2);
this.addUser2ToAllVres();
client.impersonate(user1);
createRandomFolderAndFileForCurrentUser();
createRandomFolderAndFileForCurrentUser();
createRandomFolderAndFileForCurrentUser();
client.impersonate(user2);
createRandomFolderAndFileForCurrentUser();
createRandomFolderAndFileForCurrentUser();
createRandomFolderAndFileForCurrentUser();
}
@Test
public void getUsers() throws Exception {
client.getUsers().forEach(u -> System.out.println(u.getUserName()));
}
@Test
public void getItemCountPerUsers() throws Exception {
for (SHUBUser user : client.getUsers()) {
client.impersonate(user.getUserName());
int size = client.getWSRoot().list().getItems().size();
System.out.println(String.format("%s has %d items", user.getUserName(), size));
}
}
@Test
public void removeUser2FromVre() throws Exception {
client.getVreFolderManager(vreRO).removeUser(user2);
}
@Test
public void createUri() throws Exception{
client.impersonate(user2);
client.getWSRoot().addUrl(new URL("https://www.google.it"), "google", "");
}
@Test
public void createRandomFileAndFolderOnEveryUser() throws Exception {
for (SHUBUser user : client.getUsers()) {
client.impersonate(user.getUserName());
String rootId = this.getUserRootId();
for (int i = 0; i<=500; i++)
this.createRandomFolderForCurrentUser(rootId);
}
}
@Test
public void createFileAndFolderUser2() throws Exception {
client.impersonate(user2);
for (int i = 0; i<=100; i++)
createRandomFolderAndFileForCurrentUser();
}
@Test
public void uploadFileUser2() throws Exception {
client.impersonate(user2);
String rootId = this.getUserRootId();
this.uploadFileWithRandomNameForCurrentUser(rootId);
}
@Test
public void createFileAndFolderFarAllUsers() throws Exception {
client.impersonate(user2);
for (int i = 0; i<=100; i++)
createRandomFolderAndFileForCurrentUser();
}
public void createRandomFolderAndFileForCurrentUser() throws Exception{
String rootId = this.getUserRootId();
this.uploadFileWithRandomNameForCurrentUser(rootId);
FolderContainer fc = this.createRandomFolderForCurrentUser(rootId);
this.uploadFileWithRandomNameForCurrentUser(fc.getId());
}
// USED TO CREATE TEST USERS
final String lexicon = "ABCDEFGHIJKLMNOPQRSTUVWXYZ12345674890";
final java.util.Random rand = new java.util.Random();
// consider using a Map<String,Boolean> to say whether the identifier is being
// used or not
final Set<String> identifiers = new HashSet<String>();
public String randomIdentifier() {
StringBuilder builder = new StringBuilder();
while (builder.toString().length() == 0) {
int length = rand.nextInt(5) + 5;
for (int i = 0; i < length; i++) {
builder.append(lexicon.charAt(rand.nextInt(lexicon.length())));
}
if (identifiers.contains(builder.toString())) {
builder = new StringBuilder();
}
}
return builder.toString();
}
// END
@Test
public void createTestUsers() throws Exception {
for (int i = 0; i < TEST_USERS_NUMBER; i++)
client.createUserAccount(String.format("%s.%s", randomIdentifier().toLowerCase(), randomIdentifier().toLowerCase() ));
}
@Test
public void createAccountforManging() throws Exception {
client.createUserAccount("service-account-sg4-test-client");
client.getVreFolderManager(vreWA).addUser("service-account-sg4-test-client");
client.getVreFolderManager(vreRO).addUser("service-account-sg4-test-client");
client.getVreFolderManager(vreWO).addUser("service-account-sg4-test-client");
}
@Test
public void getUserRootTest() throws Exception {
client.impersonate("lucio.lelii");
client.getWSRoot().getId();
}
public String getUserRootId() throws Exception {
return client.getWSRoot().getId();
}
@Test
public void getBearerToken() {
System.out.println(SecretManagerProvider.get().getHTTPAuthorizationHeaders());
}
@Test
public void getFolderACLsOnrROVRE() throws Exception {
client.impersonate(user1);
FolderContainer vre = (FolderContainer) client.getVREFolders().getContainers().stream()
.filter(f -> f.get().getTitle().equals(vreWA)).findFirst().get();
FolderContainer folder = (FolderContainer) vre.list().getContainers().stream().findFirst().get();
System.out.println(folder.get().getTitle() + " " + folder.getAcls());
}
public void createUser(String user) throws Exception {
client.createUserAccount(user);
}
public void removeUserFromGroup(String user) throws Exception {
client.getVreFolderManager(vreWA).removeAdmin(user);
client.getVreFolderManager(vreWA).removeUser(user);
}
public void createVRE(String vre, AccessType accesstype, String owner) throws Exception {
client.getVreFolderManager(vre).createVRE(accesstype, owner, true);
}
public void setAdmin(String vre, String user) throws Exception {
client.getVreFolderManager(vre).setAdmin(user);
}
@Test
public void createAllVREsAndAddUser1AsAdmin() throws Exception {
createVRE(vreWA, AccessType.WRITE_ALL, user1 );
setAdmin(vreWA, user1);
createVRE(vreRO, AccessType.READ_ONLY, user1 );
setAdmin(vreWA, user1);
createVRE(vreWO, AccessType.WRITE_OWNER, user1 );
setAdmin(vreWA, user1);
}
@Test
public void addUser2ToAllVres() throws Exception {
addUserToVre(vreRO, user2);
addUserToVre(vreWA, user2);
addUserToVre(vreWO, user2);
}
public void createFolderByAdmin(String vre) throws Exception {
retrieveVREbyName(vre).newFolder("test created by admin", "");
}
public void addUserToVre(String vre, String user) throws Exception {
client.getVreFolderManager(vre).addUser(user);
}
@Test
public void printVREFoldersAdmin() throws StorageHubException {
System.out.println("launching .....");
List<FolderContainer> vreFolders = client.getVREFolders().getContainers().stream()
.map(c -> ((FolderContainer) c)).collect(Collectors.toList());
for (FolderContainer fc : vreFolders) {
System.out.println(fc.get().getTitle());
System.out.println(fc.getAcls());
System.out.println(client.getVreFolderManager(fc.get().getTitle()).getAdmins());
}
}
@Test
public void getVREs() throws Exception {
client.impersonate(user1);
client.getVREFolders().getItems().stream().map(i -> ((SharedFolder) i))
.forEach(s -> System.out.println(s.getDisplayName()));
}
@Test
public void getWsRoot() throws Exception {
client.impersonate(user1);
client.getWSRoot().list().getItems().forEach(i -> System.out.println(i.getId() + " " + i.getTitle()));
}
@Test
public void download() throws Exception {
client.impersonate(user1);
try (InputStream is = client.open("5b5236d2-ec88-49f2-a2c5-04ecf8284191").asFile().download().getStream()) {
String text = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8)).lines()
.collect(Collectors.joining("\n"));
System.out.println(text);
}
}
@Test
public void uploadImageTest1() {
client.impersonate(user1);
try (InputStream is = CreateUsers.class.getResourceAsStream("/test1.jpg")) {
client.getWSRoot().uploadFile(is, "test1.jpg", "a test");
} catch (Exception e) {
e.printStackTrace();
}
}
public void uploadFileWithRandomNameForCurrentUser(String folderId) throws URISyntaxException {
long size = new File(CreateUsers.class.getResource("/pdf-test.pdf").toURI()).length();
try (InputStream is = CreateUsers.class.getResourceAsStream("/pdf-test.pdf")) {
client.open(folderId).asFolder().uploadFile(is, randomIdentifier() + ".pdf", "a test", size);
} catch (Exception e) {
e.printStackTrace();
}
}
public FolderContainer createRandomFolderForCurrentUser(String folderId) {
try {
return client.open(folderId).asFolder().newFolder(randomIdentifier(), "a test");
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
private FolderContainer retrieveVREbyName(String name) throws StorageHubException {
List<FolderContainer> vreFolders = client.getVREFolders().getContainers().stream()
.map(c -> ((FolderContainer) c)).collect(Collectors.toList());
return vreFolders.stream().filter(c -> ((SharedFolder) c.get()).getDisplayName().equals(name)).findFirst()
.get();
}
@Test
public void uploadFileToVREWriteAll() throws StorageHubException {
client.impersonate(user2);
try (InputStream is = CreateUsers.class.getResourceAsStream("/test1.jpg")) {
retrieveVREbyName(vreWA).uploadFile(is, "test1.jpg", "a test");
} catch (IOException e) {
e.printStackTrace();
}
}
@Test(expected = StorageHubException.class)
public void uploadFileToVREReadOnly() throws StorageHubException {
client.impersonate(user2);
try (InputStream is = CreateUsers.class.getResourceAsStream("/test1.jpg")) {
retrieveVREbyName(vreRO).uploadFile(is, "test1.jpg", "a test");
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void uploadFileToVREReadOnlyAdmin() throws StorageHubException {
client.impersonate(user1);
try (InputStream is = CreateUsers.class.getResourceAsStream("/test1.jpg")) {
retrieveVREbyName(vreRO).uploadFile(is, "test1.jpg", "a test");
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void uploadFileToVREWriteOwner() throws StorageHubException {
client.impersonate(user2);
try (InputStream is = CreateUsers.class.getResourceAsStream("/test1.jpg")) {
retrieveVREbyName(vreWO).uploadFile(is, "test1.jpg", "a test");
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void removeUser() throws Exception {
client.deleteUserAccount(user1);
}
}

View File

@ -1,112 +0,0 @@
package org.gcube.data.access.storages.mock;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Map;
import java.util.UUID;
import org.apache.commons.io.IOUtils;
import org.gcube.common.storagehub.model.exceptions.StorageIdNotFoundException;
import org.gcube.common.storagehub.model.items.nodes.Content;
import org.gcube.common.storagehub.model.items.nodes.PayloadBackend;
import org.gcube.common.storagehub.model.storages.MetaInfo;
import org.gcube.common.storagehub.model.storages.StorageBackend;
public class FSStorage extends StorageBackend {
public FSStorage(PayloadBackend payloadConfiguration) {
super(payloadConfiguration);
}
@Override
public MetaInfo onCopy(Content content, String newParentPath, String newName) {
// TODO Auto-generated method stub
return null;
}
@Override
public MetaInfo onMove(Content content, String newParentPath) {
// TODO Auto-generated method stub
return null;
}
@Override
public void delete(String id) {
// TODO Auto-generated method stub
}
@Override
public MetaInfo upload(InputStream stream, String relativePath, String name, String user) {
return this.upload(stream, relativePath, name, -1l, user);
}
@Override
public MetaInfo upload(InputStream stream, String relativePath, String name, Long size, String user) {
try {
InputStream is = new BufferedInputStream(stream);
String id = UUID.randomUUID().toString();
File targetFile = new File("/tmp/" + id);
targetFile.createNewFile();
OutputStream outStream = new FileOutputStream(targetFile);
byte[] buffer = new byte[1024 * 64];
int bytesRead;
while ((bytesRead = is.read(buffer, 0, 1024 * 64)) != -1) {
outStream.write(buffer, 0, bytesRead);
}
IOUtils.closeQuietly(outStream);
return new MetaInfo(targetFile.length(), id, user, getPayloadConfiguration());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
public InputStream download(Content item) throws StorageIdNotFoundException {
return this.download(item.getStorageId());
}
@Override
public InputStream download(String id) throws StorageIdNotFoundException {
try {
return new FileInputStream(new File("/tmp/" + id));
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}
@Override
public Map<String, String> getFileMetadata(String id) {
// TODO Auto-generated method stub
return null;
}
@Override
public MetaInfo upload(InputStream stream, String relativePath, String name, String storageId, Long size,
String user) {
// TODO Auto-generated method stub
return null;
}
@Override
public String getTotalSizeStored() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getTotalItemsCount() {
// TODO Auto-generated method stub
return null;
}
}

View File

@ -1,23 +0,0 @@
package org.gcube.data.access.storages.mock;
import jakarta.inject.Singleton;
import org.gcube.common.storagehub.model.exceptions.InvalidCallParameters;
import org.gcube.common.storagehub.model.items.nodes.PayloadBackend;
import org.gcube.common.storagehub.model.storages.StorageBackend;
import org.gcube.common.storagehub.model.storages.StorageBackendFactory;
@Singleton
public class FSStorageFactory implements StorageBackendFactory {
@Override
public String getName() {
return "local-filesystem";
}
@Override
public StorageBackend create(PayloadBackend payloadConfiguration) throws InvalidCallParameters {
return new FSStorage(payloadConfiguration);
}
}