|
113 | 113 | import com.cloud.bridge.service.core.ec2.EC2DeleteKeyPair; |
114 | 114 | import com.cloud.bridge.service.core.ec2.EC2DescribeAddresses; |
115 | 115 | import com.cloud.bridge.service.core.ec2.EC2DescribeAvailabilityZones; |
| 116 | +import com.cloud.bridge.service.core.ec2.EC2DescribeImageAttribute; |
116 | 117 | import com.cloud.bridge.service.core.ec2.EC2DescribeImages; |
117 | 118 | import com.cloud.bridge.service.core.ec2.EC2DescribeInstances; |
118 | 119 | import com.cloud.bridge.service.core.ec2.EC2DescribeKeyPairs; |
@@ -1311,25 +1312,35 @@ private void describeImages( HttpServletRequest request, HttpServletResponse res |
1311 | 1312 |
|
1312 | 1313 | private void describeImageAttribute( HttpServletRequest request, HttpServletResponse response ) |
1313 | 1314 | throws ADBException, XMLStreamException, IOException { |
1314 | | - EC2DescribeImages EC2request = new EC2DescribeImages(); |
| 1315 | + EC2DescribeImageAttribute ec2request = new EC2DescribeImageAttribute(); |
1315 | 1316 |
|
1316 | | - // -> only works for queries about descriptions |
1317 | | - String[] descriptions = request.getParameterValues( "Description" ); |
1318 | | - if ( null != descriptions && 0 < descriptions.length ) { |
1319 | | - String[] value = request.getParameterValues( "ImageId" ); |
1320 | | - EC2request.addImageSet( value[0] ); |
1321 | | - } |
| 1317 | + String[] imageId = request.getParameterValues( "ImageId" ); |
| 1318 | + if (imageId != null && imageId.length > 0) |
| 1319 | + ec2request.setImageId(imageId[0]); |
1322 | 1320 | else { |
1323 | | - response.sendError(501, "Unsupported - only description supported" ); |
| 1321 | + response.sendError(530, "Missing ImageId parameter"); |
1324 | 1322 | return; |
1325 | 1323 | } |
1326 | 1324 |
|
1327 | | - // -> execute the request |
1328 | | - DescribeImageAttributeResponse EC2response = EC2SoapServiceImpl.toDescribeImageAttributeResponse( ServiceProvider.getInstance().getEC2Engine().describeImages( EC2request )); |
| 1325 | + String[] attribute = request.getParameterValues( "Attribute" ); |
| 1326 | + if (attribute != null && attribute.length > 0) { |
| 1327 | + if (attribute[0].equalsIgnoreCase("description")) |
| 1328 | + ec2request.setAttribute(ImageAttribute.description); |
| 1329 | + else if (attribute[0].equalsIgnoreCase("launchPermission")) |
| 1330 | + ec2request.setAttribute(ImageAttribute.launchPermission); |
| 1331 | + else { |
| 1332 | + response.sendError(501, "Unsupported Attribute - description and launchPermission supported" ); |
| 1333 | + return; |
| 1334 | + } |
| 1335 | + } else { |
| 1336 | + response.sendError(530, "Missing Attribute parameter"); |
| 1337 | + return; |
| 1338 | + } |
| 1339 | + |
| 1340 | + DescribeImageAttributeResponse EC2response = EC2SoapServiceImpl.toDescribeImageAttributeResponse( ServiceProvider.getInstance().getEC2Engine().describeImageAttribute( ec2request )); |
1329 | 1341 | serializeResponse(response, EC2response); |
1330 | 1342 | } |
1331 | 1343 |
|
1332 | | - |
1333 | 1344 | private void describeInstances( HttpServletRequest request, HttpServletResponse response ) |
1334 | 1345 | throws ADBException, XMLStreamException, IOException |
1335 | 1346 | { |
|
0 commit comments