You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by qu...@apache.org on 2017/10/13 05:03:26 UTC

[3/5] libcloud git commit: ec2: Prevent list_sizes to fail without pricing

ec2: Prevent list_sizes to fail without pricing


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/8fbbe4b8
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/8fbbe4b8
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/8fbbe4b8

Branch: refs/heads/trunk
Commit: 8fbbe4b8e28ae660f5f613922c9f84bdb7ab9efb
Parents: bd7a397
Author: Quentin Pradet <qu...@apache.org>
Authored: Thu Oct 12 07:55:42 2017 +0400
Committer: Quentin Pradet <qu...@apache.org>
Committed: Fri Oct 13 08:56:12 2017 +0400

----------------------------------------------------------------------
 libcloud/compute/drivers/ec2.py   | 7 +++++--
 libcloud/test/compute/test_ec2.py | 7 ++++---
 2 files changed, 9 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/8fbbe4b8/libcloud/compute/drivers/ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py
index a5bcf27..dd62097 100644
--- a/libcloud/compute/drivers/ec2.py
+++ b/libcloud/compute/drivers/ec2.py
@@ -3568,8 +3568,11 @@ class BaseEC2NodeDriver(NodeDriver):
         for instance_type in available_types:
             attributes = INSTANCE_TYPES[instance_type]
             attributes = copy.deepcopy(attributes)
-            price = self._get_size_price(size_id=instance_type)
-            attributes.update({'price': price})
+            try:
+                price = self._get_size_price(size_id=instance_type)
+                attributes['price'] = price
+            except KeyError:
+                attributes['price'] = None  # pricing not available
             sizes.append(NodeSize(driver=self, **attributes))
         return sizes
 

http://git-wip-us.apache.org/repos/asf/libcloud/blob/8fbbe4b8/libcloud/test/compute/test_ec2.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_ec2.py b/libcloud/test/compute/test_ec2.py
index 2e015ac..a36e650 100644
--- a/libcloud/test/compute/test_ec2.py
+++ b/libcloud/test/compute/test_ec2.py
@@ -75,11 +75,12 @@ class BaseEC2Tests(LibcloudTestCase):
         unsupported_regions = list()
 
         for region in VALID_EC2_REGIONS:
-            if region in ['cn-north-1']:
-                continue  # pricing not available
+            no_pricing = region in ['cn-north-1']
             driver = EC2NodeDriver(*EC2_PARAMS, **{'region': region})
             try:
-                driver.list_sizes()
+                sizes = driver.list_sizes()
+                if no_pricing:
+                    self.assertTrue(all([s.price is None for s in sizes]))
             except:
                 unsupported_regions.append(region)