Repository: libcloud Updated Branches: refs/heads/trunk 410832fc3 -> 290fb2aa2
LIBCLOUD-606 Can not connect to AWS with IAM role temporary credentials Closes #820 Signed-off-by: Tomaz Muraus <to...@tomaz.me> Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/1ac00c7b Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/1ac00c7b Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/1ac00c7b Branch: refs/heads/trunk Commit: 1ac00c7b529e698915552a3339e5def95d59de9c Parents: 410832f Author: Alejandro González <alejandro.gonza...@intelygenz.com> Authored: Tue Jun 21 16:10:56 2016 +0200 Committer: Tomaz Muraus <to...@tomaz.me> Committed: Sat Jul 2 11:42:26 2016 +0200 ---------------------------------------------------------------------- libcloud/compute/drivers/ec2.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/1ac00c7b/libcloud/compute/drivers/ec2.py ---------------------------------------------------------------------- diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py index 3e31bc6..5cfe193 100644 --- a/libcloud/compute/drivers/ec2.py +++ b/libcloud/compute/drivers/ec2.py @@ -5435,7 +5435,12 @@ class BaseEC2NodeDriver(NodeDriver): def _ex_connection_class_kwargs(self): kwargs = super(BaseEC2NodeDriver, self)._ex_connection_class_kwargs() - kwargs['signature_version'] = self.signature_version + if self.token is None: + kwargs['signature_version'] = self.signature_version + else: + kwargs['token'] = self.token + # Force signature_version 4 for tokens or auth breaks + kwargs['signature_version'] = '4' return kwargs def _to_nodes(self, object, xpath): @@ -6372,7 +6377,7 @@ class EC2NodeDriver(BaseEC2NodeDriver): } def __init__(self, key, secret=None, secure=True, host=None, port=None, - region='us-east-1', **kwargs): + region='us-east-1', token=None, **kwargs): if hasattr(self, '_region'): region = self._region @@ -6382,6 +6387,7 @@ class EC2NodeDriver(BaseEC2NodeDriver): details = REGION_DETAILS[region] self.region_name = region + self.token = token self.api_name = details['api_name'] self.country = details['country'] self.signature_version = details.get('signature_version',