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

[1/2] git commit: refs/heads/4.1 - CLOUDSTACK-1117 [EC2 Query API] DescribeImageAttribute fails

CLOUDSTACK-1117 [EC2 Query API] DescribeImageAttribute fails

EC2DescribeImageAttribute fails with 'Unsupported - only description supported' error. And this is observed for both the supported attributes 'Description' and 'LaunchPermission'


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

Branch: refs/heads/4.1
Commit: b97f468b0361b7dcb339f8748dcbff3a77d67950
Parents: c92f1f9
Author: Likitha Shetty <Li...@citrix.com>
Authored: Thu Feb 7 17:52:48 2013 -0800
Committer: Prachi Damle <pr...@cloud.com>
Committed: Thu Feb 7 18:25:11 2013 -0800

----------------------------------------------------------------------
 .../com/cloud/bridge/service/EC2RestServlet.java   |   33 ++++++++++-----
 1 files changed, 22 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/b97f468b/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 4612b60..c3a86a0 100644
--- a/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java
+++ b/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java
@@ -113,6 +113,7 @@ import com.cloud.bridge.service.core.ec2.EC2CreateVolume;
 import com.cloud.bridge.service.core.ec2.EC2DeleteKeyPair;
 import com.cloud.bridge.service.core.ec2.EC2DescribeAddresses;
 import com.cloud.bridge.service.core.ec2.EC2DescribeAvailabilityZones;
+import com.cloud.bridge.service.core.ec2.EC2DescribeImageAttribute;
 import com.cloud.bridge.service.core.ec2.EC2DescribeImages;
 import com.cloud.bridge.service.core.ec2.EC2DescribeInstances;
 import com.cloud.bridge.service.core.ec2.EC2DescribeKeyPairs;
@@ -1311,25 +1312,35 @@ public class EC2RestServlet extends HttpServlet {
 
     private void describeImageAttribute( HttpServletRequest request, HttpServletResponse response ) 
             throws ADBException, XMLStreamException, IOException {
-        EC2DescribeImages EC2request = new EC2DescribeImages();
+        EC2DescribeImageAttribute ec2request = new EC2DescribeImageAttribute();
 
-        // -> only works for queries about descriptions
-        String[] descriptions = request.getParameterValues( "Description" );
-        if ( null != descriptions && 0 < descriptions.length ) {
-            String[] value = request.getParameterValues( "ImageId" );
-            EC2request.addImageSet( value[0] );
-        }	
+        String[] imageId = request.getParameterValues( "ImageId" );
+        if (imageId != null && imageId.length > 0)
+            ec2request.setImageId(imageId[0]);
         else {
-            response.sendError(501, "Unsupported - only description supported" ); 
+            response.sendError(530, "Missing ImageId parameter");
             return;
         }
 
-        // -> execute the request
-        DescribeImageAttributeResponse EC2response = EC2SoapServiceImpl.toDescribeImageAttributeResponse( ServiceProvider.getInstance().getEC2Engine().describeImages( EC2request ));
+        String[] attribute = request.getParameterValues( "Attribute" );
+        if (attribute != null && attribute.length > 0) {
+            if (attribute[0].equalsIgnoreCase("description"))
+                ec2request.setAttribute(ImageAttribute.description);
+            else if (attribute[0].equalsIgnoreCase("launchPermission"))
+                ec2request.setAttribute(ImageAttribute.launchPermission);
+            else {
+                response.sendError(501, "Unsupported Attribute - description and launchPermission supported" );
+                return;
+            }
+        } else {
+            response.sendError(530, "Missing Attribute parameter");
+            return;
+        }
+
+        DescribeImageAttributeResponse EC2response = EC2SoapServiceImpl.toDescribeImageAttributeResponse( ServiceProvider.getInstance().getEC2Engine().describeImageAttribute( ec2request ));
         serializeResponse(response, EC2response);
     }
 
-
     private void describeInstances( HttpServletRequest request, HttpServletResponse response ) 
             throws ADBException, XMLStreamException, IOException 
             {