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

85 lines
3.1 KiB
Java
Raw Normal View History

2022-10-24 16:15:01 +02:00
package org.gcube.application.cms.usecases.legacyConcessioni;
2021-09-20 16:47:35 +02:00
import lombok.extern.slf4j.Slf4j;
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.common.model.legacy.Concessione;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
2021-09-20 16:47:35 +02:00
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
2021-09-20 16:47:35 +02:00
public class ClearConcessioni {
public static void main(String[] args) throws Exception {
2022-11-21 20:51:15 +01:00
// String context="/gcube/devsec/devVRE";
2021-11-12 16:41:25 +01:00
2022-11-21 20:51:15 +01:00
String context="/pred4s/preprod/preVRE";
2021-11-12 16:41:25 +01:00
TokenSetter.set(context);
2021-09-20 16:47:35 +02:00
ConcessioniManagerI manager=statefulMongoConcessioni().build();
ArrayList<String> toSkipIds=new ArrayList<>();
// toSkipIds.add("6102c8dd02ad3d05b5f81df4");
// toSkipIds.add("610415af02ad3d05b5f81ee3");
AtomicLong count=new AtomicLong(0);
AtomicLong nullCount=new AtomicLong(0);
AtomicLong errCount=new AtomicLong(0);
AtomicLong found=new AtomicLong(0);
2021-09-20 16:47:35 +02:00
Iterator<Concessione> it=null;
2022-05-13 18:42:11 +02:00
it=manager.getList();
// it=manager.search("{\"nome\" : {$regex : \"Mock .*\"}, \"creationTime\" :{$gt : \"2021-10-18T13:58:53.326\"}}");
2021-11-12 16:41:25 +01:00
ExecutorService service = Executors.newFixedThreadPool(3);
2021-09-20 16:47:35 +02:00
it.forEachRemaining((Concessione c)->{
found.incrementAndGet();
service.submit(new Runnable() {
@Override
public void run() {
try{
2021-11-12 16:41:25 +01:00
TokenSetter.set(context);
String currentId=c.getMongo_id();
if(currentId==null) {
System.out.println("ID IS NULL " + c);
nullCount.incrementAndGet();
}
else
if(toSkipIds.contains(currentId))
System.out.println("Skipping "+currentId);
else {
System.out.println("Deleting " + c.getMongo_id());
manager.deleteById(c.getMongo_id(),true);
}
}catch(Throwable throwable){
System.err.println(throwable);
errCount.incrementAndGet();
2021-10-12 15:43:35 +02:00
try {Thread.sleep(1000);} catch (InterruptedException i) {}
}finally {
count.incrementAndGet();
2021-09-20 16:47:35 +02:00
}
}
});
2021-09-20 16:47:35 +02:00
});
2021-11-12 16:41:25 +01:00
while (!service.awaitTermination(1, TimeUnit.MINUTES)) {
log.info("Waiting .. completed {}, out of {} ",count.get(),found.get());
if(found.get()==count.get()) service.shutdown();
}
2021-09-20 16:47:35 +02:00
System.out.println("Done "+count.get()+" [null : "+nullCount.get()+", err : "+errCount.get()+"]");
}
}