gcube-cms-suite/use-cases/src/test/java/org/gcube/application/cms/usecases/ExportMongoConcessioni.java

102 lines
3.7 KiB
Java
Raw Normal View History

2021-09-22 18:06:07 +02:00
package org.gcube.application.cms.usecases;
2021-09-20 16:47:35 +02:00
import lombok.extern.slf4j.Slf4j;
2022-03-10 18:15:10 +01:00
import org.bson.Document;
2021-09-21 17:45:18 +02:00
import org.gcube.application.cms.tests.TokenSetter;
2021-09-20 16:47:35 +02:00
import org.gcube.application.geoportal.client.legacy.ConcessioniManagerI;
import org.gcube.application.geoportal.client.utils.Serialization;
2021-09-20 18:11:51 +02:00
2021-09-20 16:47:35 +02:00
import org.gcube.application.geoportal.common.model.legacy.*;
import org.gcube.application.geoportal.common.model.legacy.report.ValidationReport;
2022-01-27 15:02:53 +01:00
import org.gcube.application.geoportal.common.model.rest.TempFile;
2021-09-20 16:47:35 +02:00
import org.gcube.application.geoportal.common.utils.Files;
import org.gcube.application.geoportal.common.utils.StorageUtils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicLong;
2022-03-07 13:59:24 +01:00
import static org.gcube.application.geoportal.client.plugins.GeoportalAbstractPlugin.statefulMongoConcessioni;
2021-09-20 16:47:35 +02:00
@Slf4j
/*
Pushes concessioni JSON from folder to geoportal-service
*/
2022-03-10 18:15:10 +01:00
public class ExportMongoConcessioni {
2021-09-20 16:47:35 +02:00
public static void main(String[] args) {
2021-11-12 16:41:25 +01:00
File dir= new File("/Users/fabioisti/git/gcube-cms-suite/import1632326294149");
String targetContext="/d4science.research-infrastructures.eu/D4OS/GeoNA-Prototype";
// String targetContext= "/gcube/devsec/devVRE";
2021-09-20 16:47:35 +02:00
ArrayList<Concessione> found=new ArrayList<>();
for(File elementFolder:dir.listFiles())
for(File jsonFile:elementFolder.listFiles((dir1, name) -> {return name.endsWith(".json");}))
try {
log.info("Reading "+jsonFile.getAbsolutePath());
String json= Files.readFileAsString(jsonFile.getAbsolutePath(), Charset.defaultCharset());
found.add(Serialization.read(json,Concessione.class));
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Loaded "+found.size()+" elements from "+dir.getAbsolutePath());
TokenSetter.set(targetContext);
ConcessioniManagerI targetManager = statefulMongoConcessioni().build();
StorageUtils storage = new StorageUtils();
AtomicLong count = new AtomicLong(0);
AtomicLong warnCount = new AtomicLong(0);
AtomicLong errCount = new AtomicLong(0);
for (Concessione c : found) {
try {
log.info("Using {} {}",c.getNome(),c.getMongo_id());
2022-03-10 18:15:10 +01:00
2022-03-11 17:01:21 +01:00
// Objec
//
// if (!result.getReport().getStatus().equals(ValidationReport.ValidationStatus.PASSED))
// warnCount.incrementAndGet();
2021-09-20 16:47:35 +02:00
} catch (Throwable throwable) {
System.err.println(throwable);
errCount.incrementAndGet();
} finally {
count.incrementAndGet();
}
}
System.out.println("Done "+count.get()+" [warn : "+warnCount.get()+", err : "+errCount.get()+"]");
}
private static TempFile[] fromPath(String path, StorageUtils storage) throws FileNotFoundException {
Path baseDir= Paths.get(path);
ArrayList<TempFile> toReturn=new ArrayList<>();
for(File f : baseDir.toFile().listFiles()){
toReturn.add(storage.putOntoStorage(new FileInputStream(f),f.getName()));
}
log.info("Loaded {} files from {} ",toReturn.size(),path);
return toReturn.toArray(new TempFile[toReturn.size()]);
}
2022-03-10 18:15:10 +01:00
private static Document getCleanDocument(Concessione c){
Document toReturn = new Document();
2022-03-11 17:01:21 +01:00
throw new RuntimeException("Implement this");
2022-03-10 18:15:10 +01:00
}
2021-09-20 16:47:35 +02:00
}