You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bf...@apache.org on 2013/02/13 23:04:22 UTC

[11/50] [abbrv] git commit: refs/heads/ui-plugins - CLOUDSTACK-1133: [EC2 Query API] In StopInstances add support for parameter 'force'

CLOUDSTACK-1133: [EC2 Query API] In StopInstances add support for parameter 'force'

Propagate this parameter to CS to force stop an instance


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/57969843
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/57969843
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/57969843

Branch: refs/heads/ui-plugins
Commit: 57969843d658fe01cf1f55bb7990a0716726250f
Parents: 3337106
Author: Likitha Shetty <Li...@citrix.com>
Authored: Tue Feb 12 14:03:51 2013 -0800
Committer: Prachi Damle <pr...@cloud.com>
Committed: Tue Feb 12 14:04:07 2013 -0800

----------------------------------------------------------------------
 .../com/cloud/bridge/service/EC2RestServlet.java   |    5 +++++
 .../cloud/bridge/service/EC2SoapServiceImpl.java   |    3 +++
 .../cloud/bridge/service/core/ec2/EC2Engine.java   |    3 ++-
 .../bridge/service/core/ec2/EC2StopInstances.java  |    9 +++++++++
 4 files changed, 19 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/57969843/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java
----------------------------------------------------------------------
diff --git a/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java b/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java
index fe93038..e209662 100644
--- a/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java
+++ b/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java
@@ -1269,6 +1269,11 @@ public class EC2RestServlet extends HttpServlet {
         }	
         if (0 == count) { response.sendError(530, "Missing InstanceId parameter" ); return; }
 
+        String[] force = request.getParameterValues("Force");
+        if ( force != null) {
+            EC2request.setForce( Boolean.parseBoolean(force[0]));
+        }
+
         // -> execute the request
         StopInstancesResponse EC2response = EC2SoapServiceImpl.toStopInstancesResponse( ServiceProvider.getInstance().getEC2Engine().stopInstances( EC2request ));
         serializeResponse(response, EC2response);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/57969843/awsapi/src/com/cloud/bridge/service/EC2SoapServiceImpl.java
----------------------------------------------------------------------
diff --git a/awsapi/src/com/cloud/bridge/service/EC2SoapServiceImpl.java b/awsapi/src/com/cloud/bridge/service/EC2SoapServiceImpl.java
index 4e9445e..9fc581b 100644
--- a/awsapi/src/com/cloud/bridge/service/EC2SoapServiceImpl.java
+++ b/awsapi/src/com/cloud/bridge/service/EC2SoapServiceImpl.java
@@ -773,6 +773,7 @@ public class EC2SoapServiceImpl implements AmazonEC2SkeletonInterface  {
 	public StopInstancesResponse stopInstances(StopInstances stopInstances) {
 		EC2StopInstances request = new EC2StopInstances();
 		StopInstancesType sit = stopInstances.getStopInstances();
+        Boolean force = sit.getForce();
 		
 		// -> toEC2StopInstances
 		InstanceIdSetType iist  = sit.getInstancesSet();
@@ -780,6 +781,8 @@ public class EC2SoapServiceImpl implements AmazonEC2SkeletonInterface  {
 		if (null != items) {  // -> should not be empty
 			for( int i=0; i < items.length; i++ ) request.addInstanceId( items[i].getInstanceId());
 		}
+
+        if (force) request.setForce(sit.getForce());
 		return toStopInstancesResponse( engine.stopInstances( request ));
 	}
 	

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/57969843/awsapi/src/com/cloud/bridge/service/core/ec2/EC2Engine.java
----------------------------------------------------------------------
diff --git a/awsapi/src/com/cloud/bridge/service/core/ec2/EC2Engine.java b/awsapi/src/com/cloud/bridge/service/core/ec2/EC2Engine.java
index 277cdc8..a835d8a 100644
--- a/awsapi/src/com/cloud/bridge/service/core/ec2/EC2Engine.java
+++ b/awsapi/src/com/cloud/bridge/service/core/ec2/EC2Engine.java
@@ -1512,6 +1512,7 @@ public class EC2Engine extends ManagerBase {
         // -> first determine the current state of each VM (becomes it previous state)
         try {   
             String[] instanceSet = request.getInstancesSet();
+            Boolean forced = request.getForce();
 
             EC2DescribeInstancesResponse previousState = listVirtualMachines( instanceSet, null, null );
             virtualMachines = previousState.getInstanceSet();
@@ -1533,7 +1534,7 @@ public class EC2Engine extends ManagerBase {
                         instances.addInstance(vm);
                         continue;
                     }
-                    resp = getApi().stopVirtualMachine(vm.getId(), false);
+                    resp = getApi().stopVirtualMachine(vm.getId(), forced);
                     if(logger.isDebugEnabled())
                         logger.debug("Stopping VM " + vm.getId() + " job " + resp.getJobId());
                 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/57969843/awsapi/src/com/cloud/bridge/service/core/ec2/EC2StopInstances.java
----------------------------------------------------------------------
diff --git a/awsapi/src/com/cloud/bridge/service/core/ec2/EC2StopInstances.java b/awsapi/src/com/cloud/bridge/service/core/ec2/EC2StopInstances.java
index 13e23d1..be14000 100644
--- a/awsapi/src/com/cloud/bridge/service/core/ec2/EC2StopInstances.java
+++ b/awsapi/src/com/cloud/bridge/service/core/ec2/EC2StopInstances.java
@@ -23,6 +23,7 @@ public class EC2StopInstances {
 
 	private List<String> instancesSet = new ArrayList<String>();    // a list of strings identifying instances
     private boolean destroyInstances;                               // we are destroying the instances rather than stopping them
+    private Boolean force = false;
 	
 	public EC2StopInstances() {
 		destroyInstances = false;
@@ -43,5 +44,13 @@ public class EC2StopInstances {
 	public boolean getDestroyInstances() {
 		return this.destroyInstances;
 	}
+
+    public void setForce( Boolean force ) {
+        this.force = force;
+    }
+
+    public Boolean getForce() {
+        return this.force;
+    }
 	
 }