From 9dd9329ba11ebd97066f49566d12d9f16d751a83 Mon Sep 17 00:00:00 2001 From: "andrea.manzi" Date: Thu, 27 Mar 2014 05:57:43 +0000 Subject: [PATCH] separated ContainerSweeperClient and AppSweeperClient git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/Common/common-smartgears-utils@93607 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../utils/sweeper/AppSweeperClient.java | 46 +++++++++++++++++++ ...lient.java => ContainerSweeperClient.java} | 11 +++-- .../smartgears/utils/sweeper/Sweeper.java | 35 ++++++++++++-- .../utils/sweeper/test/SweeperTest.java | 4 +- 4 files changed, 87 insertions(+), 9 deletions(-) create mode 100644 src/main/java/org/gcube/smartgears/utils/sweeper/AppSweeperClient.java rename src/main/java/org/gcube/smartgears/utils/sweeper/{SweeperClient.java => ContainerSweeperClient.java} (76%) diff --git a/src/main/java/org/gcube/smartgears/utils/sweeper/AppSweeperClient.java b/src/main/java/org/gcube/smartgears/utils/sweeper/AppSweeperClient.java new file mode 100644 index 0000000..1d29f12 --- /dev/null +++ b/src/main/java/org/gcube/smartgears/utils/sweeper/AppSweeperClient.java @@ -0,0 +1,46 @@ +package org.gcube.smartgears.utils.sweeper; + +import java.io.FileNotFoundException; + +import javax.xml.bind.JAXBException; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * + * @author andrea + * + */ +public class AppSweeperClient { + + public static void main (String args[]) { + + + Logger logger = LoggerFactory.getLogger(AppSweeperClient.class); + + if (args.length <1) { + logger.error("Missing app name parameter"); + System.exit(1); + } + + String name = args[0]; + + Sweeper sw = null; + try { + sw = new Sweeper(); + } catch (Exception e) { + logger.error("Error initializing the Sweeper ", e); + System.exit(1); + } + + + try { + sw.cleanRIProfile(name); + } catch (Exception e) { + logger.error("Error cleaning the RunningInstance profile ", e); + System.exit(1); + } + } + +} diff --git a/src/main/java/org/gcube/smartgears/utils/sweeper/SweeperClient.java b/src/main/java/org/gcube/smartgears/utils/sweeper/ContainerSweeperClient.java similarity index 76% rename from src/main/java/org/gcube/smartgears/utils/sweeper/SweeperClient.java rename to src/main/java/org/gcube/smartgears/utils/sweeper/ContainerSweeperClient.java index 1fde224..864b6bd 100644 --- a/src/main/java/org/gcube/smartgears/utils/sweeper/SweeperClient.java +++ b/src/main/java/org/gcube/smartgears/utils/sweeper/ContainerSweeperClient.java @@ -12,11 +12,12 @@ import org.slf4j.LoggerFactory; * @author andrea * */ -public class SweeperClient { +public class ContainerSweeperClient { public static void main (String args[]) { - Logger logger = LoggerFactory.getLogger(SweeperClient.class); + + Logger logger = LoggerFactory.getLogger(ContainerSweeperClient.class); Sweeper sw = null; try { @@ -26,15 +27,17 @@ public class SweeperClient { System.exit(1); } + + try { sw.cleanGHNProfile(); - } catch (FileNotFoundException | JAXBException e) { + } catch (Exception e) { logger.error("Error cleaning the GHN profile ", e); System.exit(1); } try { sw.cleanRIProfiles(); - } catch (FileNotFoundException | JAXBException e) { + } catch (Exception e) { logger.error("Error cleaning the RunningInstance profiles ", e); System.exit(1); } diff --git a/src/main/java/org/gcube/smartgears/utils/sweeper/Sweeper.java b/src/main/java/org/gcube/smartgears/utils/sweeper/Sweeper.java index bb0ced1..78a9d7e 100644 --- a/src/main/java/org/gcube/smartgears/utils/sweeper/Sweeper.java +++ b/src/main/java/org/gcube/smartgears/utils/sweeper/Sweeper.java @@ -63,7 +63,31 @@ public class Sweeper { return hostingNode; } - public ArrayList getRunningInstanceProfiles() throws JAXBException { + public GCoreEndpoint getRunningInstanceProfile(String name) throws Exception { + + JAXBContext jc = JAXBContext.newInstance(GCoreEndpoint.class); + + Unmarshaller um = jc.createUnmarshaller(); + + GCoreEndpoint ri = null; + + File subfolder = new File(ghn_state_path+ File.separator+ name); + + + try { + ri = (GCoreEndpoint) + um.unmarshal(new java.io.FileInputStream(subfolder.getAbsolutePath()+File.separator+"endpoint.xml" )); + } catch (FileNotFoundException | JAXBException e) { + e.printStackTrace(); + throw new Exception(e); + } + + return ri; + + } + + + public ArrayList getRunningInstanceProfiles() throws Exception { ArrayList endpoints = new ArrayList(); @@ -95,12 +119,17 @@ public class Sweeper { } - public void cleanGHNProfile() throws FileNotFoundException, JAXBException{ + public void cleanGHNProfile() throws Exception{ forceDeleteResource(this.getGHNProfile()); } - public void cleanRIProfiles() throws FileNotFoundException, JAXBException{ + public void cleanRIProfile(String name) throws Exception{ + forceDeleteResource(this.getRunningInstanceProfile(name)); + + } + + public void cleanRIProfiles() throws Exception{ for (GCoreEndpoint endp : this.getRunningInstanceProfiles()){ forceDeleteResource(endp); } diff --git a/src/test/java/org/gcube/smartgears/utils/sweeper/test/SweeperTest.java b/src/test/java/org/gcube/smartgears/utils/sweeper/test/SweeperTest.java index b8371f2..18d5802 100644 --- a/src/test/java/org/gcube/smartgears/utils/sweeper/test/SweeperTest.java +++ b/src/test/java/org/gcube/smartgears/utils/sweeper/test/SweeperTest.java @@ -48,7 +48,7 @@ public class SweeperTest { ArrayList list = new ArrayList (); try { list =sw.getRunningInstanceProfiles(); - } catch (JAXBException e) { + } catch (Exception e) { e.printStackTrace(); } @@ -65,7 +65,7 @@ public class SweeperTest { try { sw.cleanGHNProfile(); - } catch (FileNotFoundException | JAXBException e) { + } catch (Exception e) { e.printStackTrace(); }