What steps will reproduce the problem?
1. Run the following:
#!/usr/bin/python
>>> from boto.vpc import VPCConnection
>>> aws_access_key = "XXXXX"
>>> aws_secret_key = "XXXXX"
>>> con = VPCConnection(aws_access_key, aws_secret_key)
>>> con.get_all_subnets(filters=[('state', 'available')])
What is the expected output?
>>> con.get_all_subnets(filters=[('state', 'available')])
[Subnet:subnet-XXXXXXXX, Subnet:subnet-XXXXXXXX]
What do you see instead?
>>> con.get_all_subnets(filters=[('state', 'available')])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/pymodules/python2.6/boto/vpc/__init__.py", line 292, in get_all_subnets
return self.get_list('DescribeSubnets', params, [('item', Subnet)])
File "/usr/lib/pymodules/python2.6/boto/connection.py", line 680, in get_list
raise self.ResponseError(response.status, response.reason, body)
boto.exception.EC2ResponseError: EC2ResponseError: 400 Bad Request
<?xml version="1.0" encoding="UTF-8"?>
<Response><Errors><Error><Code>UnknownParameter</Code><Message>The parameter
Key is not
recognized</Message></Error></Errors><RequestID>da5a2fd4-4af5-4839-863b-2cb701bd
3791</RequestID></Response>
What version of the product are you using? On what operating system?
boto 2.0, on Debian Squeeze
Please provide any additional information below.
Please see issue http://code.google.com/p/boto/issues/detail?id=548 for
additional details. It appears the filter for each 'get_all_*' function uses
'Filter.%d.Key' instead of 'Filter.%d.Name'
Here's a diff that shows the changes across each function:
diff -r 5d1cf8d9d8ea boto/vpc/__init__.py
--- a/boto/vpc/__init__.py Wed Aug 24 15:41:02 2011 +0000
+++ b/boto/vpc/__init__.py Wed Aug 24 15:51:12 2011 +0000
@@ -63,7 +63,7 @@
if filters:
i = 1
for filter in filters:
- params[('Filter.%d.Key' % i)] = filter[0]
+ params[('Filter.%d.Name' % i)] = filter[0]
params[('Filter.%d.Value.1')] = filter[1]
i += 1
return self.get_list('DescribeVpcs', params, [('item', VPC)])
@@ -126,7 +126,7 @@
if filters:
i = 1
for filter in filters:
- params[('Filter.%d.Key' % i)] = filter[0]
+ params[('Filter.%d.Name' % i)] = filter[0]
params[('Filter.%d.Value.1')] = filter[1]
i += 1
return self.get_list('DescribeCustomerGateways', params, [('item', CustomerGateway)])
@@ -199,7 +199,7 @@
if filters:
i = 1
for filter in filters:
- params[('Filter.%d.Key' % i)] = filter[0]
+ params[('Filter.%d.Name' % i)] = filter[0]
params[('Filter.%d.Value.1')] = filter[1]
i += 1
return self.get_list('DescribeVpnGateways', params, [('item', VpnGateway)])
@@ -286,7 +286,7 @@
if filters:
i = 1
for filter in filters:
- params[('Filter.%d.Key' % i)] = filter[0]
+ params[('Filter.%d.Name' % i)] = filter[0]
params[('Filter.%d.Value.1' % i)] = filter[1]
i += 1
return self.get_list('DescribeSubnets', params, [('item', Subnet)])
@@ -430,7 +430,7 @@
if filters:
i = 1
for filter in filters:
- params[('Filter.%d.Key' % i)] = filter[0]
+ params[('Filter.%d.Name' % i)] = filter[0]
params[('Filter.%d.Value.1')] = filter[1]
i += 1
return self.get_list('DescribeVpnConnections', params, [('item', VpnConnection)])
Original issue reported on code.google.com by blim...@gmail.com on 24 Aug 2011 at 3:53
Original issue reported on code.google.com by
blim...@gmail.com
on 24 Aug 2011 at 3:53