Updated Branches: refs/heads/trunk 41b3ca934 -> 643af48ac
Fix a bug in EC2 driver - ensure it works correctly if user passes an int for ex_mincount or ex_maxcount kwarg. Reported by Frederic Michaud, part of LIBCLOUD-410. Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/643af48a Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/643af48a Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/643af48a Branch: refs/heads/trunk Commit: 643af48ac3480847686b0284955fd4bed393e323 Parents: 41b3ca9 Author: Tomaz Muraus <[email protected]> Authored: Tue Oct 15 23:12:00 2013 +0200 Committer: Tomaz Muraus <[email protected]> Committed: Tue Oct 15 23:12:33 2013 +0200 ---------------------------------------------------------------------- libcloud/common/aws.py | 3 ++- libcloud/compute/drivers/ec2.py | 4 ++-- libcloud/test/compute/test_ec2.py | 13 +++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/643af48a/libcloud/common/aws.py ---------------------------------------------------------------------- diff --git a/libcloud/common/aws.py b/libcloud/common/aws.py index ba87a84..22d9732 100644 --- a/libcloud/common/aws.py +++ b/libcloud/common/aws.py @@ -121,8 +121,9 @@ class SignedAWSConnection(ConnectionUserAndKey): keys.sort() pairs = [] for key in keys: + value = str(params[key]) pairs.append(urlquote(key, safe='') + '=' + - urlquote(params[key], safe='-_~')) + urlquote(value, safe='-_~')) qs = '&'.join(pairs) http://git-wip-us.apache.org/repos/asf/libcloud/blob/643af48a/libcloud/compute/drivers/ec2.py ---------------------------------------------------------------------- diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py index 2df50a3..5096ce5 100644 --- a/libcloud/compute/drivers/ec2.py +++ b/libcloud/compute/drivers/ec2.py @@ -1518,8 +1518,8 @@ class BaseEC2NodeDriver(NodeDriver): params = { 'Action': 'RunInstances', 'ImageId': image.id, - 'MinCount': kwargs.get('ex_mincount', '1'), - 'MaxCount': kwargs.get('ex_maxcount', '1'), + 'MinCount': str(kwargs.get('ex_mincount', '1')), + 'MaxCount': str(kwargs.get('ex_maxcount', '1')), 'InstanceType': size.id } http://git-wip-us.apache.org/repos/asf/libcloud/blob/643af48a/libcloud/test/compute/test_ec2.py ---------------------------------------------------------------------- diff --git a/libcloud/test/compute/test_ec2.py b/libcloud/test/compute/test_ec2.py index 159eca6..9a23fb5 100644 --- a/libcloud/test/compute/test_ec2.py +++ b/libcloud/test/compute/test_ec2.py @@ -95,6 +95,19 @@ class EC2Tests(LibcloudTestCase, TestCaseMixin): self.assertEqual(node.extra['tags']['Name'], 'foo') self.assertEqual(len(node.extra['tags']), 1) + def test_create_node_with_ex_mincount(self): + image = NodeImage(id='ami-be3adfd7', + name=self.image_name, + driver=self.driver) + size = NodeSize('m1.small', 'Small Instance', None, None, None, None, + driver=self.driver) + node = self.driver.create_node(name='foo', image=image, size=size, + ex_mincount=1, ex_maxcount=10) + self.assertEqual(node.id, 'i-2ba64342') + self.assertEqual(node.name, 'foo') + self.assertEqual(node.extra['tags']['Name'], 'foo') + self.assertEqual(len(node.extra['tags']), 1) + def test_create_node_idempotent(self): EC2MockHttp.type = 'idempotent' image = NodeImage(id='ami-be3adfd7',
