From 2364ada4df2543c75d5a569de73a83f4a235afa8 Mon Sep 17 00:00:00 2001 From: Likitha Shetty Date: Thu, 7 Feb 2013 18:31:36 -0800 Subject: [PATCH] CLOUDSTACK-1119 [EC2 Query API] Add filter support for DecsribeAddresses EC2DescribeAddresses doesn't have filter support. Support will be available for filters -> instance-id and public-ip --- .../src/com/cloud/bridge/service/EC2RestServlet.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java b/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java index 8f364907595..0186db4ad08 100644 --- a/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java +++ b/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java @@ -105,6 +105,7 @@ import com.cloud.bridge.persist.dao.CloudStackUserDaoImpl; import com.cloud.bridge.persist.dao.OfferingDaoImpl; import com.cloud.bridge.persist.dao.UserCredentialsDaoImpl; import com.cloud.bridge.service.controller.s3.ServiceProvider; +import com.cloud.bridge.service.core.ec2.EC2AddressFilterSet; import com.cloud.bridge.service.core.ec2.EC2AssociateAddress; import com.cloud.bridge.service.core.ec2.EC2AuthorizeRevokeSecurityGroup; import com.cloud.bridge.service.core.ec2.EC2AvailabilityZonesFilterSet; @@ -1397,6 +1398,15 @@ public class EC2RestServlet extends HttpServlet { if (null != value && 0 < value.length) ec2Request.addPublicIp( value[0] ); } } + + // add filters + EC2Filter[] filterSet = extractFilters( request ); + if ( filterSet != null ) { + EC2AddressFilterSet afs = new EC2AddressFilterSet(); + for ( int i=0; i < filterSet.length; i++ ) + afs.addFilter( filterSet[i] ); + ec2Request.setFilterSet( afs ); + } // -> execute the request EC2Engine engine = ServiceProvider.getInstance().getEC2Engine(); serializeResponse(response, EC2SoapServiceImpl.toDescribeAddressesResponse( engine.describeAddresses( ec2Request)));