From 05280976e5caa4cc9105223fea96163abb0b6935 Mon Sep 17 00:00:00 2001 From: Likitha Shetty Date: Fri, 8 Feb 2013 17:29:13 -0800 Subject: [PATCH] CLOUDSTACK-1120 [EC2 Query API] Parameter 'keynames' is not honoured by DescribeKeyPairs When EC2DesribeKeyPairs is called with filter 'keynames' it ignored the key-name provided and lists all the key-pairs --- .../com/cloud/bridge/service/EC2RestServlet.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java b/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java index 0186db4ad08..ca910e03ba3 100644 --- a/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java +++ b/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java @@ -1678,13 +1678,16 @@ public class EC2RestServlet extends HttpServlet { throws ADBException, XMLStreamException, IOException { EC2DescribeKeyPairs ec2Request = new EC2DescribeKeyPairs(); - - String[] keyNames = request.getParameterValues( "KeyName" ); - if (keyNames != null) { - for (String keyName : keyNames) { - ec2Request.addKeyName(keyName); + Enumeration names = request.getParameterNames(); + while( names.hasMoreElements()) { + String key = (String)names.nextElement(); + if (key.startsWith("KeyName")) { + String[] value = request.getParameterValues( key ); + if (null != value && 0 < value.length) + ec2Request.addKeyName(value[0]); } } + EC2Filter[] filterSet = extractFilters( request ); if (null != filterSet){ EC2KeyPairFilterSet vfs = new EC2KeyPairFilterSet();