published used to remove resource changed to ScopedPublisher
This commit is contained in:
parent
cb0d970d3c
commit
ea484bac34
|
@ -6,23 +6,20 @@
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="optional" value="true"/>
|
<attribute name="optional" value="true"/>
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
<attribute name="test" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
|
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
<attribute name="test" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||||
org.eclipse.jdt.core.compiler.compliance=1.7
|
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||||
|
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||||
org.eclipse.jdt.core.compiler.source=1.7
|
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
|
||||||
|
org.eclipse.jdt.core.compiler.release=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.source=1.8
|
||||||
|
|
6
pom.xml
6
pom.xml
|
@ -4,11 +4,11 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.gcube.tools</groupId>
|
<groupId>org.gcube.tools</groupId>
|
||||||
<artifactId>maven-parent</artifactId>
|
<artifactId>maven-parent</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.1.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<groupId>org.gcube.core</groupId>
|
<groupId>org.gcube.core</groupId>
|
||||||
<artifactId>common-smartgears-utils</artifactId>
|
<artifactId>common-smartgears-utils</artifactId>
|
||||||
<version>1.0.3-SNAPSHOT</version>
|
<version>1.0.4-SNAPSHOT</version>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.common</groupId>
|
<groupId>org.gcube.common</groupId>
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.resources</groupId>
|
<groupId>org.gcube.resources</groupId>
|
||||||
<artifactId>registry-publisher</artifactId>
|
<artifactId>registry-publisher</artifactId>
|
||||||
<version>[1.2.2-SNAPSHOT, 1.3.0-SNAPSHOT)</version>
|
<version>[1.2.2-SNAPSHOT, 1.4.0-SNAPSHOT)</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.slf4j</groupId>
|
<groupId>org.slf4j</groupId>
|
||||||
|
|
|
@ -12,12 +12,24 @@ public class ContainerSweeperClient {
|
||||||
|
|
||||||
public static void main (String args[]) {
|
public static void main (String args[]) {
|
||||||
|
|
||||||
|
String savedTokenFileName= null;
|
||||||
|
String ghnHome = null;
|
||||||
|
|
||||||
|
if (args.length>0)
|
||||||
|
for (String arg: args) {
|
||||||
|
if (arg.startsWith("-G"))
|
||||||
|
ghnHome = arg.replaceAll("-G(.*)$", "$1");
|
||||||
|
else savedTokenFileName = arg;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ghnHome==null)
|
||||||
|
ghnHome = System.getenv("GHN_HOME");;
|
||||||
|
|
||||||
Logger logger = LoggerFactory.getLogger(ContainerSweeperClient.class);
|
Logger logger = LoggerFactory.getLogger(ContainerSweeperClient.class);
|
||||||
|
|
||||||
Sweeper sw = null;
|
Sweeper sw = null;
|
||||||
try {
|
try {
|
||||||
sw = new Sweeper();
|
sw = new Sweeper(ghnHome);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println("Error initializing the Sweeper");
|
System.out.println("Error initializing the Sweeper");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -26,8 +38,7 @@ public class ContainerSweeperClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (args.length>0){
|
if (savedTokenFileName!=null){
|
||||||
String savedTokenFileName = args[0];
|
|
||||||
sw.saveTokens(savedTokenFileName);
|
sw.saveTokens(savedTokenFileName);
|
||||||
logger.info("file saved on Smartgears directory with name {} ",savedTokenFileName);
|
logger.info("file saved on Smartgears directory with name {} ",savedTokenFileName);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,5 +18,31 @@ public class ContextBean {
|
||||||
public String getContext() {
|
public String getContext() {
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
final int prime = 31;
|
||||||
|
int result = 1;
|
||||||
|
result = prime * result + ((token == null) ? 0 : token.hashCode());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj)
|
||||||
|
return true;
|
||||||
|
if (obj == null)
|
||||||
|
return false;
|
||||||
|
if (getClass() != obj.getClass())
|
||||||
|
return false;
|
||||||
|
ContextBean other = (ContextBean) obj;
|
||||||
|
if (token == null) {
|
||||||
|
if (other.token != null)
|
||||||
|
return false;
|
||||||
|
} else if (!token.equals(other.token))
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,8 +7,11 @@ import java.io.FileInputStream;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.ObjectInputStream;
|
import java.io.ObjectInputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.gcube.common.authorization.library.AuthorizationEntry;
|
import org.gcube.common.authorization.library.AuthorizationEntry;
|
||||||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||||
|
@ -16,6 +19,7 @@ import org.gcube.common.resources.gcore.HostingNode;
|
||||||
import org.gcube.common.scope.api.ScopeProvider;
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
import org.gcube.informationsystem.publisher.RegistryPublisher;
|
import org.gcube.informationsystem.publisher.RegistryPublisher;
|
||||||
import org.gcube.informationsystem.publisher.RegistryPublisherFactory;
|
import org.gcube.informationsystem.publisher.RegistryPublisherFactory;
|
||||||
|
import org.gcube.informationsystem.publisher.ScopedPublisher;
|
||||||
import org.gcube.resources.discovery.client.api.DiscoveryClient;
|
import org.gcube.resources.discovery.client.api.DiscoveryClient;
|
||||||
import org.gcube.resources.discovery.client.queries.api.SimpleQuery;
|
import org.gcube.resources.discovery.client.queries.api.SimpleQuery;
|
||||||
import org.gcube.resources.discovery.icclient.ICFactory;
|
import org.gcube.resources.discovery.icclient.ICFactory;
|
||||||
|
@ -38,13 +42,13 @@ public class Sweeper {
|
||||||
String ghn_path;
|
String ghn_path;
|
||||||
|
|
||||||
String id ;
|
String id ;
|
||||||
List<ContextBean> contextBeans = new ArrayList<ContextBean>();
|
Set<ContextBean> contextBeans = new HashSet<ContextBean>();
|
||||||
|
|
||||||
public Sweeper () throws Exception {
|
public Sweeper (String ghnPath) throws Exception {
|
||||||
|
|
||||||
logger = LoggerFactory.getLogger(Sweeper.class);
|
logger = LoggerFactory.getLogger(Sweeper.class);
|
||||||
|
|
||||||
ghn_path = System.getenv("GHN_HOME");
|
ghn_path = ghnPath;
|
||||||
|
|
||||||
if (ghn_path == null ) {
|
if (ghn_path == null ) {
|
||||||
logger.error("GHN_HOME not defined");
|
logger.error("GHN_HOME not defined");
|
||||||
|
@ -72,21 +76,27 @@ public class Sweeper {
|
||||||
|
|
||||||
|
|
||||||
public void forceDeleteHostingNode(){
|
public void forceDeleteHostingNode(){
|
||||||
RegistryPublisher rp=RegistryPublisherFactory.create();
|
ScopedPublisher rp=RegistryPublisherFactory.scopedPublisher();
|
||||||
try{
|
try{
|
||||||
DiscoveryClient<HostingNode> client = ICFactory.clientFor(HostingNode.class);
|
DiscoveryClient<HostingNode> client = ICFactory.clientFor(HostingNode.class);
|
||||||
SimpleQuery query = ICFactory.queryFor(HostingNode.class);
|
SimpleQuery query = ICFactory.queryFor(HostingNode.class);
|
||||||
query.addCondition("$resource/ID/text() = '"+id+"'");
|
query.addCondition("$resource/ID/text() = '"+id+"'");
|
||||||
|
List<String> scopes = contextBeans.stream().map(b -> b.getContext()).collect(Collectors.toList());
|
||||||
|
ScopeProvider.instance.set(scopes.get(0));
|
||||||
|
HostingNode node =null;
|
||||||
for (ContextBean contextBean : contextBeans){
|
for (ContextBean contextBean : contextBeans){
|
||||||
|
|
||||||
SecurityTokenProvider.instance.set(contextBean.getToken());
|
SecurityTokenProvider.instance.set(contextBean.getToken());
|
||||||
ScopeProvider.instance.set(contextBean.getContext());
|
ScopeProvider.instance.set(contextBean.getContext());
|
||||||
List<HostingNode> nodes = client.submit(query);
|
List<HostingNode> nodes = client.submit(query);
|
||||||
if (nodes.isEmpty()) continue;
|
if (nodes.isEmpty()) continue;
|
||||||
rp.remove(nodes.get(0));
|
else {
|
||||||
|
node = nodes.get(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
rp.remove(node, scopes);
|
||||||
|
ScopeProvider.instance.reset();
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
throw new RuntimeException("error removing hosting node resource",e);
|
throw new RuntimeException("error removing hosting node resource",e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,19 @@
|
||||||
package org.gcube.smartgears.utils.sweeper.test;
|
package org.gcube.smartgears.utils.sweeper.test;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.gcube.common.resources.gcore.HostingNode;
|
||||||
|
import org.gcube.common.scope.api.ScopeProvider;
|
||||||
|
import org.gcube.informationsystem.publisher.RegistryPublisher;
|
||||||
|
import org.gcube.informationsystem.publisher.RegistryPublisherFactory;
|
||||||
|
import org.gcube.resources.discovery.client.api.DiscoveryClient;
|
||||||
|
import org.gcube.resources.discovery.client.queries.api.SimpleQuery;
|
||||||
|
import org.gcube.resources.discovery.icclient.ICFactory;
|
||||||
import org.gcube.smartgears.utils.sweeper.Sweeper;
|
import org.gcube.smartgears.utils.sweeper.Sweeper;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
public class SweeperTest {
|
public class SweeperTest {
|
||||||
|
|
||||||
|
@ -10,12 +22,27 @@ public class SweeperTest {
|
||||||
@Before
|
@Before
|
||||||
public void setUp(){
|
public void setUp(){
|
||||||
try {
|
try {
|
||||||
sw = new Sweeper();
|
sw = new Sweeper("/home/lucio/Smartgears");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void deleteHNs() {
|
||||||
|
sw.forceDeleteHostingNode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void deleteFromScope() {
|
||||||
|
|
||||||
|
RegistryPublisher rp=RegistryPublisherFactory.create();
|
||||||
|
ScopeProvider.instance.set("/gcube/devNext/NextNext");
|
||||||
|
DiscoveryClient<HostingNode> client = ICFactory.clientFor(HostingNode.class);
|
||||||
|
SimpleQuery query = ICFactory.queryFor(HostingNode.class);
|
||||||
|
query.addCondition("$resource/ID/text() = 'c8201474-a8cd-440f-9f62-a1e1b107ceb6'");
|
||||||
|
List<HostingNode> nodes = client.submit(query);
|
||||||
|
rp.remove(nodes.get(0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue