[jbosstools-commits] JBoss Tools SVN: r24071 - in trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core: src/org/jboss/tools/deltacloud/core and 1 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Wed Aug 11 18:10:38 EDT 2010


Author: jjohnstn
Date: 2010-08-11 18:10:38 -0400 (Wed, 11 Aug 2010)
New Revision: 24071

Modified:
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloud.java
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloudInstance.java
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClient.java
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/Instance.java
Log:
2010-08-11  Jeff Johnston  <jjohnstn at redhat.com>

	* src/org/jboss/tools/deltacloud/core/client/DeltaCloudClient.java (performInstanceAction): New method. 
	* src/org/jboss/tools/deltacloud/core/client/Instance.java (getActionNames): Ditto.
	* src/org/jboss/tools/deltacloud/core/DeltaCloud.java (getCurrInstances): Ditto.
	(performInstanceAction): Ditto. 
	(refreshInstance): Add notification.
	* src/org/jboss/tools/deltacloud/core/DeltaCloudInstance.java (getActions): New method. 
	


Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog	2010-08-11 21:41:52 UTC (rev 24070)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog	2010-08-11 22:10:38 UTC (rev 24071)
@@ -1,5 +1,14 @@
 2010-08-11  Jeff Johnston  <jjohnstn at redhat.com>
 
+	* src/org/jboss/tools/deltacloud/core/client/DeltaCloudClient.java (performInstanceAction): New method. 
+	* src/org/jboss/tools/deltacloud/core/client/Instance.java (getActionNames): Ditto.
+	* src/org/jboss/tools/deltacloud/core/DeltaCloud.java (getCurrInstances): Ditto.
+	(performInstanceAction): Ditto. 
+	(refreshInstance): Add notification.
+	* src/org/jboss/tools/deltacloud/core/DeltaCloudInstance.java (getActions): New method. 
+	
+2010-08-11  Jeff Johnston  <jjohnstn at redhat.com>
+
 	* src/org/jboss/tools/deltacloud/core/DeltaCloud.java (getInstances): Make
 	instances a private field instead of local to the method. 
 	(refreshInstance): New method.

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloud.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloud.java	2010-08-11 21:41:52 UTC (rev 24070)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloud.java	2010-08-11 22:10:38 UTC (rev 24071)
@@ -90,17 +90,42 @@
 		return instanceArray;
 	}
 	
+	public DeltaCloudInstance[] getCurrInstances() {
+		DeltaCloudInstance[] instanceArray = new DeltaCloudInstance[instances.size()];
+		instanceArray = instances.toArray(instanceArray);
+		return instanceArray;
+	}
+	
 	public DeltaCloudInstance refreshInstance(String instanceId) {
 		DeltaCloudInstance retVal = null;
 		try {
 			Instance instance = client.listInstances(instanceId);
 			retVal = new DeltaCloudInstance(instance);
+			for (int i = 0; i < instances.size(); ++i) {
+				DeltaCloudInstance inst = instances.get(i);
+				if (inst.getId().equals(instanceId)) {
+					if (!inst.getState().equals(instance.getState())) {
+						instances.set(i, retVal);
+						DeltaCloudInstance[] instanceArray = new DeltaCloudInstance[instances.size()];
+						instanceArray = instances.toArray(instanceArray);
+						notifyInstanceListListeners(instanceArray);
+						return retVal;
+					}
+				}
+			}
 		} catch (DeltaCloudClientException e) {
 			// do nothing and return null
 		}
 		return retVal;
 	}
 	
+	public boolean performInstanceAction(String instanceId, String action) {
+		try {
+			return client.performInstanceAction(instanceId, action);
+		} catch (DeltaCloudClientException e) {
+			return false;
+		}
+	}
 
 	public DeltaCloudHardwareProfile[] getProfiles() {
 		ArrayList<DeltaCloudHardwareProfile> profiles = new ArrayList<DeltaCloudHardwareProfile>();

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloudInstance.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloudInstance.java	2010-08-11 21:41:52 UTC (rev 24070)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloudInstance.java	2010-08-11 22:10:38 UTC (rev 24071)
@@ -11,6 +11,11 @@
 	public final static String RUNNING = Instance.State.RUNNING.toString();
 	public final static String STOPPED = Instance.State.STOPPED.toString();
 	
+	public final static String START = Instance.Action.START.toString();
+	public final static String STOP = Instance.Action.STOP.toString();
+	public final static String REBOOT = Instance.Action.REBOOT.toString();
+	public final static String DESTROY = Instance.Action.DESTROY.toString();
+	
 	private Instance instance;
 	
 	public DeltaCloudInstance(Instance instance) {
@@ -29,6 +34,10 @@
 		return instance.getState().toString();
 	}
 	
+	public List<String> getActions() {
+		return instance.getActionNames();
+	}
+	
 	public String getProfileId() {
 		return instance.getProfileId();
 	}

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClient.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClient.java	2010-08-11 21:41:52 UTC (rev 24070)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClient.java	2010-08-11 22:10:38 UTC (rev 24071)
@@ -464,6 +464,18 @@
 			return JAXB.unmarshal(new StringReader(nodeToString(node)), clazz);
 		}
 	}
+
+    public boolean performInstanceAction(String instanceId, String action) throws DeltaCloudClientException
+    {
+            Instance instance = listInstances(instanceId);
+            if(instance.getActionNames().contains(action))
+            {
+                    String request = DCNS.INSTANCES + "/" + instanceId + "/" + action.toLowerCase();
+                    sendRequest(request, RequestType.POST);
+                    return true;
+            }
+            return false;
+    }
 	
 	private String nodeToString(Node node) throws DeltaCloudClientException
 	{

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/Instance.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/Instance.java	2010-08-11 21:41:52 UTC (rev 24070)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/Instance.java	2010-08-11 22:10:38 UTC (rev 24071)
@@ -1,5 +1,6 @@
 package org.jboss.tools.deltacloud.core.client;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlElement;
@@ -153,6 +154,16 @@
 		return actions;
 	}
 	
+	public List<String> getActionNames()
+	{
+		ArrayList<String>names = new ArrayList<String>();
+		for (Action action : actions)
+		{
+			names.add(action.name());
+		}
+		return names;
+	}
+	
 	public List<String> getPublicAddresses()
 	{
 		return publicAddresses.getAddress();



More information about the jbosstools-commits mailing list