From e81ec8230abed3de2885ae6f0860daed6e3db323 Mon Sep 17 00:00:00 2001 From: Nunzio Andrea Galante Date: Mon, 30 Oct 2017 21:38:11 +0000 Subject: [PATCH] git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-analysis/dataminer-pool-manager@158031 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../clients/DMPMClientConfigurator.java | 462 +++++++++++++ .../poolmanager/clients/ISClient.java | 38 +- .../poolmanager/service/StagingJob.java | 2 +- .../poolmanager/util/CheckMethod.java | 4 +- .../poolmanager/util/SVNUpdater.java | 10 +- .../util/ServiceConfiguration.java | 614 +++++++++--------- .../dataminerpoolmanager/SVNTests.java | 38 +- 7 files changed, 816 insertions(+), 352 deletions(-) create mode 100644 src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/clients/DMPMClientConfigurator.java diff --git a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/clients/DMPMClientConfigurator.java b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/clients/DMPMClientConfigurator.java new file mode 100644 index 0000000..a674499 --- /dev/null +++ b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/clients/DMPMClientConfigurator.java @@ -0,0 +1,462 @@ +package org.gcube.dataanalysis.dataminer.poolmanager.clients; + +import static org.gcube.resources.discovery.icclient.ICFactory.client; +import static org.gcube.resources.discovery.icclient.ICFactory.clientFor; +import static org.gcube.resources.discovery.icclient.ICFactory.queryFor; + +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.PrintStream; +import java.io.StringWriter; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Scanner; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; +import java.util.Vector; + +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.common.resources.gcore.GenericResource; +import org.gcube.common.resources.gcore.Resources; +import org.gcube.common.resources.gcore.ServiceEndpoint; +import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.dataanalysis.dataminer.poolmanager.datamodel.Algorithm; +import org.gcube.dataanalysis.dataminer.poolmanager.datamodel.Cluster; +import org.gcube.dataanalysis.dataminer.poolmanager.datamodel.Dependency; +import org.gcube.dataanalysis.dataminer.poolmanager.datamodel.Domain; +import org.gcube.dataanalysis.dataminer.poolmanager.datamodel.Host; +import org.gcube.dataanalysis.dataminer.poolmanager.datamodel.comparator.HostComparator; +import org.gcube.dataanalysis.dataminer.poolmanager.service.DataminerPoolManager; +import org.gcube.informationsystem.publisher.AdvancedScopedPublisher; +import org.gcube.informationsystem.publisher.RegistryPublisherFactory; +import org.gcube.informationsystem.publisher.ScopedPublisher; +import org.gcube.informationsystem.publisher.exception.RegistryNotFoundException; +import org.gcube.resources.discovery.client.api.DiscoveryClient; +import org.gcube.resources.discovery.client.queries.api.SimpleQuery; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.tmatesoft.svn.core.SVNDepth; +import org.tmatesoft.svn.core.SVNException; +import org.tmatesoft.svn.core.SVNURL; +import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager; +import org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory; +import org.tmatesoft.svn.core.io.SVNRepository; +import org.tmatesoft.svn.core.io.SVNRepositoryFactory; +import org.tmatesoft.svn.core.wc.ISVNOptions; +import org.tmatesoft.svn.core.wc.SVNClientManager; +import org.tmatesoft.svn.core.wc.SVNRevision; +import org.tmatesoft.svn.core.wc.SVNUpdateClient; +import org.tmatesoft.svn.core.wc.SVNWCUtil; + +import au.com.bytecode.opencsv.CSVReader; + +public class DMPMClientConfigurator { + private static final Logger LOGGER = LoggerFactory.getLogger(DMPMClientConfigurator.class); + + public String getStagingHost() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/stage/ghost/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getProdHost() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/prod/ghost/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNStagingAlgorithmsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/stage/svn.stage.algorithms-list/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getStageRepository() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/stage/svn.stage.software.repo/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getGhostAlgoDirectory() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/stage/svn.stage.algo.ghost.repo/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNStagingLinuxCompiledDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/stage/svn.stage.deps-linux-compiled/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNStagingPreInstalledDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/stage/svn.stage.deps-pre-installed/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNStagingRBDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/stage/svn.stage.deps-r-blackbox/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNStagingCRANDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/stage/svn.stage.deps-r/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNStagingJavaDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/stage/svn.stage.deps-java/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNStagingKWDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/stage/svn.stage.deps-knime-workflow/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNStagingOctaveDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/stage/svn.stage.deps-octave/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNStagingPythonDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/stage/svn.stage.deps-python/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNStagingWCDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/stage/svn.stage.deps-windows-compiled/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNProdAlgorithmsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/prod/svn.prod.algorithms-list/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getProdRepository() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/prod/svn.prod.software.repo/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getProdGhostAlgoDirectory() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/prod/svn.prod.algo.ghost.repo/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNProdLinuxCompiledDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/prod/svn.prod.deps-linux-compiled/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNProdPreInstalledDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/prod/svn.prod.deps-pre-installed/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNProdRBDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/prod/svn.prod.deps-r-blackbox/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNProdCRANDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/prod/svn.prod.deps-r/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNProdJavaDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/prod/svn.prod.deps-java/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNProdKWDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/prod/svn.prod.deps-knime-workflow/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNProdOctaveDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/prod/svn.prod.deps-octave/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNProdPythonDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/prod/svn.prod.deps-python/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNProdWCDepsList() { + // TODO Auto-generated method stub + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource/Profile/Body/prod/svn.prod.deps-windows-compiled/text()"); + DiscoveryClient client = client(); + List ds = client.submit(query); + for (String a : ds) { + ghost = a; + } + return ghost.trim(); + } + + public String getSVNRepository() { + // TODO Auto-generated method stub + + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource"); + DiscoveryClient client = clientFor(GenericResource.class); + List ds = client.submit(query); + for (GenericResource a : ds) { + ghost = a.profile().body().getElementsByTagName("svn.repository").item(0).getTextContent(); + } + return ghost.trim(); + } + +// public String getSVNRepo() { +// // TODO Auto-generated method stub +// +// String ghost = ""; +// SimpleQuery query = queryFor(GenericResource.class); +// query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource"); +// DiscoveryClient client = clientFor(GenericResource.class); +// List ds = client.submit(query); +// for (GenericResource a : ds) { +// ghost = a.profile().body().getElementsByTagName("svn_repo").item(0).getTextContent(); +// } +// return ghost; +// } + + public String getSVNMainAlgoRepo() { + // TODO Auto-generated method stub + + String ghost = ""; + SimpleQuery query = queryFor(GenericResource.class); + query.addCondition("$resource/Profile/SecondaryType/text() eq 'DMPMConfigurator'").setResult("$resource"); + DiscoveryClient client = clientFor(GenericResource.class); + List ds = client.submit(query); + for (GenericResource a : ds) { + ghost = a.profile().body().getElementsByTagName("svn.algo.main.repo").item(0).getTextContent(); + } + return ghost.trim(); + } + + + public static void main(String[] args) throws IOException, SVNException { + DMPMClientConfigurator a = new DMPMClientConfigurator(); + ScopeProvider.instance.set("/gcube/devNext/NextNext"); + //SecurityTokenProvider.instance.set("708e7eb8-11a7-4e9a-816b-c9ed7e7e99fe-98187548"); + + System.out.println(a.getSVNProdCRANDepsList()); + //System.out.println(a.getRepo()); + //System.out.println(a.getAlgoRepo()); + //System.out.println(a.getSVNRepo()); + + } +} diff --git a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/clients/ISClient.java b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/clients/ISClient.java index 5a1a6a9..f3bddca 100644 --- a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/clients/ISClient.java +++ b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/clients/ISClient.java @@ -98,38 +98,6 @@ public class ISClient { return h.getName(); } - // return the Cluster hostname from the IS - // to develop - // public Cluster getCluster(){ - // Cluster cl = new Cluster(); - // String HProxy = this.getHProxy(); - // SimpleQuery query = queryFor(ServiceEndpoint.class); - // query.addCondition("$resource/Profile/Platform/Name/text() eq - // 'DataMiner'"); - // DiscoveryClient client = - // clientFor(ServiceEndpoint.class); - // List resources = client.submit(query); - // cl.setName(resources.get(0).profile().runtime().hostedOn()); - // return null; - // - // } - - // return the dataminer hostnames from the IS - // to develop - // public List getDM(){ - // Cluster cl = new Cluster(); - // String HProxy = this.getHProxy(); - // SimpleQuery query = queryFor(ServiceEndpoint.class); - // query.addCondition("$resource/Profile/Platform/Name/text() eq - // 'DataMiner'"); - // DiscoveryClient client = - // clientFor(ServiceEndpoint.class); - // List resources = client.submit(query); - // cl.setName(resources.get(0).profile().runtime().hostedOn()); - // return null; - // - // } - public Collection listDataminersInVRE() { @@ -251,7 +219,7 @@ public class ISClient { } } - + // public Set getAlgoFromIs() { // // TODO Auto-generated method stub // @@ -290,7 +258,7 @@ public class ISClient { // return out; // } - + public static void main(String[] args) throws IOException, SVNException { ISClient a = new ISClient(); @@ -307,7 +275,7 @@ public class ISClient { // list.add(aa); // a.checkSVNdep(); - System.out.println(a.getDataminer("dataminer1-d-d4s.d4science.org").getDomain()); + //System.out.println(a.getDataminer("dataminer1-d-d4s.d4science.org").getDomain()); // System.out.println(a.listDataminersInVRE()); } } diff --git a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/service/StagingJob.java b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/service/StagingJob.java index 41bcd83..f951d5d 100644 --- a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/service/StagingJob.java +++ b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/service/StagingJob.java @@ -156,7 +156,7 @@ public class StagingJob extends DMPMJob { } - public String buildInfo(){ + public String buildInfo() throws UnsupportedEncodingException{ ServiceConfiguration a = new ServiceConfiguration(); return "\n"+ diff --git a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/CheckMethod.java b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/CheckMethod.java index a7ce3c0..2cc347c 100644 --- a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/CheckMethod.java +++ b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/CheckMethod.java @@ -485,9 +485,9 @@ public class CheckMethod { // "2eceaf27-0e22-4dbe-8075-e09eff199bf9-98187548")); //System.out.println(a.checkMethod("dataminer-proto-ghost.d4science.org", -// "3a23bfa4-4dfe-44fc-988f-194b91071dd2-843339462")); + // "3a23bfa4-4dfe-44fc-988f-194b91071dd2-843339462")); - System.out.println(a.checkMethod("dataminer-ghost-d.dev.d4science.org", +System.out.println(a.checkMethod("dataminer-ghost-d.dev.d4science.org", "708e7eb8-11a7-4e9a-816b-c9ed7e7e99fe-98187548")); diff --git a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/SVNUpdater.java b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/SVNUpdater.java index cde2a91..f489305 100644 --- a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/SVNUpdater.java +++ b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/SVNUpdater.java @@ -5,6 +5,7 @@ import org.gcube.dataanalysis.dataminer.poolmanager.datamodel.Algorithm; import org.gcube.dataanalysis.dataminer.poolmanager.datamodel.Dependency; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.SVNNodeKind; +import org.tmatesoft.svn.core.SVNProperty; import org.tmatesoft.svn.core.SVNURL; import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager; import org.tmatesoft.svn.core.internal.wc.SVNFileUtil; @@ -159,7 +160,6 @@ public String getDependencyFileProd(String language/*, String env*/){ } - public void updateAlgorithmFiles(File a) throws SVNException{ //this.updateAlgorithmList(this.configuration.getSVNMainAlgoRepo(), a); this.updateAlgorithmList(this.configuration.getStageRepository(), a); @@ -276,7 +276,6 @@ public String getDependencyFileProd(String language/*, String env*/){ final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); svnRepository.getFile(file, SVNRepository.INVALID_REVISION, null, byteArrayOutputStream); String lines[] = byteArrayOutputStream.toString().split("\\r?\\n"); - List newContent = new LinkedList<>(Arrays.asList(lines)); @@ -303,7 +302,7 @@ public String getDependencyFileProd(String language/*, String env*/){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); - for (String line : newContent) { + for (String line : newContent) { baos.write(line.getBytes()); baos.write("\n".getBytes()); } @@ -506,6 +505,7 @@ public String getDependencyFileProd(String language/*, String env*/){ for (String line : aa) { baos.write(line.getBytes()); baos.write("\n".getBytes()); + } byte[] bytes = baos.toByteArray(); @@ -513,6 +513,8 @@ public String getDependencyFileProd(String language/*, String env*/){ final String checksum = deltaGenerator.sendDelta(file, new ByteArrayInputStream(originalContents), 0, new ByteArrayInputStream(bytes), commitEditor, true); + + commitEditor.closeFile(file, checksum); commitEditor.closeEdit(); @@ -562,7 +564,7 @@ public String getDependencyFileProd(String language/*, String env*/){ public static void main(String[] args) throws SVNException, ParseException { - ServiceConfiguration sc = new ServiceConfiguration("/home/ngalante/workspace/dataminer-pool-manager/src/main/resources/service.properties"); + ServiceConfiguration sc = new ServiceConfiguration(); SVNUpdater c = new SVNUpdater(sc); diff --git a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/ServiceConfiguration.java b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/ServiceConfiguration.java index 7a4bbbd..fa84f5f 100644 --- a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/ServiceConfiguration.java +++ b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/ServiceConfiguration.java @@ -5,336 +5,342 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; -public class ServiceConfiguration { - public static String home = System.getProperty("user.home"); +import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.dataanalysis.dataminer.poolmanager.clients.DMPMClientConfigurator; +import org.gcube.dataanalysis.dataminer.poolmanager.clients.ISClient; - private Properties props; +public class ServiceConfiguration { + // public static String home = System.getProperty("user.home"); + DMPMClientConfigurator dmpc = new DMPMClientConfigurator(); + // private Properties props; public ServiceConfiguration() { - this(home+"/dataminer-pool-manager/dpmConfig/service.properties"); + // this(home+"/dataminer-pool-manager/dpmConfig/service.properties"); } - public ServiceConfiguration(String configFile) { - this.props = new Properties(); + // public ServiceConfiguration(String configFile) { + // this.props = new Properties(); + // + // FileInputStream input; + // + // try { + // input = new FileInputStream(configFile); + // // loading properites from properties file + // try { + // props.load(input); + // } catch (IOException e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + // } catch (FileNotFoundException e1) { + // // TODO Auto-generated catch block + // e1.printStackTrace(); + // } + // } - FileInputStream input; - - try { - input = new FileInputStream(configFile); - // loading properites from properties file - try { - props.load(input); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } catch (FileNotFoundException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } + public String getSVNRepository() { + // return props.getProperty("svn.repository"); + return dmpc.getSVNRepository(); } - - - public String getSVNRepository(){ - return props.getProperty("svn.repository"); - } - - - public String getSVNMainAlgoRepo(){ - return props.getProperty("svn.algo.main.repo"); - } - - - public String getStageRepository(){ - return props.getProperty("svn.stage.software.repo"); - } - - public String getProdRepository(){ - return props.getProperty("svn.prod.software.repo"); - } - - - public String getGhostAlgoDirectory(){ - return props.getProperty("svn.stage.algo.ghost.repo"); - } - - - public String getProdGhostAlgoDirectory(){ - return props.getProperty("svn.prod.algo.ghost.repo"); - } - - - //RProto -// public String getSVNRProtoAlgorithmsList(){ -// return props.getProperty("svn.rproto.algorithms-list"); -// } -// -// public String getSVNRProtoLinuxCompiledDepsList(){ -// return props.getProperty("svn.rproto.deps-linux-compiled"); -// } -// -// public String getSVNRProtoCRANDepsList(){ -// return props.getProperty("svn.rproto.deps-r"); -// } -// -// public String getSVNRProtoPreInstalledDepsList(){ -// return props.getProperty("svn.rproto.deps-pre-installed"); -// } -// -// public String getSVNRProtoRBDepsList(){ -// return props.getProperty("svn.rproto.deps-r-blackbox"); -// } -// -// public String getSVNRProtoJavaDepsList(){ -// return props.getProperty("svn.rproto.deps-java"); -// } -// -// public String getSVNRProtoKWDepsList(){ -// return props.getProperty("svn.rproto.deps-knime-workflow"); -// } -// -// public String getSVNRProtoOctaveDepsList(){ -// return props.getProperty("svn.rproto.deps-octave"); -// } -// -// public String getSVNRProtoPythonDepsList(){ -// return props.getProperty("svn.rproto.deps-python"); -// } -// -// public String getSVNRProtoWCDepsList(){ -// return props.getProperty("svn.rproto.deps-windows-compiled"); -// } - - - //Prod - public String getSVNProdAlgorithmsList(){ - return props.getProperty("svn.prod.algorithms-list"); + public String getSVNMainAlgoRepo() { + // return props.getProperty("svn.algo.main.repo"); + return dmpc.getSVNMainAlgoRepo(); } - public String getSVNProdLinuxCompiledDepsList(){ - return props.getProperty("svn.prod.deps-linux-compiled"); + public String getStageRepository() { + // return props.getProperty("svn.stage.software.repo"); + return dmpc.getStageRepository(); } - public String getSVNProdCRANDepsList(){ - return props.getProperty("svn.prod.deps-r"); + public String getProdRepository() { + // return props.getProperty("svn.prod.software.repo"); + return dmpc.getProdRepository(); } - public String getSVNProdPreInstalledDepsList(){ - return props.getProperty("svn.prod.deps-pre-installed"); + public String getGhostAlgoDirectory() { + // return props.getProperty("svn.stage.algo.ghost.repo"); + return dmpc.getGhostAlgoDirectory(); } - - public String getSVNProdRBDepsList(){ - return props.getProperty("svn.prod.deps-r-blackbox"); - } - - public String getSVNProdJavaDepsList(){ - return props.getProperty("svn.prod.deps-java"); - } - - public String getSVNProdKWDepsList(){ - return props.getProperty("svn.prod.deps-knime-workflow"); - } - - public String getSVNProdOctaveDepsList(){ - return props.getProperty("svn.prod.deps-octave"); - } - - public String getSVNProdPythonDepsList(){ - return props.getProperty("svn.prod.deps-python"); - } - - public String getSVNProdWCDepsList(){ - return props.getProperty("svn.prod.deps-windows-compiled"); - } - - - - //PreProd -// public String getSVNPreProdAlgorithmsList(){ -// return props.getProperty("svn.preprod.algorithms-list"); -// } -// -// public String getSVNPreProdLinuxCompiledDepsList(){ -// return props.getProperty("svn.preprod.deps-linux-compiled"); -// } -// -// public String getSVNPreProdCRANDepsList(){ -// return props.getProperty("svn.preprod.deps-r"); -// } -// -// public String getSVNPreProdPreInstalledDepsList(){ -// return props.getProperty("svn.preprod.deps-pre-installed"); -// } -// -// public String getSVNPreProdRBDepsList(){ -// return props.getProperty("svn.preprod.deps-r-blackbox"); -// } -// -// public String getSVNPreProdJavaDepsList(){ -// return props.getProperty("svn.preprod.deps-java"); -// } -// -// public String getSVNPreProdKWDepsList(){ -// return props.getProperty("svn.preprod.deps-knime-workflow"); -// } -// -// public String getSVNPreProdOctaveDepsList(){ -// return props.getProperty("svn.preprod.deps-octave"); -// } -// -// public String getSVNPreProdPythonDepsList(){ -// return props.getProperty("svn.preprod.deps-python"); -// } -// -// public String getSVNPreProdWCDepsList(){ -// return props.getProperty("svn.preprod.deps-windows-compiled"); -// } - - - - //dev -// public String getSVNDevAlgorithmsList(){ -// return props.getProperty("svn.dev.algorithms-list"); -// } -// -// public String getSVNDevLinuxCompiledDepsList(){ -// return props.getProperty("svn.dev.deps-linux-compiled"); -// } -// -// public String getSVNDevCRANDepsList(){ -// return props.getProperty("svn.dev.deps-r"); -// } -// -// public String getSVNDevPreInstalledDepsList(){ -// return props.getProperty("svn.dev.deps-pre-installed"); -// } -// -// public String getSVNDevRBDepsList(){ -// return props.getProperty("svn.dev.deps-r-blackbox"); -// } -// -// public String getSVNDevJavaDepsList(){ -// return props.getProperty("svn.dev.deps-java"); -// } -// -// public String getSVNDevKWDepsList(){ -// return props.getProperty("svn.dev.deps-knime-workflow"); -// } -// -// public String getSVNDevOctaveDepsList(){ -// return props.getProperty("svn.dev.deps-octave"); -// } -// -// public String getSVNDevPythonDepsList(){ -// return props.getProperty("svn.dev.deps-python"); -// } -// -// public String getSVNDevWCDepsList(){ -// return props.getProperty("svn.dev.deps-windows-compiled"); -// } -// -// - - -// public String getCSVUrl() { -// return props.getProperty("HAPROXY_CSV"); -// } + public String getProdGhostAlgoDirectory() { + // return props.getProperty("svn.prod.algo.ghost.repo"); + return dmpc.getProdGhostAlgoDirectory(); + } + + // RProto + // public String getSVNRProtoAlgorithmsList(){ + // return props.getProperty("svn.rproto.algorithms-list"); + // } + // + // public String getSVNRProtoLinuxCompiledDepsList(){ + // return props.getProperty("svn.rproto.deps-linux-compiled"); + // } + // + // public String getSVNRProtoCRANDepsList(){ + // return props.getProperty("svn.rproto.deps-r"); + // } + // + // public String getSVNRProtoPreInstalledDepsList(){ + // return props.getProperty("svn.rproto.deps-pre-installed"); + // } + // + // public String getSVNRProtoRBDepsList(){ + // return props.getProperty("svn.rproto.deps-r-blackbox"); + // } + // + // public String getSVNRProtoJavaDepsList(){ + // return props.getProperty("svn.rproto.deps-java"); + // } + // + // public String getSVNRProtoKWDepsList(){ + // return props.getProperty("svn.rproto.deps-knime-workflow"); + // } + // + // public String getSVNRProtoOctaveDepsList(){ + // return props.getProperty("svn.rproto.deps-octave"); + // } + // + // public String getSVNRProtoPythonDepsList(){ + // return props.getProperty("svn.rproto.deps-python"); + // } + // + // public String getSVNRProtoWCDepsList(){ + // return props.getProperty("svn.rproto.deps-windows-compiled"); + // } + + // Prod + public String getSVNProdAlgorithmsList() { + // return props.getProperty("svn.prod.algorithms-list"); + return dmpc.getSVNProdAlgorithmsList(); + } + + public String getSVNProdLinuxCompiledDepsList() { + // return props.getProperty("svn.prod.deps-linux-compiled"); + return dmpc.getSVNProdLinuxCompiledDepsList(); + } + + public String getSVNProdCRANDepsList() { + // return props.getProperty("svn.prod.deps-r"); + return dmpc.getSVNProdCRANDepsList(); + } + + public String getSVNProdPreInstalledDepsList() { + // return props.getProperty("svn.prod.deps-pre-installed"); + return dmpc.getSVNProdPreInstalledDepsList(); + } + + public String getSVNProdRBDepsList() { + // return props.getProperty("svn.prod.deps-r-blackbox"); + return dmpc.getSVNProdRBDepsList(); + } + + public String getSVNProdJavaDepsList() { + // return props.getProperty("svn.prod.deps-java"); + return dmpc.getSVNProdJavaDepsList(); + } + + public String getSVNProdKWDepsList() { + // return props.getProperty("svn.prod.deps-knime-workflow"); + return dmpc.getSVNProdKWDepsList(); + } + + public String getSVNProdOctaveDepsList() { + // return props.getProperty("svn.prod.deps-octave"); + return dmpc.getSVNProdOctaveDepsList(); + } + + public String getSVNProdPythonDepsList() { + // return props.getProperty("svn.prod.deps-python"); + return dmpc.getSVNProdPythonDepsList(); + } + + public String getSVNProdWCDepsList() { + // return props.getProperty("svn.prod.deps-windows-compiled"); + return dmpc.getSVNProdWCDepsList(); + } + + // PreProd + // public String getSVNPreProdAlgorithmsList(){ + // return props.getProperty("svn.preprod.algorithms-list"); + // } + // + // public String getSVNPreProdLinuxCompiledDepsList(){ + // return props.getProperty("svn.preprod.deps-linux-compiled"); + // } + // + // public String getSVNPreProdCRANDepsList(){ + // return props.getProperty("svn.preprod.deps-r"); + // } + // + // public String getSVNPreProdPreInstalledDepsList(){ + // return props.getProperty("svn.preprod.deps-pre-installed"); + // } + // + // public String getSVNPreProdRBDepsList(){ + // return props.getProperty("svn.preprod.deps-r-blackbox"); + // } + // + // public String getSVNPreProdJavaDepsList(){ + // return props.getProperty("svn.preprod.deps-java"); + // } + // + // public String getSVNPreProdKWDepsList(){ + // return props.getProperty("svn.preprod.deps-knime-workflow"); + // } + // + // public String getSVNPreProdOctaveDepsList(){ + // return props.getProperty("svn.preprod.deps-octave"); + // } + // + // public String getSVNPreProdPythonDepsList(){ + // return props.getProperty("svn.preprod.deps-python"); + // } + // + // public String getSVNPreProdWCDepsList(){ + // return props.getProperty("svn.preprod.deps-windows-compiled"); + // } + + // dev + // public String getSVNDevAlgorithmsList(){ + // return props.getProperty("svn.dev.algorithms-list"); + // } + // + // public String getSVNDevLinuxCompiledDepsList(){ + // return props.getProperty("svn.dev.deps-linux-compiled"); + // } + // + // public String getSVNDevCRANDepsList(){ + // return props.getProperty("svn.dev.deps-r"); + // } + // + // public String getSVNDevPreInstalledDepsList(){ + // return props.getProperty("svn.dev.deps-pre-installed"); + // } + // + // public String getSVNDevRBDepsList(){ + // return props.getProperty("svn.dev.deps-r-blackbox"); + // } + // + // public String getSVNDevJavaDepsList(){ + // return props.getProperty("svn.dev.deps-java"); + // } + // + // public String getSVNDevKWDepsList(){ + // return props.getProperty("svn.dev.deps-knime-workflow"); + // } + // + // public String getSVNDevOctaveDepsList(){ + // return props.getProperty("svn.dev.deps-octave"); + // } + // + // public String getSVNDevPythonDepsList(){ + // return props.getProperty("svn.dev.deps-python"); + // } + // + // public String getSVNDevWCDepsList(){ + // return props.getProperty("svn.dev.deps-windows-compiled"); + // } + // + // + + // public String getCSVUrl() { + // return props.getProperty("HAPROXY_CSV"); + // } + + // public String getHost(String env){ + // String a = ""; + // + // if (env.equals("Dev")||(env.equals("Preprod"))){ + // a = this.getDevStagingHost().trim(); + // } + // + // if (env.equals("Prod")||(env.equals("Proto"))){ + // a = this.getProtoProdStagingHost().trim(); + // } + // return a; + // } + + // public String getDevStagingHost() { + // return props.getProperty("DEV_STAGING_HOST"); + // } - -// public String getHost(String env){ -// String a = ""; -// -// if (env.equals("Dev")||(env.equals("Preprod"))){ -// a = this.getDevStagingHost().trim(); -// } -// -// if (env.equals("Prod")||(env.equals("Proto"))){ -// a = this.getProtoProdStagingHost().trim(); -// } -// return a; -// } - - - -// public String getDevStagingHost() { -// return props.getProperty("DEV_STAGING_HOST"); -// } - public String getStagingHost() { - return props.getProperty("STAGE_GHOST"); + // return props.getProperty("STAGE_GHOST"); + return dmpc.getStagingHost(); } - - + public String getProdHost() { - return props.getProperty("PROD_GHOST"); + // return props.getProperty("PROD_GHOST"); + return dmpc.getProdHost(); } - -// public String getProtoProdStagingHost() { -// return props.getProperty("PROTO_PROD_STAGING_HOST"); -// } - - - - - - //Staging - public String getSVNStagingAlgorithmsList(){ - return props.getProperty("svn.stage.algorithms-list"); - } - public String getSVNStagingLinuxCompiledDepsList(){ - return props.getProperty("svn.stage.deps-linux-compiled"); - } + // public String getProtoProdStagingHost() { + // return props.getProperty("PROTO_PROD_STAGING_HOST"); + // } - public String getSVNStagingCRANDepsList(){ - return props.getProperty("svn.stage.deps-r"); - } + // Staging + public String getSVNStagingAlgorithmsList() { + // return props.getProperty("svn.stage.algorithms-list"); + return dmpc.getSVNStagingAlgorithmsList(); + } - public String getSVNStagingPreInstalledDepsList(){ - return props.getProperty("svn.stage.deps-pre-installed"); - } - - public String getSVNStagingRBDepsList(){ - return props.getProperty("svn.stage.deps-r-blackbox"); - } - - public String getSVNStagingJavaDepsList(){ - return props.getProperty("svn.stage.deps-java"); - } - - public String getSVNStagingKWDepsList(){ - return props.getProperty("svn.stage.deps-knime-workflow"); - } - - public String getSVNStagingOctaveDepsList(){ - return props.getProperty("svn.stage.deps-octave"); - } - - public String getSVNStagingPythonDepsList(){ - return props.getProperty("svn.stage.deps-python"); - } - - public String getSVNStagingWCDepsList(){ - return props.getProperty("svn.stage.deps-windows-compiled"); - } - - - - + public String getSVNStagingLinuxCompiledDepsList() { + // return props.getProperty("svn.stage.deps-linux-compiled"); + return dmpc.getSVNStagingLinuxCompiledDepsList(); + } + + public String getSVNStagingCRANDepsList() { + // return props.getProperty("svn.stage.deps-r"); + return dmpc.getSVNStagingCRANDepsList(); + } + + public String getSVNStagingPreInstalledDepsList() { + // return props.getProperty("svn.stage.deps-pre-installed"); + return dmpc.getSVNStagingPreInstalledDepsList(); + } + + public String getSVNStagingRBDepsList() { + // return props.getProperty("svn.stage.deps-r-blackbox"); + return dmpc.getSVNStagingRBDepsList(); + } + + public String getSVNStagingJavaDepsList() { + // return props.getProperty("svn.stage.deps-java"); + return dmpc.getSVNStagingJavaDepsList(); + } + + public String getSVNStagingKWDepsList() { + // return props.getProperty("svn.stage.deps-knime-workflow"); + return dmpc.getSVNStagingKWDepsList(); + } + + public String getSVNStagingOctaveDepsList() { + // return props.getProperty("svn.stage.deps-octave"); + return dmpc.getSVNStagingOctaveDepsList(); + } + + public String getSVNStagingPythonDepsList() { + // return props.getProperty("svn.stage.deps-python"); + return dmpc.getSVNStagingPythonDepsList(); + } + + public String getSVNStagingWCDepsList() { + // return props.getProperty("svn.stage.deps-windows-compiled"); + return dmpc.getSVNStagingWCDepsList(); + } public static void main(String[] args) throws FileNotFoundException { - ServiceConfiguration a = new ServiceConfiguration(); - //System.out.println(a.getStagingHost()); - //System.out.println(a.getDevStagingHost()); - //System.out.println(a.getProtoProdStagingHost()); - //System.out.println(a.getCSVUrl()); - //System.out.println(a.getSVNMainAlgoRepo()); - //System.out.println(a.getSVNRProtoCRANDepsList()); - //System.out.println(a.getProdHost()); - System.out.println(a.getSVNProdRBDepsList()); + //ServiceConfiguration a = new ServiceConfiguration(); + ScopeProvider.instance.set("/gcube/devNext/NextNext"); + // System.out.println(a.getStagingHost()); + // System.out.println(a.getDevStagingHost()); + // System.out.println(a.getProtoProdStagingHost()); + // System.out.println(a.getCSVUrl()); + // System.out.println(a.getSVNMainAlgoRepo()); + // System.out.println(a.getSVNRProtoCRANDepsList()); + // System.out.println(a.getProdHost()); + //System.out.println(a.getSVNProdRBDepsList()); } - } diff --git a/src/test/java/org/gcube/dataanalysis/dataminerpoolmanager/SVNTests.java b/src/test/java/org/gcube/dataanalysis/dataminerpoolmanager/SVNTests.java index 3cc6b1d..f32f473 100644 --- a/src/test/java/org/gcube/dataanalysis/dataminerpoolmanager/SVNTests.java +++ b/src/test/java/org/gcube/dataanalysis/dataminerpoolmanager/SVNTests.java @@ -1,30 +1,56 @@ package org.gcube.dataanalysis.dataminerpoolmanager; +import org.gcube.dataanalysis.dataminer.poolmanager.clients.DMPMClientConfigurator; import org.gcube.dataanalysis.dataminer.poolmanager.datamodel.Algorithm; import org.gcube.dataanalysis.dataminer.poolmanager.util.AlgorithmBuilder; import org.gcube.dataanalysis.dataminer.poolmanager.util.SVNUpdater; import org.gcube.dataanalysis.dataminer.poolmanager.util.ServiceConfiguration; import org.tmatesoft.svn.core.SVNException; +import org.tmatesoft.svn.core.SVNURL; +import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager; +import org.tmatesoft.svn.core.internal.wc.SVNFileUtil; +import org.tmatesoft.svn.core.internal.wc.admin.SVNChecksumInputStream; +import org.tmatesoft.svn.core.io.ISVNEditor; +import org.tmatesoft.svn.core.io.SVNRepository; +import org.tmatesoft.svn.core.io.SVNRepositoryFactory; +import org.tmatesoft.svn.core.io.diff.SVNDeltaGenerator; +import org.tmatesoft.svn.core.wc.SVNWCUtil; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Arrays; +import java.util.Calendar; +import java.util.Date; +import java.util.LinkedList; +import java.util.List; +import java.util.TimeZone; /** * Created by ggiammat on 5/17/17. */ public class SVNTests { - + + public static void main(String[] args) throws SVNException, IOException, InterruptedException { - SVNUpdater svnUpdater = new SVNUpdater(new ServiceConfiguration("/home/ngalante/workspace/dataminer-pool-manager/src/main/resources/service.properties")); + SVNUpdater svnUpdater = new SVNUpdater(new ServiceConfiguration()); - Algorithm algo = AlgorithmBuilder.create("http://data.d4science.org/cnFLNHYxR1ZDa1VNdEhrTUQyQlZjaWRBVVZlUHloUitHbWJQNStIS0N6Yz0"); + Algorithm algo = AlgorithmBuilder.create("http://data.d4science.org/YjJ3TmJab1dqYzVoTmppdjlsK0l0b1ZXWGtzWlQ1NHNHbWJQNStIS0N6Yz0"); //algo.setClazz(algo.getClazz() + "TEST"); - System.out.println(algo.getAlgorithmType()); - System.out.println(algo.getCategory()); - System.out.println(algo.getSkipJava()); + algo.setAlgorithmType("transducerers"); + algo.setCategory("NLP"); + algo.setFullname("Ondřej Košarko"); + //System.out.println(algo.getCategory()); + //System.out.println(algo.getSkipJava()); + svnUpdater.updateSVNAlgorithmList("/trunk/data-analysis/DataMinerConfiguration/algorithms/dev/algorithms", algo, "/gcube/devNext/NextNext", algo.getCategory(), algo.getAlgorithmType(), ""); + //svnUpdater.updateSVNRProtoAlgorithmList(algo, "/d4science.research-infrastructures.eu/gCubeApps/RPrototypingLab", "Dataminer Pool Manager", "Proto"); //svnUpdater.readRPRotoDeps(algo); }