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
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/2364ada4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/2364ada4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/2364ada4 Branch: refs/heads/ui-plugins Commit: 2364ada4df2543c75d5a569de73a83f4a235afa8 Parents: b5e2803 Author: Likitha Shetty <[email protected]> Authored: Thu Feb 7 18:31:36 2013 -0800 Committer: Prachi Damle <[email protected]> Committed: Thu Feb 7 18:32:48 2013 -0800 ---------------------------------------------------------------------- .../com/cloud/bridge/service/EC2RestServlet.java | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/2364ada4/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 8f36490..0186db4 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)));
